diff options
Diffstat (limited to 'rjit.rb')
-rw-r--r-- | rjit.rb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/rjit.rb b/rjit.rb new file mode 100644 index 0000000000..f9679e9164 --- /dev/null +++ b/rjit.rb @@ -0,0 +1,37 @@ +module RubyVM::MJIT + # Return true if MJIT is enabled. + def self.enabled? + Primitive.cexpr! 'RBOOL(mjit_enabled)' + end + + # Stop generating JITed code. + def self.pause(wait: true) + Primitive.cexpr! 'mjit_pause(RTEST(wait))' + end + + # Start generating JITed code again after pause. + def self.resume + Primitive.cexpr! 'mjit_resume()' + end + + if Primitive.mjit_stats_enabled_p + at_exit do + Primitive.mjit_stop_stats + print_stats + end + end +end + +if RubyVM::MJIT.enabled? + begin + require 'fiddle' + require 'fiddle/import' + rescue LoadError + return # miniruby doesn't support MJIT + end + + require 'ruby_vm/mjit/c_type' + require 'ruby_vm/mjit/compiler' + require 'ruby_vm/mjit/hooks' + require 'ruby_vm/mjit/stats' +end |