Most writes into frame fi elds (except PC and jit_return) are not optimized ˒ ZJIT spills registers into both the VM stack and the C stack Method calls in ZJIT
writing them ˒ The register allocator needs to spill registers into locations that the interpreter can retrieve as needed ˒ For local variables, and longjmp for exceptions Challenges in Lightweight Frames
They are mostly queried, not materialized in many cases ˒ Future work: ˒ SP, EP, self ˒ Env: method entry, block handler, fl ags ˒ Spills into the VM stack Lightweight Frames: Current State
for pro fi lers and other features ˒ Lightweight Frames does not remove register spills into the C stack, but method inlining can Method inlining with Lightweight Frames