ruby-llvm 3.4.0 → 11.0.1
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 +20 -8
- data/ext/ruby-llvm-support/support.cpp +0 -20
- data/lib/llvm.rb +0 -6
- data/lib/llvm/analysis_ffi.rb +30 -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 +92 -70
- 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 +155 -28
- data/lib/llvm/core_ffi.rb +4038 -3716
- data/lib/llvm/execution_engine.rb +176 -8
- data/lib/llvm/execution_engine_ffi.rb +245 -272
- data/lib/llvm/linker.rb +2 -19
- data/lib/llvm/linker_ffi.rb +24 -25
- data/lib/llvm/support.rb +4 -12
- data/lib/llvm/target.rb +11 -17
- data/lib/llvm/target_ffi.rb +336 -362
- data/lib/llvm/transforms/builder.rb +8 -3
- data/lib/llvm/transforms/builder_ffi.rb +57 -58
- data/lib/llvm/transforms/ipo.rb +1 -1
- data/lib/llvm/transforms/ipo_ffi.rb +60 -61
- data/lib/llvm/transforms/scalar_ffi.rb +208 -136
- 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 +100 -0
- data/test/module_test.rb +31 -1
- data/test/pass_manager_builder_test.rb +23 -3
- data/test/target_test.rb +7 -24
- data/test/test_helper.rb +4 -1
- metadata +117 -94
@@ -83,14 +83,19 @@ module LLVM
|
|
83
83
|
|
84
84
|
# Populate an LTO pass manager.
|
85
85
|
# @param [PassManager] pass_manager
|
86
|
-
def build_with_lto(pass_manager, internalize=false, run_inliner=false)
|
86
|
+
def build_with_lto(pass_manager, internalize = false, run_inliner = false)
|
87
87
|
if pass_manager.is_a?(FunctionPassManager)
|
88
88
|
raise ArgumentError, "FunctionPassManager does not support LTO"
|
89
89
|
end
|
90
90
|
|
91
|
-
|
91
|
+
if internalize.kind_of?(Integer) || run_inliner.kind_of?(Integer)
|
92
|
+
warn 'Warning: Passing Integer value to LLVM::PassManagerBuilder#build_with_lto is deprecated.'
|
93
|
+
internalize = !internalize.zero? if internalize.kind_of?(Integer)
|
94
|
+
run_inliner = !run_inliner.zero? if run_inliner.kind_of?(Integer)
|
95
|
+
end
|
96
|
+
|
92
97
|
C.pass_manager_builder_populate_lto_pass_manager(self,
|
93
|
-
pass_manager, internalize, run_inliner)
|
98
|
+
pass_manager, flag(internalize), flag(run_inliner))
|
94
99
|
end
|
95
100
|
|
96
101
|
private
|
@@ -4,115 +4,114 @@ require 'ffi'
|
|
4
4
|
|
5
5
|
module LLVM::C
|
6
6
|
extend FFI::Library
|
7
|
-
ffi_lib
|
8
|
-
|
7
|
+
ffi_lib ["libLLVM-11.so.1", "libLLVM.so.11", "LLVM-11"]
|
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
|
-
|
14
|
+
|
15
15
|
# (Not documented)
|
16
16
|
class OpaquePassManagerBuilder < FFI::Struct
|
17
17
|
layout :dummy, :char
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
# See llvm::PassManagerBuilder.
|
21
|
-
#
|
21
|
+
#
|
22
22
|
# @method pass_manager_builder_create()
|
23
|
-
# @return [OpaquePassManagerBuilder]
|
23
|
+
# @return [OpaquePassManagerBuilder]
|
24
24
|
# @scope class
|
25
25
|
attach_function :pass_manager_builder_create, :LLVMPassManagerBuilderCreate, [], OpaquePassManagerBuilder
|
26
|
-
|
26
|
+
|
27
27
|
# (Not documented)
|
28
|
-
#
|
28
|
+
#
|
29
29
|
# @method pass_manager_builder_dispose(pmb)
|
30
|
-
# @param [OpaquePassManagerBuilder] pmb
|
31
|
-
# @return [nil]
|
30
|
+
# @param [OpaquePassManagerBuilder] pmb
|
31
|
+
# @return [nil]
|
32
32
|
# @scope class
|
33
33
|
attach_function :pass_manager_builder_dispose, :LLVMPassManagerBuilderDispose, [OpaquePassManagerBuilder], :void
|
34
|
-
|
34
|
+
|
35
35
|
# See llvm::PassManagerBuilder::OptLevel.
|
36
|
-
#
|
36
|
+
#
|
37
37
|
# @method pass_manager_builder_set_opt_level(pmb, opt_level)
|
38
|
-
# @param [OpaquePassManagerBuilder] pmb
|
39
|
-
# @param [Integer] opt_level
|
40
|
-
# @return [nil]
|
38
|
+
# @param [OpaquePassManagerBuilder] pmb
|
39
|
+
# @param [Integer] opt_level
|
40
|
+
# @return [nil]
|
41
41
|
# @scope class
|
42
42
|
attach_function :pass_manager_builder_set_opt_level, :LLVMPassManagerBuilderSetOptLevel, [OpaquePassManagerBuilder, :uint], :void
|
43
|
-
|
43
|
+
|
44
44
|
# See llvm::PassManagerBuilder::SizeLevel.
|
45
|
-
#
|
45
|
+
#
|
46
46
|
# @method pass_manager_builder_set_size_level(pmb, size_level)
|
47
|
-
# @param [OpaquePassManagerBuilder] pmb
|
48
|
-
# @param [Integer] size_level
|
49
|
-
# @return [nil]
|
47
|
+
# @param [OpaquePassManagerBuilder] pmb
|
48
|
+
# @param [Integer] size_level
|
49
|
+
# @return [nil]
|
50
50
|
# @scope class
|
51
51
|
attach_function :pass_manager_builder_set_size_level, :LLVMPassManagerBuilderSetSizeLevel, [OpaquePassManagerBuilder, :uint], :void
|
52
|
-
|
52
|
+
|
53
53
|
# See llvm::PassManagerBuilder::DisableUnitAtATime.
|
54
|
-
#
|
54
|
+
#
|
55
55
|
# @method pass_manager_builder_set_disable_unit_at_a_time(pmb, value)
|
56
|
-
# @param [OpaquePassManagerBuilder] pmb
|
57
|
-
# @param [Integer] value
|
58
|
-
# @return [nil]
|
56
|
+
# @param [OpaquePassManagerBuilder] pmb
|
57
|
+
# @param [Integer] value
|
58
|
+
# @return [nil]
|
59
59
|
# @scope class
|
60
60
|
attach_function :pass_manager_builder_set_disable_unit_at_a_time, :LLVMPassManagerBuilderSetDisableUnitAtATime, [OpaquePassManagerBuilder, :int], :void
|
61
|
-
|
61
|
+
|
62
62
|
# See llvm::PassManagerBuilder::DisableUnrollLoops.
|
63
|
-
#
|
63
|
+
#
|
64
64
|
# @method pass_manager_builder_set_disable_unroll_loops(pmb, value)
|
65
|
-
# @param [OpaquePassManagerBuilder] pmb
|
66
|
-
# @param [Integer] value
|
67
|
-
# @return [nil]
|
65
|
+
# @param [OpaquePassManagerBuilder] pmb
|
66
|
+
# @param [Integer] value
|
67
|
+
# @return [nil]
|
68
68
|
# @scope class
|
69
69
|
attach_function :pass_manager_builder_set_disable_unroll_loops, :LLVMPassManagerBuilderSetDisableUnrollLoops, [OpaquePassManagerBuilder, :int], :void
|
70
|
-
|
70
|
+
|
71
71
|
# See llvm::PassManagerBuilder::DisableSimplifyLibCalls
|
72
|
-
#
|
72
|
+
#
|
73
73
|
# @method pass_manager_builder_set_disable_simplify_lib_calls(pmb, value)
|
74
|
-
# @param [OpaquePassManagerBuilder] pmb
|
75
|
-
# @param [Integer] value
|
76
|
-
# @return [nil]
|
74
|
+
# @param [OpaquePassManagerBuilder] pmb
|
75
|
+
# @param [Integer] value
|
76
|
+
# @return [nil]
|
77
77
|
# @scope class
|
78
78
|
attach_function :pass_manager_builder_set_disable_simplify_lib_calls, :LLVMPassManagerBuilderSetDisableSimplifyLibCalls, [OpaquePassManagerBuilder, :int], :void
|
79
|
-
|
79
|
+
|
80
80
|
# See llvm::PassManagerBuilder::Inliner.
|
81
|
-
#
|
81
|
+
#
|
82
82
|
# @method pass_manager_builder_use_inliner_with_threshold(pmb, threshold)
|
83
|
-
# @param [OpaquePassManagerBuilder] pmb
|
84
|
-
# @param [Integer] threshold
|
85
|
-
# @return [nil]
|
83
|
+
# @param [OpaquePassManagerBuilder] pmb
|
84
|
+
# @param [Integer] threshold
|
85
|
+
# @return [nil]
|
86
86
|
# @scope class
|
87
87
|
attach_function :pass_manager_builder_use_inliner_with_threshold, :LLVMPassManagerBuilderUseInlinerWithThreshold, [OpaquePassManagerBuilder, :uint], :void
|
88
|
-
|
88
|
+
|
89
89
|
# See llvm::PassManagerBuilder::populateFunctionPassManager.
|
90
|
-
#
|
90
|
+
#
|
91
91
|
# @method pass_manager_builder_populate_function_pass_manager(pmb, pm)
|
92
|
-
# @param [OpaquePassManagerBuilder] pmb
|
93
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
94
|
-
# @return [nil]
|
92
|
+
# @param [OpaquePassManagerBuilder] pmb
|
93
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
94
|
+
# @return [nil]
|
95
95
|
# @scope class
|
96
96
|
attach_function :pass_manager_builder_populate_function_pass_manager, :LLVMPassManagerBuilderPopulateFunctionPassManager, [OpaquePassManagerBuilder, :pointer], :void
|
97
|
-
|
97
|
+
|
98
98
|
# See llvm::PassManagerBuilder::populateModulePassManager.
|
99
|
-
#
|
99
|
+
#
|
100
100
|
# @method pass_manager_builder_populate_module_pass_manager(pmb, pm)
|
101
|
-
# @param [OpaquePassManagerBuilder] pmb
|
102
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
103
|
-
# @return [nil]
|
101
|
+
# @param [OpaquePassManagerBuilder] pmb
|
102
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
103
|
+
# @return [nil]
|
104
104
|
# @scope class
|
105
105
|
attach_function :pass_manager_builder_populate_module_pass_manager, :LLVMPassManagerBuilderPopulateModulePassManager, [OpaquePassManagerBuilder, :pointer], :void
|
106
|
-
|
106
|
+
|
107
107
|
# See llvm::PassManagerBuilder::populateLTOPassManager.
|
108
|
-
#
|
108
|
+
#
|
109
109
|
# @method pass_manager_builder_populate_lto_pass_manager(pmb, pm, internalize, run_inliner)
|
110
|
-
# @param [OpaquePassManagerBuilder] pmb
|
111
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
112
|
-
# @param [Integer] internalize
|
113
|
-
# @param [Integer] run_inliner
|
114
|
-
# @return [nil]
|
110
|
+
# @param [OpaquePassManagerBuilder] pmb
|
111
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
112
|
+
# @param [Integer] internalize
|
113
|
+
# @param [Integer] run_inliner
|
114
|
+
# @return [nil]
|
115
115
|
# @scope class
|
116
116
|
attach_function :pass_manager_builder_populate_lto_pass_manager, :LLVMPassManagerBuilderPopulateLTOPassManager, [OpaquePassManagerBuilder, :pointer, :int, :int], :void
|
117
|
-
|
118
117
|
end
|
data/lib/llvm/transforms/ipo.rb
CHANGED
@@ -4,125 +4,124 @@ require 'ffi'
|
|
4
4
|
|
5
5
|
module LLVM::C
|
6
6
|
extend FFI::Library
|
7
|
-
ffi_lib
|
8
|
-
|
7
|
+
ffi_lib ["libLLVM-11.so.1", "libLLVM.so.11", "LLVM-11"]
|
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
|
+
# See llvm::createArgumentPromotionPass function.
|
16
|
+
#
|
17
17
|
# @method add_argument_promotion_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_argument_promotion_pass, :LLVMAddArgumentPromotionPass, [:pointer], :void
|
22
|
-
|
22
|
+
|
23
23
|
# See llvm::createConstantMergePass function.
|
24
|
-
#
|
24
|
+
#
|
25
25
|
# @method add_constant_merge_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_constant_merge_pass, :LLVMAddConstantMergePass, [:pointer], :void
|
30
|
-
|
30
|
+
|
31
31
|
# See llvm::createDeadArgEliminationPass function.
|
32
|
-
#
|
32
|
+
#
|
33
33
|
# @method add_dead_arg_elimination_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_dead_arg_elimination_pass, :LLVMAddDeadArgEliminationPass, [:pointer], :void
|
38
|
-
|
38
|
+
|
39
39
|
# See llvm::createFunctionAttrsPass function.
|
40
|
-
#
|
40
|
+
#
|
41
41
|
# @method add_function_attrs_pass(pm)
|
42
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
43
|
-
# @return [nil]
|
42
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
43
|
+
# @return [nil]
|
44
44
|
# @scope class
|
45
45
|
attach_function :add_function_attrs_pass, :LLVMAddFunctionAttrsPass, [:pointer], :void
|
46
|
-
|
46
|
+
|
47
47
|
# See llvm::createFunctionInliningPass function.
|
48
|
-
#
|
48
|
+
#
|
49
49
|
# @method add_function_inlining_pass(pm)
|
50
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
51
|
-
# @return [nil]
|
50
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
51
|
+
# @return [nil]
|
52
52
|
# @scope class
|
53
53
|
attach_function :add_function_inlining_pass, :LLVMAddFunctionInliningPass, [:pointer], :void
|
54
|
-
|
54
|
+
|
55
55
|
# See llvm::createAlwaysInlinerPass function.
|
56
|
-
#
|
56
|
+
#
|
57
57
|
# @method add_always_inliner_pass(pm)
|
58
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
59
|
-
# @return [nil]
|
58
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
59
|
+
# @return [nil]
|
60
60
|
# @scope class
|
61
61
|
attach_function :add_always_inliner_pass, :LLVMAddAlwaysInlinerPass, [:pointer], :void
|
62
|
-
|
62
|
+
|
63
63
|
# See llvm::createGlobalDCEPass function.
|
64
|
-
#
|
64
|
+
#
|
65
65
|
# @method add_global_dce_pass(pm)
|
66
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
67
|
-
# @return [nil]
|
66
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
67
|
+
# @return [nil]
|
68
68
|
# @scope class
|
69
69
|
attach_function :add_global_dce_pass, :LLVMAddGlobalDCEPass, [:pointer], :void
|
70
|
-
|
70
|
+
|
71
71
|
# See llvm::createGlobalOptimizerPass function.
|
72
|
-
#
|
72
|
+
#
|
73
73
|
# @method add_global_optimizer_pass(pm)
|
74
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
75
|
-
# @return [nil]
|
74
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
75
|
+
# @return [nil]
|
76
76
|
# @scope class
|
77
77
|
attach_function :add_global_optimizer_pass, :LLVMAddGlobalOptimizerPass, [:pointer], :void
|
78
|
-
|
78
|
+
|
79
79
|
# See llvm::createIPConstantPropagationPass function.
|
80
|
-
#
|
80
|
+
#
|
81
81
|
# @method add_ip_constant_propagation_pass(pm)
|
82
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
83
|
-
# @return [nil]
|
82
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
83
|
+
# @return [nil]
|
84
84
|
# @scope class
|
85
85
|
attach_function :add_ip_constant_propagation_pass, :LLVMAddIPConstantPropagationPass, [:pointer], :void
|
86
|
-
|
86
|
+
|
87
87
|
# See llvm::createPruneEHPass function.
|
88
|
-
#
|
88
|
+
#
|
89
89
|
# @method add_prune_eh_pass(pm)
|
90
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
91
|
-
# @return [nil]
|
90
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
91
|
+
# @return [nil]
|
92
92
|
# @scope class
|
93
93
|
attach_function :add_prune_eh_pass, :LLVMAddPruneEHPass, [:pointer], :void
|
94
|
-
|
94
|
+
|
95
95
|
# See llvm::createIPSCCPPass function.
|
96
|
-
#
|
96
|
+
#
|
97
97
|
# @method add_ipsccp_pass(pm)
|
98
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
99
|
-
# @return [nil]
|
98
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
99
|
+
# @return [nil]
|
100
100
|
# @scope class
|
101
101
|
attach_function :add_ipsccp_pass, :LLVMAddIPSCCPPass, [:pointer], :void
|
102
|
-
|
102
|
+
|
103
103
|
# See llvm::createInternalizePass function.
|
104
|
-
#
|
104
|
+
#
|
105
105
|
# @method add_internalize_pass(pass_manager_ref, all_but_main)
|
106
|
-
# @param [FFI::Pointer(PassManagerRef)] pass_manager_ref
|
107
|
-
# @param [Integer] all_but_main
|
108
|
-
# @return [nil]
|
106
|
+
# @param [FFI::Pointer(PassManagerRef)] pass_manager_ref
|
107
|
+
# @param [Integer] all_but_main
|
108
|
+
# @return [nil]
|
109
109
|
# @scope class
|
110
110
|
attach_function :add_internalize_pass, :LLVMAddInternalizePass, [:pointer, :uint], :void
|
111
|
-
|
111
|
+
|
112
112
|
# See llvm::createStripDeadPrototypesPass function.
|
113
|
-
#
|
113
|
+
#
|
114
114
|
# @method add_strip_dead_prototypes_pass(pm)
|
115
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
116
|
-
# @return [nil]
|
115
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
116
|
+
# @return [nil]
|
117
117
|
# @scope class
|
118
118
|
attach_function :add_strip_dead_prototypes_pass, :LLVMAddStripDeadPrototypesPass, [:pointer], :void
|
119
|
-
|
119
|
+
|
120
120
|
# See llvm::createStripSymbolsPass function.
|
121
|
-
#
|
121
|
+
#
|
122
122
|
# @method add_strip_symbols_pass(pm)
|
123
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
124
|
-
# @return [nil]
|
123
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
124
|
+
# @return [nil]
|
125
125
|
# @scope class
|
126
126
|
attach_function :add_strip_symbols_pass, :LLVMAddStripSymbolsPass, [:pointer], :void
|
127
|
-
|
128
127
|
end
|
@@ -4,269 +4,341 @@ require 'ffi'
|
|
4
4
|
|
5
5
|
module LLVM::C
|
6
6
|
extend FFI::Library
|
7
|
-
ffi_lib
|
8
|
-
|
7
|
+
ffi_lib ["libLLVM-11.so.1", "libLLVM.so.11", "LLVM-11"]
|
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
|
+
# See llvm::createAggressiveDCEPass function.
|
16
|
+
#
|
17
17
|
# @method add_aggressive_dce_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_aggressive_dce_pass, :LLVMAddAggressiveDCEPass, [:pointer], :void
|
22
|
-
|
22
|
+
|
23
|
+
# See llvm::createBitTrackingDCEPass function.
|
24
|
+
#
|
25
|
+
# @method add_bit_tracking_dce_pass(pm)
|
26
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
27
|
+
# @return [nil]
|
28
|
+
# @scope class
|
29
|
+
attach_function :add_bit_tracking_dce_pass, :LLVMAddBitTrackingDCEPass, [:pointer], :void
|
30
|
+
|
31
|
+
# See llvm::createAlignmentFromAssumptionsPass function.
|
32
|
+
#
|
33
|
+
# @method add_alignment_from_assumptions_pass(pm)
|
34
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
35
|
+
# @return [nil]
|
36
|
+
# @scope class
|
37
|
+
attach_function :add_alignment_from_assumptions_pass, :LLVMAddAlignmentFromAssumptionsPass, [:pointer], :void
|
38
|
+
|
23
39
|
# See llvm::createCFGSimplificationPass function.
|
24
|
-
#
|
40
|
+
#
|
25
41
|
# @method add_cfg_simplification_pass(pm)
|
26
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
27
|
-
# @return [nil]
|
42
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
43
|
+
# @return [nil]
|
28
44
|
# @scope class
|
29
45
|
attach_function :add_cfg_simplification_pass, :LLVMAddCFGSimplificationPass, [:pointer], :void
|
30
|
-
|
46
|
+
|
47
|
+
# See llvm::createLateCFGSimplificationPass function.
|
48
|
+
#
|
49
|
+
# @method add_late_cfg_simplification_pass(pm)
|
50
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
51
|
+
# @return [nil]
|
52
|
+
# @scope class
|
53
|
+
attach_function :add_late_cfg_simplification_pass, :LLVMAddLateCFGSimplificationPass, [:pointer], :void
|
54
|
+
|
31
55
|
# See llvm::createDeadStoreEliminationPass function.
|
32
|
-
#
|
56
|
+
#
|
33
57
|
# @method add_dead_store_elimination_pass(pm)
|
34
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
35
|
-
# @return [nil]
|
58
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
59
|
+
# @return [nil]
|
36
60
|
# @scope class
|
37
61
|
attach_function :add_dead_store_elimination_pass, :LLVMAddDeadStoreEliminationPass, [:pointer], :void
|
38
|
-
|
62
|
+
|
63
|
+
# See llvm::createScalarizerPass function.
|
64
|
+
#
|
65
|
+
# @method add_scalarizer_pass(pm)
|
66
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
67
|
+
# @return [nil]
|
68
|
+
# @scope class
|
69
|
+
attach_function :add_scalarizer_pass, :LLVMAddScalarizerPass, [:pointer], :void
|
70
|
+
|
71
|
+
# See llvm::createMergedLoadStoreMotionPass function.
|
72
|
+
#
|
73
|
+
# @method add_merged_load_store_motion_pass(pm)
|
74
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
75
|
+
# @return [nil]
|
76
|
+
# @scope class
|
77
|
+
attach_function :add_merged_load_store_motion_pass, :LLVMAddMergedLoadStoreMotionPass, [:pointer], :void
|
78
|
+
|
39
79
|
# See llvm::createGVNPass function.
|
40
|
-
#
|
80
|
+
#
|
41
81
|
# @method add_gvn_pass(pm)
|
42
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
43
|
-
# @return [nil]
|
82
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
83
|
+
# @return [nil]
|
44
84
|
# @scope class
|
45
85
|
attach_function :add_gvn_pass, :LLVMAddGVNPass, [:pointer], :void
|
46
|
-
|
86
|
+
|
87
|
+
# See llvm::createGVNPass function.
|
88
|
+
#
|
89
|
+
# @method add_new_gvn_pass(pm)
|
90
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
91
|
+
# @return [nil]
|
92
|
+
# @scope class
|
93
|
+
attach_function :add_new_gvn_pass, :LLVMAddNewGVNPass, [:pointer], :void
|
94
|
+
|
47
95
|
# See llvm::createIndVarSimplifyPass function.
|
48
|
-
#
|
96
|
+
#
|
49
97
|
# @method add_ind_var_simplify_pass(pm)
|
50
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
51
|
-
# @return [nil]
|
98
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
99
|
+
# @return [nil]
|
52
100
|
# @scope class
|
53
101
|
attach_function :add_ind_var_simplify_pass, :LLVMAddIndVarSimplifyPass, [:pointer], :void
|
54
|
-
|
102
|
+
|
55
103
|
# See llvm::createInstructionCombiningPass function.
|
56
|
-
#
|
104
|
+
#
|
57
105
|
# @method add_instruction_combining_pass(pm)
|
58
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
59
|
-
# @return [nil]
|
106
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
107
|
+
# @return [nil]
|
60
108
|
# @scope class
|
61
109
|
attach_function :add_instruction_combining_pass, :LLVMAddInstructionCombiningPass, [:pointer], :void
|
62
|
-
|
110
|
+
|
63
111
|
# See llvm::createJumpThreadingPass function.
|
64
|
-
#
|
112
|
+
#
|
65
113
|
# @method add_jump_threading_pass(pm)
|
66
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
67
|
-
# @return [nil]
|
114
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
115
|
+
# @return [nil]
|
68
116
|
# @scope class
|
69
117
|
attach_function :add_jump_threading_pass, :LLVMAddJumpThreadingPass, [:pointer], :void
|
70
|
-
|
118
|
+
|
71
119
|
# See llvm::createLICMPass function.
|
72
|
-
#
|
120
|
+
#
|
73
121
|
# @method add_licm_pass(pm)
|
74
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
75
|
-
# @return [nil]
|
122
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
123
|
+
# @return [nil]
|
76
124
|
# @scope class
|
77
125
|
attach_function :add_licm_pass, :LLVMAddLICMPass, [:pointer], :void
|
78
|
-
|
126
|
+
|
79
127
|
# See llvm::createLoopDeletionPass function.
|
80
|
-
#
|
128
|
+
#
|
81
129
|
# @method add_loop_deletion_pass(pm)
|
82
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
83
|
-
# @return [nil]
|
130
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
131
|
+
# @return [nil]
|
84
132
|
# @scope class
|
85
133
|
attach_function :add_loop_deletion_pass, :LLVMAddLoopDeletionPass, [:pointer], :void
|
86
|
-
|
134
|
+
|
87
135
|
# See llvm::createLoopIdiomPass function
|
88
|
-
#
|
136
|
+
#
|
89
137
|
# @method add_loop_idiom_pass(pm)
|
90
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
91
|
-
# @return [nil]
|
138
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
139
|
+
# @return [nil]
|
92
140
|
# @scope class
|
93
141
|
attach_function :add_loop_idiom_pass, :LLVMAddLoopIdiomPass, [:pointer], :void
|
94
|
-
|
142
|
+
|
95
143
|
# See llvm::createLoopRotatePass function.
|
96
|
-
#
|
144
|
+
#
|
97
145
|
# @method add_loop_rotate_pass(pm)
|
98
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
99
|
-
# @return [nil]
|
146
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
147
|
+
# @return [nil]
|
100
148
|
# @scope class
|
101
149
|
attach_function :add_loop_rotate_pass, :LLVMAddLoopRotatePass, [:pointer], :void
|
102
|
-
|
150
|
+
|
103
151
|
# See llvm::createLoopRerollPass function.
|
104
|
-
#
|
152
|
+
#
|
105
153
|
# @method add_loop_reroll_pass(pm)
|
106
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
107
|
-
# @return [nil]
|
154
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
155
|
+
# @return [nil]
|
108
156
|
# @scope class
|
109
157
|
attach_function :add_loop_reroll_pass, :LLVMAddLoopRerollPass, [:pointer], :void
|
110
|
-
|
158
|
+
|
111
159
|
# See llvm::createLoopUnrollPass function.
|
112
|
-
#
|
160
|
+
#
|
113
161
|
# @method add_loop_unroll_pass(pm)
|
114
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
115
|
-
# @return [nil]
|
162
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
163
|
+
# @return [nil]
|
116
164
|
# @scope class
|
117
165
|
attach_function :add_loop_unroll_pass, :LLVMAddLoopUnrollPass, [:pointer], :void
|
118
|
-
|
166
|
+
|
119
167
|
# See llvm::createLoopUnswitchPass function.
|
120
|
-
#
|
168
|
+
#
|
121
169
|
# @method add_loop_unswitch_pass(pm)
|
122
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
123
|
-
# @return [nil]
|
170
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
171
|
+
# @return [nil]
|
124
172
|
# @scope class
|
125
173
|
attach_function :add_loop_unswitch_pass, :LLVMAddLoopUnswitchPass, [:pointer], :void
|
126
|
-
|
174
|
+
|
127
175
|
# See llvm::createMemCpyOptPass function.
|
128
|
-
#
|
176
|
+
#
|
129
177
|
# @method add_mem_cpy_opt_pass(pm)
|
130
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
131
|
-
# @return [nil]
|
178
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
179
|
+
# @return [nil]
|
132
180
|
# @scope class
|
133
181
|
attach_function :add_mem_cpy_opt_pass, :LLVMAddMemCpyOptPass, [:pointer], :void
|
134
|
-
|
182
|
+
|
135
183
|
# See llvm::createPartiallyInlineLibCallsPass function.
|
136
|
-
#
|
184
|
+
#
|
137
185
|
# @method add_partially_inline_lib_calls_pass(pm)
|
138
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
139
|
-
# @return [nil]
|
186
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
187
|
+
# @return [nil]
|
140
188
|
# @scope class
|
141
189
|
attach_function :add_partially_inline_lib_calls_pass, :LLVMAddPartiallyInlineLibCallsPass, [:pointer], :void
|
142
|
-
|
190
|
+
|
191
|
+
# See llvm::createLowerSwitchPass function.
|
192
|
+
#
|
193
|
+
# @method add_lower_switch_pass(pm)
|
194
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
195
|
+
# @return [nil]
|
196
|
+
# @scope class
|
197
|
+
attach_function :add_lower_switch_pass, :LLVMAddLowerSwitchPass, [:pointer], :void
|
198
|
+
|
143
199
|
# See llvm::createPromoteMemoryToRegisterPass function.
|
144
|
-
#
|
200
|
+
#
|
145
201
|
# @method add_promote_memory_to_register_pass(pm)
|
146
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
147
|
-
# @return [nil]
|
202
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
203
|
+
# @return [nil]
|
148
204
|
# @scope class
|
149
205
|
attach_function :add_promote_memory_to_register_pass, :LLVMAddPromoteMemoryToRegisterPass, [:pointer], :void
|
150
|
-
|
206
|
+
|
151
207
|
# See llvm::createReassociatePass function.
|
152
|
-
#
|
208
|
+
#
|
153
209
|
# @method add_reassociate_pass(pm)
|
154
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
155
|
-
# @return [nil]
|
210
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
211
|
+
# @return [nil]
|
156
212
|
# @scope class
|
157
213
|
attach_function :add_reassociate_pass, :LLVMAddReassociatePass, [:pointer], :void
|
158
|
-
|
214
|
+
|
159
215
|
# See llvm::createSCCPPass function.
|
160
|
-
#
|
216
|
+
#
|
161
217
|
# @method add_sccp_pass(pm)
|
162
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
163
|
-
# @return [nil]
|
218
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
219
|
+
# @return [nil]
|
164
220
|
# @scope class
|
165
221
|
attach_function :add_sccp_pass, :LLVMAddSCCPPass, [:pointer], :void
|
166
|
-
|
167
|
-
# See llvm::
|
168
|
-
#
|
222
|
+
|
223
|
+
# See llvm::createSROAPass function.
|
224
|
+
#
|
169
225
|
# @method add_scalar_repl_aggregates_pass(pm)
|
170
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
171
|
-
# @return [nil]
|
226
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
227
|
+
# @return [nil]
|
172
228
|
# @scope class
|
173
229
|
attach_function :add_scalar_repl_aggregates_pass, :LLVMAddScalarReplAggregatesPass, [:pointer], :void
|
174
|
-
|
175
|
-
# See llvm::
|
176
|
-
#
|
230
|
+
|
231
|
+
# See llvm::createSROAPass function.
|
232
|
+
#
|
177
233
|
# @method add_scalar_repl_aggregates_pass_ssa(pm)
|
178
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
179
|
-
# @return [nil]
|
234
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
235
|
+
# @return [nil]
|
180
236
|
# @scope class
|
181
237
|
attach_function :add_scalar_repl_aggregates_pass_ssa, :LLVMAddScalarReplAggregatesPassSSA, [:pointer], :void
|
182
|
-
|
183
|
-
# See llvm::
|
184
|
-
#
|
238
|
+
|
239
|
+
# See llvm::createSROAPass function.
|
240
|
+
#
|
185
241
|
# @method add_scalar_repl_aggregates_pass_with_threshold(pm, threshold)
|
186
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
187
|
-
# @param [Integer] threshold
|
188
|
-
# @return [nil]
|
242
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
243
|
+
# @param [Integer] threshold
|
244
|
+
# @return [nil]
|
189
245
|
# @scope class
|
190
246
|
attach_function :add_scalar_repl_aggregates_pass_with_threshold, :LLVMAddScalarReplAggregatesPassWithThreshold, [:pointer, :int], :void
|
191
|
-
|
247
|
+
|
192
248
|
# See llvm::createSimplifyLibCallsPass function.
|
193
|
-
#
|
249
|
+
#
|
194
250
|
# @method add_simplify_lib_calls_pass(pm)
|
195
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
196
|
-
# @return [nil]
|
251
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
252
|
+
# @return [nil]
|
197
253
|
# @scope class
|
198
254
|
attach_function :add_simplify_lib_calls_pass, :LLVMAddSimplifyLibCallsPass, [:pointer], :void
|
199
|
-
|
255
|
+
|
200
256
|
# See llvm::createTailCallEliminationPass function.
|
201
|
-
#
|
257
|
+
#
|
202
258
|
# @method add_tail_call_elimination_pass(pm)
|
203
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
204
|
-
# @return [nil]
|
259
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
260
|
+
# @return [nil]
|
205
261
|
# @scope class
|
206
262
|
attach_function :add_tail_call_elimination_pass, :LLVMAddTailCallEliminationPass, [:pointer], :void
|
207
|
-
|
263
|
+
|
208
264
|
# See llvm::createConstantPropagationPass function.
|
209
|
-
#
|
265
|
+
#
|
210
266
|
# @method add_constant_propagation_pass(pm)
|
211
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
212
|
-
# @return [nil]
|
267
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
268
|
+
# @return [nil]
|
213
269
|
# @scope class
|
214
270
|
attach_function :add_constant_propagation_pass, :LLVMAddConstantPropagationPass, [:pointer], :void
|
215
|
-
|
271
|
+
|
216
272
|
# See llvm::demotePromoteMemoryToRegisterPass function.
|
217
|
-
#
|
273
|
+
#
|
218
274
|
# @method add_demote_memory_to_register_pass(pm)
|
219
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
220
|
-
# @return [nil]
|
275
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
276
|
+
# @return [nil]
|
221
277
|
# @scope class
|
222
278
|
attach_function :add_demote_memory_to_register_pass, :LLVMAddDemoteMemoryToRegisterPass, [:pointer], :void
|
223
|
-
|
279
|
+
|
224
280
|
# See llvm::createVerifierPass function.
|
225
|
-
#
|
281
|
+
#
|
226
282
|
# @method add_verifier_pass(pm)
|
227
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
228
|
-
# @return [nil]
|
283
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
284
|
+
# @return [nil]
|
229
285
|
# @scope class
|
230
286
|
attach_function :add_verifier_pass, :LLVMAddVerifierPass, [:pointer], :void
|
231
|
-
|
287
|
+
|
232
288
|
# See llvm::createCorrelatedValuePropagationPass function
|
233
|
-
#
|
289
|
+
#
|
234
290
|
# @method add_correlated_value_propagation_pass(pm)
|
235
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
236
|
-
# @return [nil]
|
291
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
292
|
+
# @return [nil]
|
237
293
|
# @scope class
|
238
294
|
attach_function :add_correlated_value_propagation_pass, :LLVMAddCorrelatedValuePropagationPass, [:pointer], :void
|
239
|
-
|
295
|
+
|
240
296
|
# See llvm::createEarlyCSEPass function
|
241
|
-
#
|
297
|
+
#
|
242
298
|
# @method add_early_cse_pass(pm)
|
243
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
244
|
-
# @return [nil]
|
299
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
300
|
+
# @return [nil]
|
245
301
|
# @scope class
|
246
302
|
attach_function :add_early_cse_pass, :LLVMAddEarlyCSEPass, [:pointer], :void
|
247
|
-
|
303
|
+
|
304
|
+
# See llvm::createEarlyCSEPass function
|
305
|
+
#
|
306
|
+
# @method add_early_cse_mem_ssa_pass(pm)
|
307
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
308
|
+
# @return [nil]
|
309
|
+
# @scope class
|
310
|
+
attach_function :add_early_cse_mem_ssa_pass, :LLVMAddEarlyCSEMemSSAPass, [:pointer], :void
|
311
|
+
|
248
312
|
# See llvm::createLowerExpectIntrinsicPass function
|
249
|
-
#
|
313
|
+
#
|
250
314
|
# @method add_lower_expect_intrinsic_pass(pm)
|
251
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
252
|
-
# @return [nil]
|
315
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
316
|
+
# @return [nil]
|
253
317
|
# @scope class
|
254
318
|
attach_function :add_lower_expect_intrinsic_pass, :LLVMAddLowerExpectIntrinsicPass, [:pointer], :void
|
255
|
-
|
319
|
+
|
256
320
|
# See llvm::createTypeBasedAliasAnalysisPass function
|
257
|
-
#
|
321
|
+
#
|
258
322
|
# @method add_type_based_alias_analysis_pass(pm)
|
259
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
260
|
-
# @return [nil]
|
323
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
324
|
+
# @return [nil]
|
261
325
|
# @scope class
|
262
326
|
attach_function :add_type_based_alias_analysis_pass, :LLVMAddTypeBasedAliasAnalysisPass, [:pointer], :void
|
263
|
-
|
327
|
+
|
328
|
+
# See llvm::createScopedNoAliasAAPass function
|
329
|
+
#
|
330
|
+
# @method add_scoped_no_alias_aa_pass(pm)
|
331
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
332
|
+
# @return [nil]
|
333
|
+
# @scope class
|
334
|
+
attach_function :add_scoped_no_alias_aa_pass, :LLVMAddScopedNoAliasAAPass, [:pointer], :void
|
335
|
+
|
264
336
|
# See llvm::createBasicAliasAnalysisPass function
|
265
|
-
#
|
337
|
+
#
|
266
338
|
# @method add_basic_alias_analysis_pass(pm)
|
267
|
-
# @param [FFI::Pointer(PassManagerRef)] pm
|
268
|
-
# @return [nil]
|
339
|
+
# @param [FFI::Pointer(PassManagerRef)] pm
|
340
|
+
# @return [nil]
|
269
341
|
# @scope class
|
270
342
|
attach_function :add_basic_alias_analysis_pass, :LLVMAddBasicAliasAnalysisPass, [:pointer], :void
|
271
|
-
|
343
|
+
|
272
344
|
end
|