summaryrefslogtreecommitdiff
path: root/mjit.c
diff options
context:
space:
mode:
authorTakashi Kokubun <[email protected]>2022-12-27 23:04:53 -0800
committerTakashi Kokubun <[email protected]>2023-03-05 22:11:20 -0800
commite4a824f7695a8de9afb90978ccda038b7d280372 (patch)
tree9ae92285d84ff4a2bac76bd925bad6a04c4d5d38 /mjit.c
parent9f8f1afba2572ead6ce5a8ca456cb9cabf094c98 (diff)
Fix broken rebase
Diffstat (limited to 'mjit.c')
-rw-r--r--mjit.c86
1 files changed, 0 insertions, 86 deletions
diff --git a/mjit.c b/mjit.c
index 9c3637b133..9dd48ff311 100644
--- a/mjit.c
+++ b/mjit.c
@@ -129,92 +129,6 @@ static VALUE rb_mMJITC = 0;
static VALUE rb_MJITCompiler = 0;
// RubyVM::MJIT::CPointer::Struct_rb_iseq_t
static VALUE rb_cMJITIseqPtr = 0;
-// RubyVM::MJIT::CPointer::Struct_IC
-static VALUE rb_cMJITICPtr = 0;
-// RubyVM::MJIT::Compiler
-static VALUE rb_mMJITHooks = 0;
-
-#define WITH_MJIT_DISABLED(stmt) do { \
- bool original_call_p = mjit_call_p; \
- mjit_call_p = false; \
- stmt; \
- mjit_call_p = original_call_p; \
- if (mjit_cancel_p) mjit_call_p = false; \
-} while (0);
-
-// Hook MJIT when BOP is redefined.
-MJIT_FUNC_EXPORTED void
-rb_mjit_bop_redefined(int redefined_flag, enum ruby_basic_operators bop)
-{
- if (!mjit_enabled || !mjit_call_p || !rb_mMJITHooks) return;
- WITH_MJIT_DISABLED({
- rb_funcall(rb_mMJITHooks, rb_intern("on_bop_redefined"), 2, INT2NUM(redefined_flag), INT2NUM((int)bop));
- });
-}
-
-// Hook MJIT when CME is invalidated.
-MJIT_FUNC_EXPORTED void
-rb_mjit_cme_invalidate(rb_callable_method_entry_t *cme)
-{
- if (!mjit_enabled || !mjit_call_p || !rb_mMJITHooks) return;
- WITH_MJIT_DISABLED({
- VALUE cme_klass = rb_funcall(rb_mMJITC, rb_intern("rb_callable_method_entry_struct"), 0);
- VALUE cme_ptr = rb_funcall(cme_klass, rb_intern("new"), 1, SIZET2NUM((size_t)cme));
- rb_funcall(rb_mMJITHooks, rb_intern("on_cme_invalidate"), 1, cme_ptr);
- });
-}
-
-// Hook MJIT when Ractor is spawned.
-void
-rb_mjit_before_ractor_spawn(void)
-{
- if (!mjit_enabled || !mjit_call_p || !rb_mMJITHooks) return;
- WITH_MJIT_DISABLED({
- rb_funcall(rb_mMJITHooks, rb_intern("on_ractor_spawn"), 0);
- });
-}
-
-static void
-mjit_constant_state_changed(void *data)
-{
- if (!mjit_enabled || !mjit_call_p || !rb_mMJITHooks) return;
- ID id = (ID)data;
- WITH_MJIT_DISABLED({
- rb_funcall(rb_mMJITHooks, rb_intern("on_constant_state_changed"), 1, ID2SYM(id));
- });
-}
-
-// Hook MJIT when constant state is changed.
-MJIT_FUNC_EXPORTED void
-rb_mjit_constant_state_changed(ID id)
-{
- if (!mjit_enabled || !mjit_call_p || !rb_mMJITHooks) return;
- // Asynchronously hook the Ruby code since this is hooked during a "Ruby critical section".
- extern int rb_workqueue_register(unsigned flags, rb_postponed_job_func_t func, void *data);
- rb_workqueue_register(0, mjit_constant_state_changed, (void *)id);
-}
-
-// Hook MJIT when constant IC is updated.
-MJIT_FUNC_EXPORTED void
-rb_mjit_constant_ic_update(const rb_iseq_t *const iseq, IC ic, unsigned insn_idx)
-{
- if (!mjit_enabled || !mjit_call_p || !rb_mMJITHooks) return;
- WITH_MJIT_DISABLED({
- VALUE iseq_ptr = rb_funcall(rb_cMJITIseqPtr, rb_intern("new"), 1, SIZET2NUM((size_t)iseq));
- VALUE ic_ptr = rb_funcall(rb_cMJITICPtr, rb_intern("new"), 1, SIZET2NUM((size_t)ic));
- rb_funcall(rb_mMJITHooks, rb_intern("on_constant_ic_update"), 3, iseq_ptr, ic_ptr, UINT2NUM(insn_idx));
- });
-}
-
-// Hook MJIT when TracePoint is enabled.
-MJIT_FUNC_EXPORTED void
-rb_mjit_tracing_invalidate_all(rb_event_flag_t new_iseq_events)
-{
- if (!mjit_enabled || !mjit_call_p || !rb_mMJITHooks) return;
- WITH_MJIT_DISABLED({
- rb_funcall(rb_mMJITHooks, rb_intern("on_tracing_invalidate_all"), 1, UINT2NUM(new_iseq_events));
- });
-}
void
rb_mjit_add_iseq_to_process(const rb_iseq_t *iseq)