diff options
author | Aaron Patterson <tenderlove@ruby-lang.org> | 2021-03-09 11:01:16 -0800 |
---|---|---|
committer | Alan Wu <XrXr@users.noreply.github.com> | 2021-10-20 18:19:31 -0400 |
commit | c15a577eda78f1944ade1e9ae1bdadeaeee3c8d7 (patch) | |
tree | e9e8c4d25de126986dc700bfc82e13a69e5531cc /yjit_iface.h | |
parent | 46874b8fb979d0bf46d5d3b6e1523293201441e8 (diff) |
Make Blocks depend on BOPS
When a BOP is redefined, the BOP redefinition callback will invalidate
any blocks that depend on BOPS. This allows us to eliminate runtime
checks for BOP redefinition.
Diffstat (limited to 'yjit_iface.h')
-rw-r--r-- | yjit_iface.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/yjit_iface.h b/yjit_iface.h index 600fa47a34..d525337d24 100644 --- a/yjit_iface.h +++ b/yjit_iface.h @@ -78,6 +78,7 @@ int opcode_at_pc(const rb_iseq_t *iseq, const VALUE *pc); void check_cfunc_dispatch(VALUE receiver, struct rb_call_data *cd, void *callee, rb_callable_method_entry_t *compile_time_cme); bool cfunc_needs_frame(const rb_method_cfunc_t *cfunc); +RBIMPL_ATTR_NODISCARD() bool assume_bop_not_redefined(block_t *block, int redefined_flag, enum ruby_basic_operators bop); void assume_method_lookup_stable(const struct rb_callcache *cc, const rb_callable_method_entry_t *cme, block_t* block); RBIMPL_ATTR_NODISCARD() bool assume_single_ractor_mode(block_t *block); RBIMPL_ATTR_NODISCARD() bool assume_stable_global_constant_state(block_t *block); |