Skip to content

ZJIT: Merge local invalidation across block predecessors - #1079

Open
efegokdemir wants to merge 1 commit into
Shopify:masterfrom
efegokdemir:fix/zjit-stale-local-merge
Open

efegokdemir wants to merge 1 commit into
Shopify:masterfrom
efegokdemir:fix/zjit-stale-local-merge

Conversation

@efegokdemir

Copy link
Copy Markdown

Fixes #1078

Compute local-invalidation state to a fixed point across bytecode block predecessors before HIR generation. Merge blocks now insert NoEPEscape when any incoming path contains a non-leaf call.

Tests:

  • ZJIT codegen regression for the issue reproducer
  • Existing local-invalidation and block-capture codegen tests
  • build/ruby --zjit reproducer returns 2

@github-actions github-actions Bot added the jit label Oct 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ZJIT: Stale local read at a merge point after a non-leaf call in one branch

1 participant