Parent: #432
Blocks: #429
Related: #336
Use precise optimizer stack maps to make live optimized frames safe under moving collection.
Acceptance
Completion
057a2ef adds bounded live optimizer moving safepoints. AArch64 loops poll every 64 completed backedges, publish the exact loop-header recovery index after canonical copies, preserve ABI state, and enter the collector with no managed pointer held only in registers. Numeric guards apply only to values consumed by numeric operations; recovery-only objects occupy precisely marked scratch slots and are rewritten in place.
ae26011 runs the real relocation witness in both single-mutator and parallel_js no-GIL contexts. The combined optimizer gate passes 39/39 lowering tests and 68/68 runtime tests in normal and TSan modes. Primitive-only maps remain empty, malformed maps fail closed, and deterministic post-move bytecode recovery reads the relocated object.
Parent: #432
Blocks: #429
Related: #336
Use precise optimizer stack maps to make live optimized frames safe under moving collection.
Acceptance
Completion
057a2ef adds bounded live optimizer moving safepoints. AArch64 loops poll every 64 completed backedges, publish the exact loop-header recovery index after canonical copies, preserve ABI state, and enter the collector with no managed pointer held only in registers. Numeric guards apply only to values consumed by numeric operations; recovery-only objects occupy precisely marked scratch slots and are rewritten in place.
ae26011 runs the real relocation witness in both single-mutator and parallel_js no-GIL contexts. The combined optimizer gate passes 39/39 lowering tests and 68/68 runtime tests in normal and TSan modes. Primitive-only maps remain empty, malformed maps fail closed, and deterministic post-move bytecode recovery reads the relocated object.