ruby-llvm 3.5.0 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/README.md +19 -4
- data/ext/ruby-llvm-support/Rakefile +15 -6
- data/lib/llvm/analysis_ffi.rb +27 -28
- data/lib/llvm/config.rb +4 -4
- data/lib/llvm/core.rb +45 -2
- data/lib/llvm/core/bitcode.rb +10 -10
- data/lib/llvm/core/bitcode_ffi.rb +89 -65
- data/lib/llvm/core/builder.rb +2 -3
- data/lib/llvm/core/context.rb +1 -1
- data/lib/llvm/core/pass_manager.rb +4 -2
- data/lib/llvm/core/type.rb +2 -2
- data/lib/llvm/core/value.rb +138 -24
- data/lib/llvm/core_ffi.rb +3863 -3730
- data/lib/llvm/execution_engine.rb +37 -35
- data/lib/llvm/execution_engine_ffi.rb +238 -276
- data/lib/llvm/linker.rb +1 -14
- data/lib/llvm/linker_ffi.rb +22 -26
- data/lib/llvm/target.rb +9 -15
- data/lib/llvm/target_ffi.rb +301 -293
- data/lib/llvm/transforms/builder.rb +1 -1
- data/lib/llvm/transforms/builder_ffi.rb +57 -58
- data/lib/llvm/transforms/ipo.rb +1 -1
- data/lib/llvm/transforms/ipo_ffi.rb +59 -60
- data/lib/llvm/transforms/scalar_ffi.rb +199 -143
- data/lib/llvm/transforms/vectorize_ffi.rb +15 -16
- data/lib/llvm/version.rb +3 -2
- data/test/basic_block_test.rb +0 -1
- data/test/bitcode_test.rb +1 -2
- data/test/call_test.rb +1 -1
- data/test/double_test.rb +8 -7
- data/test/equality_test.rb +2 -4
- data/test/function_test.rb +27 -0
- data/test/generic_value_test.rb +1 -1
- data/test/instruction_test.rb +0 -2
- data/test/ipo_test.rb +1 -1
- data/test/linker_test.rb +0 -9
- data/test/mcjit_test.rb +3 -3
- data/test/module_test.rb +16 -1
- data/test/pass_manager_builder_test.rb +1 -2
- data/test/target_test.rb +3 -20
- data/test/test_helper.rb +4 -1
- metadata +55 -37
@@ -4,36 +4,35 @@ require 'ffi'
|
|
4
4
|
|
5
5
|
module LLVM::C
|
6
6
|
extend FFI::Library
|
7
|
-
ffi_lib ["libLLVM-
|
8
|
-
|
7
|
+
ffi_lib ["libLLVM-10.so.1", "LLVM-10"]
|
8
|
+
|
9
9
|
def self.attach_function(name, *_)
|
10
10
|
begin; super; rescue FFI::NotFoundError => e
|
11
11
|
(class << self; self; end).class_eval { define_method(name) { |*_| raise e } }
|
12
12
|
end
|
13
13
|
end
|
14
|
-
|
15
|
-
#
|
16
|
-
#
|
14
|
+
|
15
|
+
# DEPRECATED - Use LLVMAddSLPVectorizePass
|
16
|
+
#
|
17
17
|
# @method add_bb_vectorize_pass(pm)
|
18
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
19
|
-
# @return [nil]
|
18
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
19
|
+
# @return [nil]
|
20
20
|
# @scope class
|
21
21
|
attach_function :add_bb_vectorize_pass, :LLVMAddBBVectorizePass, [:pointer], :void
|
22
|
-
|
22
|
+
|
23
23
|
# See llvm::createLoopVectorizePass function.
|
24
|
-
#
|
24
|
+
#
|
25
25
|
# @method add_loop_vectorize_pass(pm)
|
26
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
27
|
-
# @return [nil]
|
26
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
27
|
+
# @return [nil]
|
28
28
|
# @scope class
|
29
29
|
attach_function :add_loop_vectorize_pass, :LLVMAddLoopVectorizePass, [:pointer], :void
|
30
|
-
|
30
|
+
|
31
31
|
# See llvm::createSLPVectorizerPass function.
|
32
|
-
#
|
32
|
+
#
|
33
33
|
# @method add_slp_vectorize_pass(pm)
|
34
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
35
|
-
# @return [nil]
|
34
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
35
|
+
# @return [nil]
|
36
36
|
# @scope class
|
37
37
|
attach_function :add_slp_vectorize_pass, :LLVMAddSLPVectorizePass, [:pointer], :void
|
38
|
-
|
39
38
|
end
|
data/lib/llvm/version.rb
CHANGED
data/test/basic_block_test.rb
CHANGED
data/test/bitcode_test.rb
CHANGED
@@ -8,8 +8,7 @@ class BitcodeTestCase < Minitest::Test
|
|
8
8
|
|
9
9
|
def test_bitcode
|
10
10
|
test_module = define_module("test_module") do |mod|
|
11
|
-
define_function(mod, "test_function", [], LLVM::Int) do
|
12
|
-
|builder, function, *arguments|
|
11
|
+
define_function(mod, "test_function", [], LLVM::Int) do |builder, function, *arguments|
|
13
12
|
entry = function.basic_blocks.append
|
14
13
|
builder.position_at_end(entry)
|
15
14
|
builder.ret(LLVM::Int(1))
|
data/test/call_test.rb
CHANGED
@@ -60,7 +60,7 @@ class CallTestCase < Minitest::Test
|
|
60
60
|
builder.ret(builder.call(external, arguments.first))
|
61
61
|
end
|
62
62
|
end
|
63
|
-
assert_equal
|
63
|
+
assert_equal(-10.abs, run_function_on_module(test_module, "test_function", -10).to_i)
|
64
64
|
end
|
65
65
|
|
66
66
|
def test_external_string
|
data/test/double_test.rb
CHANGED
@@ -6,7 +6,7 @@ class DoubleTestCase < Minitest::Test
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def test_double
|
9
|
-
mod
|
9
|
+
mod = LLVM::Module.new("Double Test")
|
10
10
|
mod.functions.add(:sin, [LLVM::Double], LLVM::Double)
|
11
11
|
|
12
12
|
builder = LLVM::Builder.new
|
@@ -20,14 +20,15 @@ class DoubleTestCase < Minitest::Test
|
|
20
20
|
builder.ret(builder.fadd(p0, LLVM::Double(1.0)))
|
21
21
|
end
|
22
22
|
|
23
|
-
engine = LLVM::
|
23
|
+
engine = LLVM::MCJITCompiler.new(mod)
|
24
24
|
|
25
|
-
arg
|
25
|
+
arg = 5.0
|
26
26
|
result = engine.run_function(mod.functions["test"], arg)
|
27
|
-
assert_equal arg+1, result.to_f(LLVM::Double)
|
27
|
+
assert_equal arg + 1, result.to_f(LLVM::Double)
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
|
29
|
+
# TODO: fix this
|
30
|
+
# assert_in_delta(Math.sin(1.0),
|
31
|
+
# engine.run_function(mod.functions["sin"], 1.0).to_f(LLVM::Double),
|
32
|
+
# 1e-10)
|
32
33
|
end
|
33
34
|
end
|
data/test/equality_test.rb
CHANGED
@@ -14,9 +14,9 @@ class EqualityTestCase < Minitest::Test
|
|
14
14
|
def assert_equalities(options)
|
15
15
|
map = {
|
16
16
|
:equal => method(:assert_equal),
|
17
|
-
:not_equal => lambda {|n, m, name| assert n != m, name
|
17
|
+
:not_equal => lambda {|n, m, name| assert n != m, name },
|
18
18
|
:same => method(:assert_same),
|
19
|
-
:not_same => lambda {|n, m, name| assert !n.equal?(m), name
|
19
|
+
:not_same => lambda {|n, m, name| assert !n.equal?(m), name },
|
20
20
|
:eql => lambda {|n, m, name| assert n.eql?(m), name },
|
21
21
|
:not_eql => lambda {|n, m, name| assert !n.eql?(m), name },
|
22
22
|
}
|
@@ -26,7 +26,6 @@ class EqualityTestCase < Minitest::Test
|
|
26
26
|
callable.call(n, m, name.to_s)
|
27
27
|
end
|
28
28
|
end
|
29
|
-
|
30
29
|
end
|
31
30
|
|
32
31
|
def test_int_value
|
@@ -88,4 +87,3 @@ class EqualityTestCase < Minitest::Test
|
|
88
87
|
end
|
89
88
|
|
90
89
|
end
|
91
|
-
|
data/test/function_test.rb
CHANGED
@@ -30,6 +30,33 @@ class FunctionTest < Minitest::Test
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
+
def helper_test_attribute(name)
|
34
|
+
with_function [], LLVM.Void do |fun|
|
35
|
+
assert_equal 0, fun.attribute_count
|
36
|
+
assert_equal [], fun.attributes
|
37
|
+
|
38
|
+
fun.add_attribute(name)
|
39
|
+
assert_equal 1, fun.attribute_count
|
40
|
+
assert_equal [33], fun.attributes
|
41
|
+
|
42
|
+
assert_equal false, fun.verify
|
43
|
+
|
44
|
+
fun.remove_attribute(name)
|
45
|
+
assert_equal 0, fun.attribute_count
|
46
|
+
assert_equal [], fun.attributes
|
47
|
+
|
48
|
+
assert_equal false, fun.verify
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_add_attribute_old_name
|
53
|
+
helper_test_attribute(:no_unwind_attribute)
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_add_attribute_new_name
|
57
|
+
helper_test_attribute(:nounwind)
|
58
|
+
end
|
59
|
+
|
33
60
|
end
|
34
61
|
|
35
62
|
class FunctionTypeTest < Minitest::Test
|
data/test/generic_value_test.rb
CHANGED
data/test/instruction_test.rb
CHANGED
data/test/ipo_test.rb
CHANGED
data/test/linker_test.rb
CHANGED
@@ -34,13 +34,4 @@ class LinkerTestCase < Minitest::Test
|
|
34
34
|
|
35
35
|
assert_equal 42, run_function_on_module(@mod1, 'main').to_i
|
36
36
|
end
|
37
|
-
|
38
|
-
def test_link_into_and_destroy
|
39
|
-
create_modules
|
40
|
-
@mod2.link_into_and_destroy(@mod1)
|
41
|
-
|
42
|
-
assert_nil @mod2.to_ptr
|
43
|
-
|
44
|
-
assert_equal 42, run_function_on_module(@mod1, 'main').to_i
|
45
|
-
end
|
46
37
|
end
|
data/test/mcjit_test.rb
CHANGED
@@ -77,7 +77,7 @@ class MCJITTestCase < Minitest::Test
|
|
77
77
|
assert_equal engine.modules, ret, '#<< returns self'
|
78
78
|
end
|
79
79
|
|
80
|
-
|
80
|
+
refute_nil engine.functions[:bar]
|
81
81
|
engine.modules.delete(mod2).tap do |ret|
|
82
82
|
assert_instance_of LLVM::Module, ret, '#delete returns module'
|
83
83
|
assert_equal mod2, ret
|
@@ -88,7 +88,7 @@ class MCJITTestCase < Minitest::Test
|
|
88
88
|
def test_accessors
|
89
89
|
main_mod = LLVM::Module.new('main')
|
90
90
|
engine = LLVM::MCJITCompiler.new(main_mod, :opt_level => 0)
|
91
|
-
assert_match
|
92
|
-
assert_match
|
91
|
+
assert_match(/^e-/, engine.data_layout.to_s)
|
92
|
+
assert_match(/gnu/, engine.target_machine.triple)
|
93
93
|
end
|
94
94
|
end
|
data/test/module_test.rb
CHANGED
@@ -54,7 +54,8 @@ class ModuleTestCase < Minitest::Test
|
|
54
54
|
|
55
55
|
def test_to_s
|
56
56
|
mod = LLVM::Module.new('test_print')
|
57
|
-
assert_equal mod.to_s,
|
57
|
+
assert_equal mod.to_s,
|
58
|
+
"; ModuleID = 'test_print'\nsource_filename = \"test_print\"\n"
|
58
59
|
end
|
59
60
|
|
60
61
|
def test_dump
|
@@ -75,4 +76,18 @@ class ModuleTestCase < Minitest::Test
|
|
75
76
|
end
|
76
77
|
end
|
77
78
|
|
79
|
+
def test_module_properties
|
80
|
+
mod = LLVM::Module.new('mod')
|
81
|
+
|
82
|
+
assert_equal '', mod.triple
|
83
|
+
|
84
|
+
mod.triple = 'x86-linux-gnu'
|
85
|
+
assert_equal 'x86-linux-gnu', mod.triple
|
86
|
+
|
87
|
+
assert_equal '', mod.data_layout
|
88
|
+
|
89
|
+
mod.data_layout = 'e-p:32:32'
|
90
|
+
assert_equal 'e-p:32:32', mod.data_layout
|
91
|
+
end
|
92
|
+
|
78
93
|
end
|
@@ -7,8 +7,7 @@ class PassManagerBuilderTest < Minitest::Test
|
|
7
7
|
LLVM.init_jit
|
8
8
|
@builder = LLVM::PassManagerBuilder.new
|
9
9
|
|
10
|
-
|
11
|
-
@pass_manager = LLVM::PassManager.new(machine)
|
10
|
+
@pass_manager = LLVM::PassManager.new
|
12
11
|
end
|
13
12
|
|
14
13
|
def teardown
|
data/test/target_test.rb
CHANGED
@@ -56,9 +56,6 @@ class TargetTestCase < Minitest::Test
|
|
56
56
|
assert_equal 'x86-linux-gnu', mach.triple
|
57
57
|
assert_equal 'i686', mach.cpu
|
58
58
|
assert_equal '', mach.features
|
59
|
-
|
60
|
-
layout = mach.data_layout
|
61
|
-
assert_equal 'e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S128', layout.to_s
|
62
59
|
end
|
63
60
|
|
64
61
|
def test_emit
|
@@ -74,29 +71,15 @@ class TargetTestCase < Minitest::Test
|
|
74
71
|
|
75
72
|
Tempfile.open('emit') do |tmp|
|
76
73
|
mach.emit(mod, tmp.path)
|
77
|
-
assert_match
|
74
|
+
assert_match(/xorl\t%eax, %eax/, tmp.read)
|
78
75
|
end
|
79
76
|
|
80
77
|
Tempfile.open('emit') do |tmp|
|
81
78
|
mach.emit(mod, tmp.path, :object)
|
82
|
-
assert_match
|
79
|
+
assert_match(/\x66\x31\xc0/, File.read(tmp.path, mode: 'rb'))
|
83
80
|
end
|
84
81
|
end
|
85
82
|
|
86
|
-
def test_module_properties
|
87
|
-
mod = LLVM::Module.new('mod')
|
88
|
-
|
89
|
-
assert_equal '', mod.triple
|
90
|
-
|
91
|
-
mod.triple = 'x86-linux-gnu'
|
92
|
-
assert_equal 'x86-linux-gnu', mod.triple
|
93
|
-
|
94
|
-
assert_equal '', mod.data_layout
|
95
|
-
|
96
|
-
mod.data_layout = 'e-p:32:32'
|
97
|
-
assert_equal 'e-p:32:32', mod.data_layout
|
98
|
-
end
|
99
|
-
|
100
83
|
def test_data_layout
|
101
84
|
layout_be = LLVM::TargetDataLayout.new('E')
|
102
85
|
assert_equal :big_endian, layout_be.byte_order
|
@@ -104,7 +87,7 @@ class TargetTestCase < Minitest::Test
|
|
104
87
|
desc = "e-p:32:32:32-S0-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f16:16:16-f32:32:32-f64:64:64-f128:128:128-v64:64:64-v128:128:128-a0:0:64"
|
105
88
|
layout = LLVM::TargetDataLayout.new(desc)
|
106
89
|
|
107
|
-
assert_equal
|
90
|
+
assert_equal desc, layout.to_s
|
108
91
|
assert_equal :little_endian, layout.byte_order
|
109
92
|
assert_equal 4, layout.pointer_size
|
110
93
|
assert_equal 4, layout.pointer_size(0)
|
data/test/test_helper.rb
CHANGED
@@ -17,6 +17,9 @@ rescue LoadError
|
|
17
17
|
end
|
18
18
|
|
19
19
|
require "minitest/autorun"
|
20
|
+
require 'minitest/reporters'
|
21
|
+
|
22
|
+
Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new
|
20
23
|
|
21
24
|
require "llvm/core"
|
22
25
|
require "llvm/execution_engine"
|
@@ -46,7 +49,7 @@ def define_function(host_module, function_name, argument_types, return_type)
|
|
46
49
|
end
|
47
50
|
|
48
51
|
def run_function_on_module(host_module, function_name, *argument_values)
|
49
|
-
LLVM::
|
52
|
+
LLVM::MCJITCompiler.new(host_module).
|
50
53
|
run_function(host_module.functions[function_name], *argument_values)
|
51
54
|
end
|
52
55
|
|
metadata
CHANGED
@@ -1,71 +1,91 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-llvm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 10.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Voorhis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-12-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: ffi
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.13.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 1.13.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: '12'
|
34
|
+
- - "<"
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '14'
|
34
37
|
type: :runtime
|
35
38
|
prerelease: false
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '12'
|
44
|
+
- - "<"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '14'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: ffi_gen
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
37
50
|
requirements:
|
38
51
|
- - "~>"
|
39
52
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.
|
53
|
+
version: 1.2.0
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 1.2.0
|
41
61
|
- !ruby/object:Gem::Dependency
|
42
62
|
name: minitest
|
43
63
|
requirement: !ruby/object:Gem::Requirement
|
44
64
|
requirements:
|
45
65
|
- - "~>"
|
46
66
|
- !ruby/object:Gem::Version
|
47
|
-
version: 5.
|
67
|
+
version: 5.14.1
|
48
68
|
type: :development
|
49
69
|
prerelease: false
|
50
70
|
version_requirements: !ruby/object:Gem::Requirement
|
51
71
|
requirements:
|
52
72
|
- - "~>"
|
53
73
|
- !ruby/object:Gem::Version
|
54
|
-
version: 5.
|
74
|
+
version: 5.14.1
|
55
75
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
76
|
+
name: minitest-reporters
|
57
77
|
requirement: !ruby/object:Gem::Requirement
|
58
78
|
requirements:
|
59
79
|
- - "~>"
|
60
80
|
- !ruby/object:Gem::Version
|
61
|
-
version: 1.
|
81
|
+
version: 1.4.2
|
62
82
|
type: :development
|
63
83
|
prerelease: false
|
64
84
|
version_requirements: !ruby/object:Gem::Requirement
|
65
85
|
requirements:
|
66
86
|
- - "~>"
|
67
87
|
- !ruby/object:Gem::Version
|
68
|
-
version: 1.
|
88
|
+
version: 1.4.2
|
69
89
|
- !ruby/object:Gem::Dependency
|
70
90
|
name: simplecov
|
71
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,14 +106,14 @@ dependencies:
|
|
86
106
|
requirements:
|
87
107
|
- - "~>"
|
88
108
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.8
|
109
|
+
version: 0.9.8
|
90
110
|
type: :development
|
91
111
|
prerelease: false
|
92
112
|
version_requirements: !ruby/object:Gem::Requirement
|
93
113
|
requirements:
|
94
114
|
- - "~>"
|
95
115
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.8
|
116
|
+
version: 0.9.8
|
97
117
|
description: Ruby-LLVM is a Ruby language binding to the LLVM compiler infrastructure
|
98
118
|
library.
|
99
119
|
email: jvoorhis@gmail.com
|
@@ -183,37 +203,35 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
183
203
|
- !ruby/object:Gem::Version
|
184
204
|
version: '0'
|
185
205
|
requirements: []
|
186
|
-
|
187
|
-
rubygems_version: 2.4.1
|
206
|
+
rubygems_version: 3.1.2
|
188
207
|
signing_key:
|
189
208
|
specification_version: 4
|
190
209
|
summary: LLVM bindings for Ruby
|
191
210
|
test_files:
|
211
|
+
- test/double_test.rb
|
192
212
|
- test/type_test.rb
|
213
|
+
- test/basic_block_test.rb
|
214
|
+
- test/struct_test.rb
|
215
|
+
- test/array_test.rb
|
216
|
+
- test/vector_test.rb
|
217
|
+
- test/instruction_test.rb
|
193
218
|
- test/ipo_test.rb
|
219
|
+
- test/branch_test.rb
|
194
220
|
- test/binary_operations_test.rb
|
195
|
-
- test/module_test.rb
|
196
|
-
- test/basic_block_test.rb
|
197
|
-
- test/test_helper.rb
|
198
|
-
- test/phi_test.rb
|
199
221
|
- test/bitcode_test.rb
|
200
|
-
- test/double_test.rb
|
201
|
-
- test/instruction_test.rb
|
202
|
-
- test/equality_test.rb
|
203
222
|
- test/pass_manager_builder_test.rb
|
204
|
-
- test/
|
205
|
-
- test/linker_test.rb
|
206
|
-
- test/comparisons_test.rb
|
207
|
-
- test/select_test.rb
|
223
|
+
- test/equality_test.rb
|
208
224
|
- test/function_test.rb
|
209
|
-
- test/memory_access_test.rb
|
210
|
-
- test/struct_test.rb
|
211
225
|
- test/parameter_collection_test.rb
|
212
|
-
- test/
|
213
|
-
- test/
|
214
|
-
- test/
|
226
|
+
- test/memory_access_test.rb
|
227
|
+
- test/select_test.rb
|
228
|
+
- test/module_test.rb
|
229
|
+
- test/test_helper.rb
|
230
|
+
- test/comparisons_test.rb
|
215
231
|
- test/target_test.rb
|
216
|
-
- test/
|
217
|
-
- test/branch_test.rb
|
232
|
+
- test/call_test.rb
|
218
233
|
- test/conversions_test.rb
|
219
|
-
|
234
|
+
- test/linker_test.rb
|
235
|
+
- test/generic_value_test.rb
|
236
|
+
- test/phi_test.rb
|
237
|
+
- test/mcjit_test.rb
|