Commit Graph

27716 Commits

Author SHA1 Message Date
J. Gareth "Curious Kit" Moreton
17b7782929 * i386: Fixed issue where the peephole optimizer entered an infinite loop when building for CPUs older than Pentium II 2024-04-26 19:08:00 +00:00
florian
fc6d6c123d * more debug statments removed 2024-04-25 22:50:38 +02:00
florian
ab66440e76 * accidently committed debug statement removed 2024-04-25 22:47:17 +02:00
florian
51f5726343 * (hopefully) more consistent message when the compiler is stopped during showing the help screen, resolves #39455 2024-04-25 22:12:31 +02:00
Sven/Sarah Barth
7f03fb6966 * revert the changes from b0d61558e3, as 61397d40ae fixes it more correctly 2024-04-24 23:13:57 +02:00
Sven/Sarah Barth
61397d40ae * ensure that Insert() of a single element into a dynamic array is typechecked in a way that the user is notified of errors
+ added test
2024-04-24 23:13:36 +02:00
florian
2d1fba1fa1 * disable (type ...), it did never work and there are not test, resolves #40562 2024-04-24 22:51:11 +02:00
florian
2e86cdb620 * allow swapping of operands for three operand instructions if they are commutative 2024-04-22 22:25:37 +02:00
florian
c3a3cfe80f * avoid range check error in TVMTBuilder.intf_optimize_vtbls by early bailing out if a class has no interfaces 2024-04-21 19:26:01 +02:00
J. Gareth "Curious Kit" Moreton
88ab9576b1 * a64: Added "ABS" and "CTZ" mnemonics (CSSC instructions) 2024-04-21 09:06:16 +00:00
J. Gareth "Curious Kit" Moreton
1ba93085f7 * a64: Added DOTPROD and PAUTH support flags to relevant instruction sets (v8.4+ and v8.3+ respectively) 2024-04-21 09:06:16 +00:00
J. Gareth "Curious Kit" Moreton
bba4edb6d0 * a64: ARMv8.7 through ARMv8.9 have been added as AArch64 CPU types, along with support for the CSSC extension. 2024-04-21 09:06:16 +00:00
florian
9409ec6341 * workaround unsupported -march=...+pauth for some assembler/clang versions 2024-04-21 11:04:42 +02:00
florian
902c93f3c3 * do not limit the number of interfaces per class, resolves #40268 2024-04-20 22:05:18 +02:00
J. Gareth "Curious Kit" Moreton
9ee1821622 * arm / a64: Extended the AND; CMP -> ANDS family of optimisations to catch BIC as well as AND 2024-04-20 12:55:47 +00:00
florian
e412f6be55 + in on an empty set is always false, resolves #40745 2024-04-19 23:43:35 +02:00
florian
2f9ed0576e * optimize x </>= length(...) also if the operands are swapped 2024-04-18 23:07:40 +02:00
florian
e130557d9f * optimize x < length(arr) and x >= length(arr) as proposed in #40292 2024-04-17 23:29:13 +02:00
Pierre Muller
a4240a0c62 Fix compilation of i8086/n8086add.pas unit after introduction of get_int_value function 2024-04-17 07:52:05 +00:00
florian
f29ff58ab9 + get_int_value 2024-04-16 23:11:16 +02:00
florian
48eeaf00a4 + fold also divisons involving pointer constants (those nodes are internally generated only) 2024-04-15 23:02:28 +02:00
florian
2e9556f2eb + fold also constant pointer operations on nil nodes 2024-04-15 22:52:32 +02:00
florian
b3c1f294ba + propagate also widechar/pointer constants 2024-04-14 10:34:37 +02:00
florian
0aa851b7f7 * run constant propagation multiple times if needed and if slow optimizations are turned on 2024-04-14 10:00:20 +02:00
florian
5c46b5116d + also fold nil nodes when used as pointer constants 2024-04-13 22:52:46 +02:00
florian
1222456c13 * allow [] for constant set constraints, resolves #37020 2024-04-13 22:28:54 +02:00
florian
13fc4075f5 + propagate pointer constants 2024-04-12 21:40:04 +02:00
Sven/Sarah Barth
b0d61558e3 * fix #40725: pass along whole array constructor to the Insert() so that it's converted with the correct checks
+ added test
2024-04-12 17:34:58 +02:00
Sven/Sarah Barth
e76c5d96d8 * Fix #40716: only add helpers if the type doesn't belong to the current object/class/record hierarchy
+ added test
2024-04-12 17:34:58 +02:00
Sven/Sarah Barth
7a1ef994b4 * fix #40721: correctly set up the generic defs when parsing fields, especially important when dealing with anonymous fields
+ added tests
2024-04-12 17:34:58 +02:00
Sven/Sarah Barth
0e9efd07ef * extend read_anon_type() so that it can take a genericdef as well 2024-04-12 17:34:58 +02:00
Sven/Sarah Barth
eaf24269bc * check that the corresponding genericdef of the adjusted def is indeed valid 2024-04-12 17:34:58 +02:00
Sven/Sarah Barth
550397b982 * fix #40708: when creating the sub-arraydefs for comma separated arrays, ensure that the new sub array also has the generic related information set up correctly
+ added test
2024-04-12 17:34:58 +02:00
J. Gareth "Curious Kit" Moreton
3cae3e7e48 * x86: Registers are now allocated properly during a FuncMov2Func
optimisation
2024-04-09 20:51:24 +00:00
J. Gareth "Curious Kit" Moreton
18eec3055e * x86: More accurate register tracking in CheckJumpMovTransferOpt 2024-04-09 20:51:24 +00:00
florian
fd68d3bfbb * ensure that left and right have a result type set in tx86addnode.pass_1, resolves #40727 2024-04-08 22:53:34 +02:00
florian
80750f7591 * second_abs: don't supply a separate 64 bit code path for high level cpu targets 2024-04-07 22:49:18 +02:00
Nikolay Nikolov
2e65a5d458 + introduced cgbase.topcg2str and topcmp2str for converting TOpCg and TOpCmp to strings (useful for debug logging, etc) 2024-04-07 22:10:41 +03:00
florian
139f2dfe84 * fix internalerror 200502052 with certain min/max optimizations on x86-64, resolves #40730 2024-04-06 23:31:37 +02:00
Pierre Muller
f56587bddd Use correct check for unsigned size in a_op64_{const/reg}_reg_reg_checkoverflow methods 2024-04-03 23:41:50 +02:00
Pierre Muller
8511b0fc7b Increase default stack size to 8Mb for i386 and sparc solaris systems 2024-04-03 23:17:55 +02:00
florian
8cdb3deebd * another fix for min/max intrinsics on x86_64 for non constant/reference/register locations, resolves #40724 2024-04-03 22:03:30 +02:00
Pierre Muller
8fa80295d0 Avoid running cleanppulogs and ppulogs rules in parallel 2024-04-03 14:56:51 +00:00
florian
e7716dc05f + avr: overflow checking for abs, together with the other recent abs-related commits, resolves #40694 2024-04-02 19:01:42 +02:00
florian
b00e9543a7 * sparc: overflow support for 64 bit operations 2024-04-02 16:41:38 +02:00
florian
3b8fcfc6eb * fix min/max intrinsics on x86_64 for non constant/reference/register locations, resolves #40721 2024-04-01 23:25:24 +02:00
Michael Ring
7c3ab69c50 Fixed missing section for Raspberry Pi Pico 2024-04-01 21:00:12 +00:00
florian
e88248d453 + comment to explain last commit 2024-03-31 22:33:22 +02:00
florian
bf1c674672 * don't remove align directives before case jump tables (they have the type alt_addr) 2024-03-31 22:15:08 +02:00
florian
a90691435b + abs(long/int64): overflow checking for xtensa implemented 2024-03-30 20:29:48 +01:00