Files
scriptc/packages
Malte Ubl 6ff0b7c2df Load the active exception cell once per synchronous body
Every inline pending-exception check in an executable loaded the
runtime's active-cell pointer and then its kind: two dependent loads
after each call that may throw, because LLVM must assume any call can
change the pointer. Fiber switches restore the active cell before control
returns to a synchronous frame (stack switches, eager spawns and
generator resumes all swap back to the caller's cell), so the pointer is
one value for the whole invocation. Synchronous IR function bodies now
load it once in the entry block and each check reads only the kind.

The flag lives on the body's BlockBuilder, so adapters and runtime
helpers keep the per-check load. Async functions, generators and worker
executables (whose checks also fold in the context stop signal) keep the
existing form; libraries still test through scr_exc_pending.
2026-10-09 15:03:13 -07:00
..
2026-10-08 21:18:31 -05:00
2026-10-08 21:18:31 -05:00
2026-10-08 21:18:31 -05:00
2026-10-08 21:18:31 -05:00
2026-10-08 21:18:31 -05:00
2026-10-08 21:18:31 -05:00
2026-10-08 21:18:31 -05:00
2026-10-08 21:18:31 -05:00
2026-10-08 21:18:31 -05:00
2026-10-08 21:18:31 -05:00
2026-10-08 21:18:31 -05:00
2026-10-08 21:18:31 -05:00
2026-10-08 21:18:31 -05:00
2026-10-08 21:18:31 -05:00
2026-10-08 21:18:31 -05:00
2026-10-08 21:18:31 -05:00
2026-10-08 21:18:31 -05:00
2026-10-08 21:18:31 -05:00
2026-10-08 21:18:31 -05:00
2026-10-08 21:18:31 -05:00
2026-10-08 21:18:31 -05:00
2026-10-08 21:18:31 -05:00
2026-10-08 21:18:31 -05:00
2026-10-08 21:18:31 -05:00