mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-11-09 10:17:12 +08:00
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.