ruby-llvm 16.0.1 → 18.1.3
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 +4 -4
- data/README.md +1 -1
- data/ext/ruby-llvm-support/support.cpp +10 -0
- data/lib/llvm/analysis_ffi.rb +1 -1
- data/lib/llvm/config.rb +5 -5
- data/lib/llvm/core/attribute.rb +41 -6
- data/lib/llvm/core/bitcode_ffi.rb +1 -1
- data/lib/llvm/core/builder.rb +8 -8
- data/lib/llvm/core/module.rb +4 -0
- data/lib/llvm/core/pass_manager.rb +2 -3
- data/lib/llvm/core/type.rb +4 -0
- data/lib/llvm/core/value.rb +110 -25
- data/lib/llvm/core.rb +7 -0
- data/lib/llvm/core_ffi.rb +1 -146
- data/lib/llvm/execution_engine_ffi.rb +1 -1
- data/lib/llvm/linker_ffi.rb +1 -1
- data/lib/llvm/lljit.rb +106 -0
- data/lib/llvm/support.rb +1 -0
- data/lib/llvm/target.rb +1 -1
- data/lib/llvm/target_ffi.rb +1 -1
- data/lib/llvm/transforms/ipo.rb +17 -23
- data/lib/llvm/transforms/pass_builder.rb +712 -0
- data/lib/llvm/transforms/{builder.rb → pass_manager_builder.rb} +10 -29
- data/lib/llvm/transforms/scalar.rb +45 -55
- data/lib/llvm/transforms/utils.rb +3 -7
- data/lib/llvm/transforms/vectorize.rb +3 -5
- data/lib/llvm/version.rb +3 -3
- data/lib/llvm.rb +2 -0
- metadata +5 -7
- data/lib/llvm/transforms/builder_ffi.rb +0 -106
- data/lib/llvm/transforms/ipo_ffi.rb +0 -111
- data/lib/llvm/transforms/scalar_ffi.rb +0 -320
- data/lib/llvm/transforms/vectorize_ffi.rb +0 -38
data/lib/llvm/core_ffi.rb
CHANGED
@@ -4,7 +4,7 @@ require 'ffi'
|
|
4
4
|
|
5
5
|
module LLVM::C
|
6
6
|
extend FFI::Library
|
7
|
-
ffi_lib ["libLLVM-
|
7
|
+
ffi_lib ["libLLVM-18.so.1", "libLLVM.so.18", "LLVM-18"]
|
8
8
|
|
9
9
|
def self.attach_function(name, *_)
|
10
10
|
begin; super; rescue FFI::NotFoundError => e
|
@@ -3049,24 +3049,6 @@ module LLVM::C
|
|
3049
3049
|
# @scope class
|
3050
3050
|
attach_function :const_nuw_mul, :LLVMConstNUWMul, [:pointer, :pointer], :pointer
|
3051
3051
|
|
3052
|
-
# (Not documented)
|
3053
|
-
#
|
3054
|
-
# @method const_and(lhs_constant, rhs_constant)
|
3055
|
-
# @param [FFI::Pointer(ValueRef)] lhs_constant
|
3056
|
-
# @param [FFI::Pointer(ValueRef)] rhs_constant
|
3057
|
-
# @return [FFI::Pointer(ValueRef)]
|
3058
|
-
# @scope class
|
3059
|
-
attach_function :const_and, :LLVMConstAnd, [:pointer, :pointer], :pointer
|
3060
|
-
|
3061
|
-
# (Not documented)
|
3062
|
-
#
|
3063
|
-
# @method const_or(lhs_constant, rhs_constant)
|
3064
|
-
# @param [FFI::Pointer(ValueRef)] lhs_constant
|
3065
|
-
# @param [FFI::Pointer(ValueRef)] rhs_constant
|
3066
|
-
# @return [FFI::Pointer(ValueRef)]
|
3067
|
-
# @scope class
|
3068
|
-
attach_function :const_or, :LLVMConstOr, [:pointer, :pointer], :pointer
|
3069
|
-
|
3070
3052
|
# (Not documented)
|
3071
3053
|
#
|
3072
3054
|
# @method const_xor(lhs_constant, rhs_constant)
|
@@ -3105,24 +3087,6 @@ module LLVM::C
|
|
3105
3087
|
# @scope class
|
3106
3088
|
attach_function :const_shl, :LLVMConstShl, [:pointer, :pointer], :pointer
|
3107
3089
|
|
3108
|
-
# (Not documented)
|
3109
|
-
#
|
3110
|
-
# @method const_l_shr(lhs_constant, rhs_constant)
|
3111
|
-
# @param [FFI::Pointer(ValueRef)] lhs_constant
|
3112
|
-
# @param [FFI::Pointer(ValueRef)] rhs_constant
|
3113
|
-
# @return [FFI::Pointer(ValueRef)]
|
3114
|
-
# @scope class
|
3115
|
-
attach_function :const_l_shr, :LLVMConstLShr, [:pointer, :pointer], :pointer
|
3116
|
-
|
3117
|
-
# (Not documented)
|
3118
|
-
#
|
3119
|
-
# @method const_a_shr(lhs_constant, rhs_constant)
|
3120
|
-
# @param [FFI::Pointer(ValueRef)] lhs_constant
|
3121
|
-
# @param [FFI::Pointer(ValueRef)] rhs_constant
|
3122
|
-
# @return [FFI::Pointer(ValueRef)]
|
3123
|
-
# @scope class
|
3124
|
-
attach_function :const_a_shr, :LLVMConstAShr, [:pointer, :pointer], :pointer
|
3125
|
-
|
3126
3090
|
# (Not documented)
|
3127
3091
|
#
|
3128
3092
|
# @method const_gep(constant_val, constant_indices, num_indices)
|
@@ -3152,78 +3116,6 @@ module LLVM::C
|
|
3152
3116
|
# @scope class
|
3153
3117
|
attach_function :const_trunc, :LLVMConstTrunc, [:pointer, :pointer], :pointer
|
3154
3118
|
|
3155
|
-
# (Not documented)
|
3156
|
-
#
|
3157
|
-
# @method const_s_ext(constant_val, to_type)
|
3158
|
-
# @param [FFI::Pointer(ValueRef)] constant_val
|
3159
|
-
# @param [FFI::Pointer(TypeRef)] to_type
|
3160
|
-
# @return [FFI::Pointer(ValueRef)]
|
3161
|
-
# @scope class
|
3162
|
-
attach_function :const_s_ext, :LLVMConstSExt, [:pointer, :pointer], :pointer
|
3163
|
-
|
3164
|
-
# (Not documented)
|
3165
|
-
#
|
3166
|
-
# @method const_z_ext(constant_val, to_type)
|
3167
|
-
# @param [FFI::Pointer(ValueRef)] constant_val
|
3168
|
-
# @param [FFI::Pointer(TypeRef)] to_type
|
3169
|
-
# @return [FFI::Pointer(ValueRef)]
|
3170
|
-
# @scope class
|
3171
|
-
attach_function :const_z_ext, :LLVMConstZExt, [:pointer, :pointer], :pointer
|
3172
|
-
|
3173
|
-
# (Not documented)
|
3174
|
-
#
|
3175
|
-
# @method const_fp_trunc(constant_val, to_type)
|
3176
|
-
# @param [FFI::Pointer(ValueRef)] constant_val
|
3177
|
-
# @param [FFI::Pointer(TypeRef)] to_type
|
3178
|
-
# @return [FFI::Pointer(ValueRef)]
|
3179
|
-
# @scope class
|
3180
|
-
attach_function :const_fp_trunc, :LLVMConstFPTrunc, [:pointer, :pointer], :pointer
|
3181
|
-
|
3182
|
-
# (Not documented)
|
3183
|
-
#
|
3184
|
-
# @method const_fp_ext(constant_val, to_type)
|
3185
|
-
# @param [FFI::Pointer(ValueRef)] constant_val
|
3186
|
-
# @param [FFI::Pointer(TypeRef)] to_type
|
3187
|
-
# @return [FFI::Pointer(ValueRef)]
|
3188
|
-
# @scope class
|
3189
|
-
attach_function :const_fp_ext, :LLVMConstFPExt, [:pointer, :pointer], :pointer
|
3190
|
-
|
3191
|
-
# (Not documented)
|
3192
|
-
#
|
3193
|
-
# @method const_ui_to_fp(constant_val, to_type)
|
3194
|
-
# @param [FFI::Pointer(ValueRef)] constant_val
|
3195
|
-
# @param [FFI::Pointer(TypeRef)] to_type
|
3196
|
-
# @return [FFI::Pointer(ValueRef)]
|
3197
|
-
# @scope class
|
3198
|
-
attach_function :const_ui_to_fp, :LLVMConstUIToFP, [:pointer, :pointer], :pointer
|
3199
|
-
|
3200
|
-
# (Not documented)
|
3201
|
-
#
|
3202
|
-
# @method const_si_to_fp(constant_val, to_type)
|
3203
|
-
# @param [FFI::Pointer(ValueRef)] constant_val
|
3204
|
-
# @param [FFI::Pointer(TypeRef)] to_type
|
3205
|
-
# @return [FFI::Pointer(ValueRef)]
|
3206
|
-
# @scope class
|
3207
|
-
attach_function :const_si_to_fp, :LLVMConstSIToFP, [:pointer, :pointer], :pointer
|
3208
|
-
|
3209
|
-
# (Not documented)
|
3210
|
-
#
|
3211
|
-
# @method const_fp_to_ui(constant_val, to_type)
|
3212
|
-
# @param [FFI::Pointer(ValueRef)] constant_val
|
3213
|
-
# @param [FFI::Pointer(TypeRef)] to_type
|
3214
|
-
# @return [FFI::Pointer(ValueRef)]
|
3215
|
-
# @scope class
|
3216
|
-
attach_function :const_fp_to_ui, :LLVMConstFPToUI, [:pointer, :pointer], :pointer
|
3217
|
-
|
3218
|
-
# (Not documented)
|
3219
|
-
#
|
3220
|
-
# @method const_fp_to_si(constant_val, to_type)
|
3221
|
-
# @param [FFI::Pointer(ValueRef)] constant_val
|
3222
|
-
# @param [FFI::Pointer(TypeRef)] to_type
|
3223
|
-
# @return [FFI::Pointer(ValueRef)]
|
3224
|
-
# @scope class
|
3225
|
-
attach_function :const_fp_to_si, :LLVMConstFPToSI, [:pointer, :pointer], :pointer
|
3226
|
-
|
3227
3119
|
# (Not documented)
|
3228
3120
|
#
|
3229
3121
|
# @method const_ptr_to_int(constant_val, to_type)
|
@@ -3260,24 +3152,6 @@ module LLVM::C
|
|
3260
3152
|
# @scope class
|
3261
3153
|
attach_function :const_addr_space_cast, :LLVMConstAddrSpaceCast, [:pointer, :pointer], :pointer
|
3262
3154
|
|
3263
|
-
# (Not documented)
|
3264
|
-
#
|
3265
|
-
# @method const_z_ext_or_bit_cast(constant_val, to_type)
|
3266
|
-
# @param [FFI::Pointer(ValueRef)] constant_val
|
3267
|
-
# @param [FFI::Pointer(TypeRef)] to_type
|
3268
|
-
# @return [FFI::Pointer(ValueRef)]
|
3269
|
-
# @scope class
|
3270
|
-
attach_function :const_z_ext_or_bit_cast, :LLVMConstZExtOrBitCast, [:pointer, :pointer], :pointer
|
3271
|
-
|
3272
|
-
# (Not documented)
|
3273
|
-
#
|
3274
|
-
# @method const_s_ext_or_bit_cast(constant_val, to_type)
|
3275
|
-
# @param [FFI::Pointer(ValueRef)] constant_val
|
3276
|
-
# @param [FFI::Pointer(TypeRef)] to_type
|
3277
|
-
# @return [FFI::Pointer(ValueRef)]
|
3278
|
-
# @scope class
|
3279
|
-
attach_function :const_s_ext_or_bit_cast, :LLVMConstSExtOrBitCast, [:pointer, :pointer], :pointer
|
3280
|
-
|
3281
3155
|
# (Not documented)
|
3282
3156
|
#
|
3283
3157
|
# @method const_trunc_or_bit_cast(constant_val, to_type)
|
@@ -3296,25 +3170,6 @@ module LLVM::C
|
|
3296
3170
|
# @scope class
|
3297
3171
|
attach_function :const_pointer_cast, :LLVMConstPointerCast, [:pointer, :pointer], :pointer
|
3298
3172
|
|
3299
|
-
# (Not documented)
|
3300
|
-
#
|
3301
|
-
# @method const_int_cast(constant_val, to_type, is_signed)
|
3302
|
-
# @param [FFI::Pointer(ValueRef)] constant_val
|
3303
|
-
# @param [FFI::Pointer(TypeRef)] to_type
|
3304
|
-
# @param [Integer] is_signed
|
3305
|
-
# @return [FFI::Pointer(ValueRef)]
|
3306
|
-
# @scope class
|
3307
|
-
attach_function :const_int_cast, :LLVMConstIntCast, [:pointer, :pointer, :int], :pointer
|
3308
|
-
|
3309
|
-
# (Not documented)
|
3310
|
-
#
|
3311
|
-
# @method const_fp_cast(constant_val, to_type)
|
3312
|
-
# @param [FFI::Pointer(ValueRef)] constant_val
|
3313
|
-
# @param [FFI::Pointer(TypeRef)] to_type
|
3314
|
-
# @return [FFI::Pointer(ValueRef)]
|
3315
|
-
# @scope class
|
3316
|
-
attach_function :const_fp_cast, :LLVMConstFPCast, [:pointer, :pointer], :pointer
|
3317
|
-
|
3318
3173
|
# (Not documented)
|
3319
3174
|
#
|
3320
3175
|
# @method const_select(constant_condition, constant_if_true, constant_if_false)
|
data/lib/llvm/linker_ffi.rb
CHANGED
data/lib/llvm/lljit.rb
ADDED
@@ -0,0 +1,106 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'llvm/core'
|
4
|
+
|
5
|
+
module LLVM
|
6
|
+
# wrapper around LLVMOrcLLJITRef
|
7
|
+
class LLJit
|
8
|
+
|
9
|
+
# create lljit
|
10
|
+
# does not automatically dispose of lljit
|
11
|
+
# if lljit was disposed, that would dispose of builder
|
12
|
+
def initialize
|
13
|
+
builder = C.create_lljit_builder
|
14
|
+
FFI::MemoryPointer.new(FFI.type_size(:pointer)) do |ptr|
|
15
|
+
error = C.create_lljit(ptr, builder)
|
16
|
+
if error.null?
|
17
|
+
@ptr = ptr.read_pointer
|
18
|
+
else
|
19
|
+
message = C.get_error_message(error)
|
20
|
+
raise message
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def triple_string
|
26
|
+
C.get_triple_string(ptr)
|
27
|
+
end
|
28
|
+
|
29
|
+
def data_layout
|
30
|
+
C.get_data_layout_str(ptr)
|
31
|
+
end
|
32
|
+
|
33
|
+
def global_prefix
|
34
|
+
gp = C.get_global_prefix(ptr)
|
35
|
+
gp.zero? ? "" : gp.chr
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
attr_reader :ptr
|
41
|
+
|
42
|
+
# currently returners pointer
|
43
|
+
def main_jit_dylib
|
44
|
+
C.main_jit_dylib(ptr)
|
45
|
+
end
|
46
|
+
|
47
|
+
module C
|
48
|
+
extend FFI::Library
|
49
|
+
ffi_lib_flags(:lazy, :global)
|
50
|
+
ffi_lib ["libLLVM-18.so.1", "libLLVM.so.18", "LLVM-18"]
|
51
|
+
|
52
|
+
attach_function :create_lljit_builder, :LLVMOrcCreateLLJITBuilder, [], :pointer
|
53
|
+
attach_function :dispose_lljit_builder, :LLVMOrcDisposeLLJITBuilder, [:pointer], :void
|
54
|
+
|
55
|
+
# LLVMErrorRef LLVMOrcCreateLLJIT(LLVMOrcLLJITRef *Result, LLVMOrcLLJITBuilderRef Builder);
|
56
|
+
attach_function :create_lljit, :LLVMOrcCreateLLJIT, [:pointer, :pointer], :pointer
|
57
|
+
|
58
|
+
# LLVMErrorRef LLVMOrcDisposeLLJIT(LLVMOrcLLJITRef J);
|
59
|
+
attach_function :dispose_lljit, :LLVMOrcDisposeLLJIT, [:pointer], :pointer
|
60
|
+
|
61
|
+
# const char *LLVMOrcLLJITGetTripleString(LLVMOrcLLJITRef J);
|
62
|
+
attach_function :get_triple_string, :LLVMOrcLLJITGetTripleString, [:pointer], :string
|
63
|
+
|
64
|
+
# const char *LLVMOrcLLJITGetDataLayoutStr(LLVMOrcLLJITRef J);
|
65
|
+
attach_function :get_data_layout_str, :LLVMOrcLLJITGetDataLayoutStr, [:pointer], :string
|
66
|
+
|
67
|
+
# char LLVMOrcLLJITGetGlobalPrefix(LLVMOrcLLJITRef J);
|
68
|
+
attach_function :get_global_prefix, :LLVMOrcLLJITGetGlobalPrefix, [:pointer], :char
|
69
|
+
|
70
|
+
# LLVMOrcJITDylibRef LLVMOrcLLJITGetMainJITDylib(LLVMOrcLLJITRef J);
|
71
|
+
attach_function :get_main_jit_dylib, :LLVMOrcLLJITGetMainJITDylib, [:pointer], :pointer
|
72
|
+
|
73
|
+
# LLVMOrcResourceTrackerRef
|
74
|
+
# LLVMOrcJITDylibCreateResourceTracker(LLVMOrcJITDylibRef JD);
|
75
|
+
attach_function :dylib_create_resource_tracker, :LLVMOrcJITDylibCreateResourceTracker,
|
76
|
+
[:pointer], :pointer
|
77
|
+
|
78
|
+
# LLVMOrcThreadSafeContextRef LLVMOrcCreateNewThreadSafeContext(void);
|
79
|
+
attach_function :create_new_thread_safe_context, :LLVMOrcCreateNewThreadSafeContext,
|
80
|
+
[], :pointer
|
81
|
+
|
82
|
+
# LLVMOrcThreadSafeModuleRef
|
83
|
+
# LLVMOrcCreateNewThreadSafeModule(LLVMModuleRef M,
|
84
|
+
# LLVMOrcThreadSafeContextRef TSCtx);
|
85
|
+
attach_function :create_new_thread_safe_module, :LLVMOrcCreateNewThreadSafeContext,
|
86
|
+
[:pointer, :pointer], :pointer
|
87
|
+
|
88
|
+
# LLVMErrorRef LLVMOrcLLJITAddLLVMIRModule(LLVMOrcLLJITRef J,
|
89
|
+
# LLVMOrcJITDylibRef JD,
|
90
|
+
# LLVMOrcThreadSafeModuleRef TSM);
|
91
|
+
attach_function :add_llvm_ir_module, :LLVMOrcLLJITAddLLVMIRModule,
|
92
|
+
[:pointer, :pointer, :pointer], :pointer
|
93
|
+
|
94
|
+
# LLVMErrorRef LLVMOrcLLJITAddLLVMIRModuleWithRT(LLVMOrcLLJITRef J,
|
95
|
+
# LLVMOrcResourceTrackerRef JD,
|
96
|
+
# LLVMOrcThreadSafeModuleRef TSM);
|
97
|
+
attach_function :add_llvm_ir_module_with_rt, :LLVMOrcLLJITAddLLVMIRModuleWithRT,
|
98
|
+
[:pointer, :pointer, :pointer], :pointer
|
99
|
+
|
100
|
+
# TODO: extract and combine with PassBuilder
|
101
|
+
attach_function(:get_error_message, :LLVMGetErrorMessage, [:pointer], :string)
|
102
|
+
|
103
|
+
attach_function(:dispose_error_message, :LLVMDisposeErrorMessage, [:string], :void)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
data/lib/llvm/support.rb
CHANGED
@@ -29,6 +29,7 @@ module LLVM
|
|
29
29
|
:LLVMInitializeNativeAsmPrinter, [], :void
|
30
30
|
|
31
31
|
attach_function :get_enum_attribute_name_for_kind, :LLVMGetEnumAttributeNameForKind, [:uint], :string
|
32
|
+
attach_function :get_attribute_as_string, :LLVMGetAttributeAsString, [:pointer], :string
|
32
33
|
end
|
33
34
|
end
|
34
35
|
|
data/lib/llvm/target.rb
CHANGED
data/lib/llvm/target_ffi.rb
CHANGED
data/lib/llvm/transforms/ipo.rb
CHANGED
@@ -3,122 +3,116 @@
|
|
3
3
|
# Interprocedural optimization (IPO)
|
4
4
|
require 'llvm'
|
5
5
|
require 'llvm/core'
|
6
|
-
require 'llvm/transforms/ipo_ffi'
|
7
6
|
|
8
7
|
module LLVM
|
9
8
|
class PassManager
|
10
9
|
# @LLVMpass arg_promotion
|
11
10
|
def arg_promote!
|
12
|
-
|
11
|
+
raise DeprecationError
|
13
12
|
end
|
14
13
|
|
15
14
|
# @LLVMpass const_merge
|
16
15
|
# /** See llvm::createConstantMergePass function. */
|
17
16
|
# void LLVMAddConstantMergePass(LLVMPassManagerRef PM);
|
18
17
|
def const_merge!
|
19
|
-
|
18
|
+
raise DeprecationError
|
20
19
|
end
|
21
20
|
|
22
21
|
# @LLVMpass mergefunc
|
23
22
|
# /** See llvm::createMergeFunctionsPass function. */
|
24
23
|
# void LLVMAddMergeFunctionsPass(LLVMPassManagerRef PM);
|
25
24
|
def mergefunc!
|
26
|
-
|
25
|
+
raise DeprecationError
|
27
26
|
end
|
28
27
|
|
29
28
|
# @LLVMpass called-value-propagation
|
30
29
|
# /** See llvm::createCalledValuePropagationPass function. */
|
31
30
|
# void LLVMAddCalledValuePropagationPass(LLVMPassManagerRef PM);
|
32
31
|
def called_value_propagation!
|
33
|
-
|
32
|
+
raise DeprecationError
|
34
33
|
end
|
35
34
|
|
36
35
|
# @LLVMpass dae
|
37
36
|
# /** See llvm::createDeadArgEliminationPass function. */
|
38
37
|
# void LLVMAddDeadArgEliminationPass(LLVMPassManagerRef PM);
|
39
38
|
def dae!
|
40
|
-
|
39
|
+
raise DeprecationError
|
41
40
|
end
|
42
41
|
|
43
42
|
# @LLVMpass function_attrs
|
44
43
|
# /** See llvm::createFunctionAttrsPass function. */
|
45
44
|
# void LLVMAddFunctionAttrsPass(LLVMPassManagerRef PM);
|
46
45
|
def fun_attrs!
|
47
|
-
|
46
|
+
raise DeprecationError
|
48
47
|
end
|
49
48
|
|
50
49
|
# @LLVMpass inline
|
51
50
|
# /** See llvm::createFunctionInliningPass function. */
|
52
51
|
# void LLVMAddFunctionInliningPass(LLVMPassManagerRef PM);
|
53
52
|
def inline!
|
54
|
-
|
53
|
+
raise DeprecationError
|
55
54
|
end
|
56
55
|
|
57
56
|
# @LLVMpass always_inline
|
58
57
|
# /** See llvm::createAlwaysInlinerPass function. */
|
59
58
|
# void LLVMAddAlwaysInlinerPass(LLVMPassManagerRef PM);
|
60
59
|
def always_inline!
|
61
|
-
|
60
|
+
raise DeprecationError
|
62
61
|
end
|
63
62
|
|
64
63
|
# @LLVMpass gdce
|
65
64
|
# /** See llvm::createGlobalDCEPass function. */
|
66
65
|
# void LLVMAddGlobalDCEPass(LLVMPassManagerRef PM);
|
67
66
|
def gdce!
|
68
|
-
|
67
|
+
raise DeprecationError
|
69
68
|
end
|
70
69
|
|
71
70
|
# @LLVMpass global_opt
|
72
71
|
# /** See llvm::createGlobalOptimizerPass function. */
|
73
72
|
# void LLVMAddGlobalOptimizerPass(LLVMPassManagerRef PM);
|
74
73
|
def global_opt!
|
75
|
-
|
74
|
+
raise DeprecationError
|
76
75
|
end
|
77
76
|
|
78
77
|
# @LLVMpass ipcp
|
79
78
|
def ipcp!
|
80
|
-
|
79
|
+
raise DeprecationError
|
81
80
|
end
|
82
81
|
|
83
82
|
# @LLVMpass prune_eh
|
84
83
|
# /** See llvm::createPruneEHPass function. */
|
85
84
|
# void LLVMAddPruneEHPass(LLVMPassManagerRef PM);
|
86
85
|
def prune_eh!
|
87
|
-
|
86
|
+
raise DeprecationError
|
88
87
|
end
|
89
88
|
|
90
89
|
# @LLVMpass ipsccp
|
91
90
|
# /** See llvm::createIPSCCPPass function. */
|
92
91
|
# void LLVMAddIPSCCPPass(LLVMPassManagerRef PM);
|
93
92
|
def ipsccp!
|
94
|
-
|
93
|
+
raise DeprecationError
|
95
94
|
end
|
96
95
|
|
97
96
|
# @LLVMpass internalize
|
98
97
|
# /** See llvm::createInternalizePass function. */
|
99
98
|
# void LLVMAddInternalizePass(LLVMPassManagerRef, unsigned AllButMain);
|
100
|
-
def internalize!(
|
101
|
-
|
99
|
+
def internalize!(_all_but_main = true)
|
100
|
+
raise DeprecationError
|
102
101
|
end
|
103
102
|
|
104
103
|
# @LLVMpass sdp
|
105
104
|
# /** See llvm::createStripDeadPrototypesPass function. */
|
106
105
|
# void LLVMAddStripDeadPrototypesPass(LLVMPassManagerRef PM);
|
107
106
|
def sdp!
|
108
|
-
|
107
|
+
raise DeprecationError
|
109
108
|
end
|
110
109
|
|
111
110
|
# @LLVMpass strip
|
112
111
|
# /** See llvm::createStripSymbolsPass function. */
|
113
112
|
# void LLVMAddStripSymbolsPass(LLVMPassManagerRef PM);
|
114
113
|
def strip!
|
115
|
-
|
114
|
+
raise DeprecationError
|
116
115
|
end
|
117
116
|
|
118
117
|
end
|
119
|
-
|
120
|
-
module C
|
121
|
-
attach_function :add_merge_functions_pass, :LLVMAddMergeFunctionsPass, [:pointer], :void
|
122
|
-
attach_function :add_called_value_propagation_pass, :LLVMAddCalledValuePropagationPass, [:pointer], :void
|
123
|
-
end
|
124
118
|
end
|