Skip to content

ZJIT: Implement side exits for entry frames #13469

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jun 4, 2025

Conversation

k0kubun
Copy link
Member

@k0kubun k0kubun commented May 29, 2025

This PR adds an initial implementation for side exits.

It exits to the interpreter correctly when the current frame is pushed by the interpreter. When it's pushed by JIT, however, it panics inside rewind_caller_frames(). It should materialize fields that JIT-to-JIT calls skip to write, which is to be done in a separate PR.

@k0kubun k0kubun marked this pull request as ready for review May 29, 2025 17:59
@matzbot matzbot requested a review from a team May 29, 2025 17:59
Copy link
Contributor

@tekknolagi tekknolagi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

awesome, thank you for explaining. looks good. let's go for full frame push for now, as you suggested, to unblock the rest of the project

Co-authored-by: Max Bernstein <tekknolagi@gmail.com>
@k0kubun k0kubun merged commit 112c342 into ruby:master Jun 4, 2025
82 checks passed
@k0kubun k0kubun deleted the zjit-side-exit branch June 4, 2025 21:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants