summaryrefslogtreecommitdiff
path: root/mjit.c
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2022-09-06 12:57:24 +0900
committerTakashi Kokubun <takashikkbn@gmail.com>2022-09-06 15:50:14 +0900
commit341b40bd0c2228a7759852b82af1fb11c15751e6 (patch)
tree79bad4020a33208089376816e7b11ddcf7bfb071 /mjit.c
parent5b3bd91fcba7224e9ece54c862dc96461cf4bf79 (diff)
Cache RubyVM::MJIT constants
for performance
Diffstat (limited to 'mjit.c')
-rw-r--r--mjit.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/mjit.c b/mjit.c
index efb40216f5..6318407996 100644
--- a/mjit.c
+++ b/mjit.c
@@ -1804,6 +1804,11 @@ const struct ruby_opt_message mjit_option_messages[] = {
};
#undef M
+// RubyVM::MJIT::Compiler
+VALUE rb_mMJITCompiler = 0;
+// RubyVM::MJIT::C
+VALUE rb_mMJITC = 0;
+
// Initialize MJIT. Start a thread creating the precompiled header and
// processing ISeqs. The function should be called first for using MJIT.
// If everything is successful, MJIT_INIT_P will be TRUE.
@@ -1820,6 +1825,8 @@ mjit_init(const struct mjit_options *opts)
mjit_enabled = false;
return;
}
+ rb_mMJITCompiler = rb_const_get(rb_mMJIT, rb_intern("Compiler"));
+ rb_mMJITC = rb_const_get(rb_mMJIT, rb_intern("C"));
mjit_call_p = true;
mjit_pid = getpid();