Class: RBF::JIT

Inherits:
Object
  • Object
show all
Defined in:
lib/rbf/jit.rb,
lib/rbf/jit/code.rb

Defined Under Namespace

Classes: Code

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ JIT

Returns a new instance of JIT.



38
39
40
# File 'lib/rbf/jit.rb', line 38

def initialize (options)
  @options = options
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



36
37
38
# File 'lib/rbf/jit.rb', line 36

def options
  @options
end

Class Method Details

.supported?Boolean

Returns:

  • (Boolean)


20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/rbf/jit.rb', line 20

def supported?
  raise

  require 'llvm'
  require 'llvm/core'
  require 'llvm/execution_engine'
  require 'llvm/transforms/scalar'

  LLVM.init_x86

  true
rescue
  false
end

Instance Method Details

#compile(tree) ⇒ Object



42
43
44
# File 'lib/rbf/jit.rb', line 42

def compile (tree)
  Code.new(tree, options)
end