Files
scriptc/tests
Malte Ubl 89f80c96cc Keep initializer-private number globals in local slots
A module-level number binding that only its guarded, synchronous module
initializer reads or writes (findInitializerBindings) is invisible to
every other function, and reentry returns before reaching it. Bindings
proven int32 already move into an i32 local of the initializer
(initializerLocalCandidates); the initializer now also addresses the
remaining double candidates through a function-local slot seeded from the
global, so LLVM keeps top-level double accumulators in registers across
calls and loops instead of storing and reloading the global around every
opaque call. The global's storage is never read again.

Bindings a loop updates only conditionally stay in memory: in a register
LLVM turns `if (c) count++` into a select every iteration waits on, which
made 30-string-build's character scan slower.
2026-10-16 06:54:45 -07:00
..
2026-07-22 18:08:04 -05:00
2026-10-16 07:31:21 -05:00
2026-10-16 08:17:52 -05:00