summaryrefslogtreecommitdiff
path: root/yjit_iface.h
diff options
context:
space:
mode:
authorAaron Patterson <tenderlove@ruby-lang.org>2021-03-09 11:01:16 -0800
committerAlan Wu <XrXr@users.noreply.github.com>2021-10-20 18:19:31 -0400
commitc15a577eda78f1944ade1e9ae1bdadeaeee3c8d7 (patch)
treee9e8c4d25de126986dc700bfc82e13a69e5531cc /yjit_iface.h
parent46874b8fb979d0bf46d5d3b6e1523293201441e8 (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.h1
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);