Commit Graph

71857 Commits

Author SHA1 Message Date
J. Gareth "Curious Kit" Moreton
c7c657a9ec * Added two more tests based on bugs found by Marģers during development 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
5cb2f823d2 * New pure tests that evaluate analysis of while and repeat loops, including infinite loops 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
d469e3e68d * New pure tests that evaluate finite while loops and a conditional Exit statement 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
c24182df86 * New pure tests that evaluate Break in for-loops 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
243e9155fd * New pure function tests showcasing its use on the FNV-1a hash function, and a negative version that shows {$Q+} in action. 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
878b51e24f * Floating-point and internal function pure tests 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
3cbbd64a20 * Made numerous routines in the Math unit pure 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
adccaf9448 * Mathematical intrinsics are now pure 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
6cd6566528 * New test based on webtbs/tw38337 that helps catch internal error 200307043 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
d39c7e3974 * Fixed issue with stripped typeconvs causing problems with inline functions (internal error 200307043) 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
57f8450f94 * Added 2 basic tests for pure functions 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
9c215fba02 * A number of conversion functions in System and SysUtils are now pure 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
f15284c3ed * Some internal compiler functions made pure 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
253f7a0b1d * FPC_HAS_PURE is now a default system macro 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
1241242ed8 * Added support for pure functions 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
df73ef4f64 * Added pure-related warning messages. 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
84eb9490cf * Added nested statement optimisation (where statement.left is a statement) to clean up pure analysis 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
2734225935 * New blocknode optimisation that removes goto nodes that come right before the label they jump to 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
f817167760 * do_optconstpropagate adapted for pure function analysis 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
b971a5f852 * Block nodes are now more heavily simplified
when doing it for pure functions.
2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
32d448f91c * Overrode "pure_simplify" for TAddNode so it can combine constants without raising overflow errors. 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
6bd80aa0d2 * Added framework for an optional, pure-specific simplify method. 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
3370a8eb6b * doinlinesimplify now returns a Boolean result... true if something changed, false otherwise. 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
c9e3e96767 * do_optcse and do_consttovar now return rootnode rather than nil 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
19802bf597 * Type conversion nodes are now stripped if the
source and target types are equal, unmanaged
    and not generic/undefined.
2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
8b1e5a0589 * New "is_undefined" def checker function 2025-04-02 21:56:00 +00:00
J. Gareth "Curious Kit" Moreton
9ca8215248 * XML node dump now includes "totypedef" in
TTypeConvNode info if different to resultdef
2025-04-02 21:56:00 +00:00
florian
fb126e32f9 * RtlUnwind destroys register, so save and restore them afterwards 2025-04-02 22:34:21 +02:00
Michaël Van Canneyt
9e9153b2d3 * forgot to commit 2025-04-02 16:27:34 +02:00
Michaël Van Canneyt
736fc12e55 * Allow wasm guest & host to be notified of wasm memory growth 2025-04-02 11:21:03 +02:00
florian
62236ec2bb * proper naming 2025-04-01 22:53:56 +02:00
florian
425ef662cc * patch by Pierre to fix spilling and jump handling of pseudo-instructions 2025-03-31 22:53:40 +02:00
Pierre Muller
282f4aa060 Add definitions of ALUSInt and ALUUInt types in java/jsystemh_types.inc 2025-03-31 13:36:13 +00:00
florian
b1151ef4ea + missing instruction 2025-03-30 20:07:00 +02:00
Rika Ichinose
6ab6be4793 Faster Val(). 2025-03-30 19:36:42 +02:00
J. Gareth "Curious Kit" Moreton
de51e6a32a * x86_64: Extension to MovMov2Mov optimisations to allow more MOVL to MOVQ zero-extensions 2025-03-30 17:04:56 +02:00
Ondrej Pokorny
ec5b4d458e decrease restarts_to_go only if restart is enabled (solves runtime error if compiled with range checks) 2025-03-30 08:16:41 +00:00
Ondrej Pokorny
0d988f2c96 JPEG: support custom CMYK conversions and reading custom APPn headers 2025-03-30 08:16:41 +00:00
florian
84a852bc13 * more aggressive cse on thread vars 2025-03-29 22:31:13 +01:00
Rika Ichinose
ce6db34224 Shortcut Compare*(a, a) before entering the aligned loop. 2025-03-29 22:07:03 +01:00
Rika Ichinose
8093b1ba0c Unbias 32-bit random. 2025-03-29 21:55:08 +01:00
florian
c07da2a654 * typo 2025-03-29 18:52:16 +01:00
florian
548e91f104 * fix rol/ror instruction usage and spilling on RiscV 2025-03-28 22:26:59 +01:00
Pierre Muller
6debe90b07 Disable libjack package for beos OS 2025-03-28 15:40:23 +00:00
Pierre Muller
a093c6e59a Add dependencies for units of utils/fpcres package 2025-03-28 05:46:00 +00:00
florian
f8f54dcbcf + RiscV has internal rol/r support 2025-03-27 22:33:30 +01:00
florian
f65994ddcb + RiscV: flags for crypotography extensions 2025-03-26 22:44:26 +01:00
Michaël Van Canneyt
1ef1481488 * Print unit name, flush output in status messages 2025-03-26 11:43:20 +01:00
florian
065ddfd8d4 + RiscV: ROL/ROR code generation support 2025-03-25 22:40:26 +01:00
Pierre Muller
a74a4aca03 Avoid range check error in TObjData.writebytes overloads using dynamic arrays 2025-03-25 12:09:06 +01:00