Commit Graph

28195 Commits

Author SHA1 Message Date
Rika Ichinose
8498eacdeb Remove unused cutils functions. 2024-11-04 22:05:03 +00:00
Rika Ichinose
0b97f169b0 Remove conditionals that rely on not defined(FPC_HAS_CPSTRING). 2024-11-04 10:28:33 +00:00
Rika Ichinose
2596af84fa Optimize {$DEFINE x := y} and refactor tmacro.buftext. 2024-11-03 17:33:44 +00:00
J. Gareth "Curious Kit" Moreton
2a50d5abf8 * ARMv7A / A64: Constant writes to memory merged to larger forms where possible 2024-11-03 15:02:51 +00:00
Rika Ichinose
7343a12908 Use “set of (op_unary, op_binary)” to check for supported operator overloads. 2024-11-03 14:52:26 +00:00
Rika Ichinose
bff561063f Use TFPList.FreeAndNilDisposing in four more places. 2024-11-03 14:39:24 +00:00
florian
183a10b292 * avoid code duplication :) 2024-11-03 15:37:50 +01:00
Frederic Kehrein
1778fb6fe3 Implementing TImplementedInterface.getcopy to allow copying of interfaced objectcs
It's probably not fully correct(see comment about procdef copy) but
seems good enough ¯\_(ツ)_/¯
2024-11-03 14:08:45 +00:00
Rika Ichinose
7a963ac56a Align htypechk.pas:is_better_candidate to the left edge of the screen. 2024-11-02 18:53:30 +03:00
florian
bea36238e7 * generate fmrx instruction only if the cpu has the vfp extension, resolves #40985 2024-11-01 22:29:11 +01:00
Nikolay Nikolov
800fb6624e + added a missing 'br 1' instruction in the code, generated by
GenerateCode_InitSharedMemory. This should fix the loading error in browsers,
  when using multithreading.
2024-10-31 22:55:17 +02:00
Frederic Kehrein
59a1199110 Adding support for indexed properties in extended RTTI 2024-10-31 14:51:00 +00:00
florian
b7edddf9d9 * do not eat the semicolon after an absolute expression to a symbol, noted in #40978 2024-10-30 22:45:48 +01:00
florian
b28681e91d * properly reject function calls as target of absolute, resolves #40977
* better error message on invalid expressions for absolute
2024-10-29 22:23:25 +01:00
florian
75d7b66bdf * compilation fixed
* cosmetics: trailing spaces removed
2024-10-27 17:54:34 +01:00
Rika Ichinose
8784dbc095 Outline freeing TFPList with disposing its items into TFPList.FreeAndNilDisposing. 2024-10-27 16:45:35 +00:00
Rika Ichinose
510a281c3f Use a set instead of boolean arguments to TCallCandidates. 2024-10-27 16:45:35 +00:00
Rika Ichinose
326776c7fa Turn TCallCandidates into an object, make it create FIgnoredCandidateProcs on demand, and outline such adding on demand into dedicated TFPList.AddOnDemand. 2024-10-27 16:45:35 +00:00
J. Gareth "Curious Kit" Moreton
8520dabebb * x86: New RET/lbl/RET optimisation 2024-10-27 08:17:10 +00:00
J. Gareth "Curious Kit" Moreton
8bb3367a49 * x86: Refactored SetCC optimisations to better
spot label clusters and alignment hints.
2024-10-27 08:17:10 +00:00
florian
511beac49c * get rid of the hack that tlabelnode inherits from tunarynode and stores a statement in left, resolves #40964 2024-10-26 16:11:24 +02:00
Jonas Maebe
fd83bb10d4 macOS: use -macos_version_min for recent versions
-macosx_version_min was renamed. Ideally we would base this on the version of
the toolset used, but we don't know that. Instead, use it when targeting
more recent macOS versions
2024-10-26 15:28:47 +02:00
Sven/Sarah Barth
00fc962ca3 + fix #40963: print suitable messages for local unit, include, library and object paths if -vt is given
+ added test
2024-10-25 17:13:23 +02:00
florian
4ef30edbd4 * set ra_addr_taken for addr. param only if really needed 2024-10-23 23:04:43 +02:00
florian
5d4bb6db9b * patch by lag programming to replace bitcnt by popcnt, resolves #40962 2024-10-22 22:54:57 +02:00
florian
a9f522c29d * consolidated code 2024-10-21 23:04:25 +02:00
Pierre Muller
74d2d2f0d8 Remove unneeded, and possibly wrong typecast to fix cycle with -CR option 2024-10-21 12:13:14 +00:00
florian
397293f09f + more fixes to mark symbols used by preprocessor expressions properly
+ made MarkSymbolAsUsed more fail safe
  + tests
2024-10-20 17:28:20 +02:00
J. Gareth "Curious Kit" Moreton
80f1d55822 - MovOp2Op optimisation upgraded. 2024-10-20 12:43:52 +00:00
J. Gareth "Curious Kit" Moreton
85ee93c2c5 - MovLea2Add optimisation upgraded. 2024-10-20 12:43:52 +00:00
J. Gareth "Curious Kit" Moreton
1bc0ae3d18 - Mov2Nop 5a and Mov2Nop 5b optimisations upgraded. 2024-10-20 12:43:52 +00:00
J. Gareth "Curious Kit" Moreton
f36fbd17b1 - 32-to-64-bit zero extension optimisations upgraded. 2024-10-20 12:43:52 +00:00
J. Gareth "Curious Kit" Moreton
b1a76314ae - Const and ref merge optimisations upgraded. 2024-10-20 12:43:52 +00:00
J. Gareth "Curious Kit" Moreton
65f2dd2337 - OR and extension optimisations upgraded. 2024-10-20 12:43:52 +00:00
J. Gareth "Curious Kit" Moreton
6dfe323e6f - AND and DeepMovOpt optimisations upgraded. 2024-10-20 12:43:52 +00:00
J. Gareth "Curious Kit" Moreton
e187d49590 * x86: New reference support methods to detect modification 2024-10-20 12:43:52 +00:00
J. Gareth "Curious Kit" Moreton
d0c7838eec * x86: CheckMovMov2MovMov2 now sets "Force New Iteration" if it optimises 2024-10-20 12:43:52 +00:00
J. Gareth "Curious Kit" Moreton
d5c6286852 * x86: Bug fix in OptPass1MOV long-range optimisations where
the wrong register was checked to see if had changed.
2024-10-20 12:43:52 +00:00
florian
22ec4a2033 * mark symbols used in conditional compiling expressions using sizeof, resolves #40955 2024-10-20 14:37:09 +02:00
florian
00ae194e0a + add printing of all fields of tcallnode in TCallNode.XMLPrintNodeData as well 2024-10-20 11:23:11 +02:00
florian
b8a4a72760 * properly process all child nodes of call nodes in foreachnode, resolves #40957 2024-10-19 23:41:46 +02:00
florian
431d4395ea + print all sub nodes of call nodes 2024-10-19 23:41:46 +02:00
florian
b2892adebf * do not set the addr taken flag for nodes to passed to const/var/out parameters, if
the code of the callee is known and within the callee no address of the parameters
    is taken
2024-10-19 15:15:51 +02:00
florian
c828615886 + enable strength reduction for -O3, probably an oversight for years that it was not included in -O3 2024-10-19 11:00:24 +02:00
florian
46dcffed42 * MIPS64: make use of DMTC1 instruction 2024-10-18 21:53:26 +02:00
J. Gareth "Curious Kit" Moreton
205e4f3421 * "checkcontinue" replaced with "has_child_of_type(..., [continuen])" 2024-10-18 18:26:48 +00:00
J. Gareth "Curious Kit" Moreton
9077954762 * "no_exit_statement_in_block" replaced with "not has_child_of_type(..., [exitn])" 2024-10-18 18:26:48 +00:00
J. Gareth "Curious Kit" Moreton
59ff8a0f65 * Node-stripping optimisation in "TBlockNode.simplify" now uses "has_child_of_type" to determine stop point 2024-10-18 18:26:48 +00:00
J. Gareth "Curious Kit" Moreton
a91c1ab627 * Added new node utility function to search for nodes of a specific type in a node tree 2024-10-18 18:26:48 +00:00
Sven/Sarah Barth
04b0dfc812 * fix typo in comment 2024-10-18 17:51:49 +02:00