Tempfile document updated.
[ruby.git] / rjit.rb
blob12fc10c91ef676655c48d9e52cd26b021dd8f4ae
1 module RubyVM::RJIT
2   # Return true if \RJIT is enabled.
3   def self.enabled?
4     Primitive.cexpr! 'RBOOL(rb_rjit_enabled)'
5   end
7   # Start JIT compilation after \--rjit-disable.
8   def self.enable
9     Primitive.cstmt! %{
10       rb_rjit_call_p = true;
11       return Qnil;
12     }
13   end
15   if Primitive.rjit_stats_enabled_p
16     at_exit do
17       Primitive.rjit_stop_stats
18       print_stats
19     end
20   end
21   if Primitive.rjit_trace_exits_enabled_p
22     at_exit do
23       Primitive.rjit_stop_stats
24       dump_trace_exits
25     end
26   end
27 end
29 if RubyVM::RJIT.enabled?
30   begin
31     require 'fiddle'
32     require 'fiddle/import'
33   rescue LoadError
34     return # miniruby doesn't support RJIT
35   end
37   require 'ruby_vm/rjit/c_type'
38   require 'ruby_vm/rjit/compiler'
39   require 'ruby_vm/rjit/hooks'
40   require 'ruby_vm/rjit/stats'
41 end