diff options
author | Takashi Kokubun <[email protected]> | 2024-04-25 07:04:53 -0700 |
---|---|---|
committer | GitHub <[email protected]> | 2024-04-25 10:04:53 -0400 |
commit | 7ab1a608e7413cdb0f93243eb3e6e20a32cec44e (patch) | |
tree | 29836bd248b0e5bce497ae6969a6b6e7c2055152 /vm.c | |
parent | f248e1008a8f79cca801b27d512a587f65a0dd36 (diff) |
YJIT: Optimize local variables when EP == BP (take 2) (#10607)
* Revert "Revert "YJIT: Optimize local variables when EP == BP" (#10584)"
This reverts commit c8783441952217c18e523749c821f82cd7e5d222.
* YJIT: Take care of GC references in ISEQ invariants
Co-authored-by: Alan Wu <[email protected]>
---------
Co-authored-by: Alan Wu <[email protected]>
Diffstat (limited to 'vm.c')
-rw-r--r-- | vm.c | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -1007,6 +1007,11 @@ vm_make_env_each(const rb_execution_context_t * const ec, rb_control_frame_t *co } #endif + // Invalidate JIT code that assumes cfp->ep == vm_base_ptr(cfp). + if (env->iseq) { + rb_yjit_invalidate_ep_is_bp(env->iseq); + } + return (VALUE)env; } |