9003f9f21a (master): ZJIT: Avoid eager stack spills for inlined frame pushes (#17387)

0 views
Skip to first unread message

Takashi Kokubun

unread,
3:13 AM (18 hours ago) 3:13 AM
to ruby...@g.ruby-lang.org
Takashi Kokubun 2026-07-09 07:13:05 +0000 (Thu, 09 Jul 2026)

New Revision: 9003f9f21a

https://github.com/ruby/ruby/commit/9003f9f21a

Log:
ZJIT: Avoid eager stack spills for inlined frame pushes (#17387)

PushInlineFrame keeps caller stack slots lazy. When an inlined callee
side-exits, install a caller JITFrame with a stack map on the exit path
so rb_zjit_materialize_frames can reconstruct older frames without
eagerly spilling at frame push.

Co-authored-by: Alan Wu <ala...@ruby-lang.org>
Co-authored-by: Kevin Menard <ke...@nirvdrum.com>

Modified files:
vm.c
zjit.h
zjit/bindgen/src/main.rs
zjit/src/backend/arm64/mod.rs
zjit/src/backend/lir.rs
zjit/src/backend/x86_64/mod.rs
zjit/src/codegen.rs
zjit/src/codegen_tests.rs
zjit/src/cruby_bindings.inc.rs
zjit/src/hir.rs
zjit/src/hir/opt_tests.rs
zjit/src/hir/tests.rs
Reply all
Reply to author
Forward
0 new messages