ruby-llvm 3.0.0 → 3.1.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,307 +4,309 @@ require 'ffi'
4
4
 
5
5
  module LLVM::C
6
6
  extend FFI::Library
7
- ffi_lib 'LLVM-3.0'
8
-
7
+ ffi_lib 'LLVM-3.1'
8
+
9
+ def self.attach_function(name, *_)
10
+ begin; super; rescue FFI::NotFoundError => e
11
+ (class << self; self; end).class_eval { define_method(name) { |*_| raise e } }
12
+ end
13
+ end
14
+
9
15
  # (Not documented)
10
16
  #
11
17
  # @method link_in_jit()
12
18
  # @return [nil]
13
19
  # @scope class
14
20
  attach_function :link_in_jit, :LLVMLinkInJIT, [], :void
15
-
21
+
16
22
  # (Not documented)
17
23
  #
18
24
  # @method link_in_interpreter()
19
25
  # @return [nil]
20
26
  # @scope class
21
27
  attach_function :link_in_interpreter, :LLVMLinkInInterpreter, [], :void
22
-
28
+
23
29
  # (Not documented)
24
- #
25
- # = Fields:
26
- #
27
30
  class OpaqueGenericValue < FFI::Struct
31
+ layout :dummy, :char
28
32
  end
29
-
33
+
30
34
  # (Not documented)
31
- #
32
- # = Fields:
33
- #
34
35
  class OpaqueExecutionEngine < FFI::Struct
36
+ layout :dummy, :char
35
37
  end
36
-
38
+
37
39
  # ===-- Operations on generic values --------------------------------------===
38
40
  #
39
41
  # @method create_generic_value_of_int(ty, n, is_signed)
40
42
  # @param [FFI::Pointer(TypeRef)] ty
41
43
  # @param [Integer] n
42
44
  # @param [Integer] is_signed
43
- # @return [FFI::Pointer(GenericValueRef)]
45
+ # @return [OpaqueGenericValue]
44
46
  # @scope class
45
- attach_function :create_generic_value_of_int, :LLVMCreateGenericValueOfInt, [:pointer, :ulong_long, :int], :pointer
46
-
47
+ attach_function :create_generic_value_of_int, :LLVMCreateGenericValueOfInt, [:pointer, :ulong_long, :int], OpaqueGenericValue
48
+
47
49
  # (Not documented)
48
50
  #
49
51
  # @method create_generic_value_of_pointer(p)
50
52
  # @param [FFI::Pointer(*Void)] p
51
- # @return [FFI::Pointer(GenericValueRef)]
53
+ # @return [OpaqueGenericValue]
52
54
  # @scope class
53
- attach_function :create_generic_value_of_pointer, :LLVMCreateGenericValueOfPointer, [:pointer], :pointer
54
-
55
+ attach_function :create_generic_value_of_pointer, :LLVMCreateGenericValueOfPointer, [:pointer], OpaqueGenericValue
56
+
55
57
  # (Not documented)
56
58
  #
57
59
  # @method create_generic_value_of_float(ty, n)
58
60
  # @param [FFI::Pointer(TypeRef)] ty
59
61
  # @param [Float] n
60
- # @return [FFI::Pointer(GenericValueRef)]
62
+ # @return [OpaqueGenericValue]
61
63
  # @scope class
62
- attach_function :create_generic_value_of_float, :LLVMCreateGenericValueOfFloat, [:pointer, :double], :pointer
63
-
64
+ attach_function :create_generic_value_of_float, :LLVMCreateGenericValueOfFloat, [:pointer, :double], OpaqueGenericValue
65
+
64
66
  # (Not documented)
65
67
  #
66
68
  # @method generic_value_int_width(gen_val_ref)
67
- # @param [FFI::Pointer(GenericValueRef)] gen_val_ref
69
+ # @param [OpaqueGenericValue] gen_val_ref
68
70
  # @return [Integer]
69
71
  # @scope class
70
- attach_function :generic_value_int_width, :LLVMGenericValueIntWidth, [:pointer], :uint
71
-
72
+ attach_function :generic_value_int_width, :LLVMGenericValueIntWidth, [OpaqueGenericValue], :uint
73
+
72
74
  # (Not documented)
73
75
  #
74
76
  # @method generic_value_to_int(gen_val, is_signed)
75
- # @param [FFI::Pointer(GenericValueRef)] gen_val
77
+ # @param [OpaqueGenericValue] gen_val
76
78
  # @param [Integer] is_signed
77
79
  # @return [Integer]
78
80
  # @scope class
79
- attach_function :generic_value_to_int, :LLVMGenericValueToInt, [:pointer, :int], :ulong_long
80
-
81
+ attach_function :generic_value_to_int, :LLVMGenericValueToInt, [OpaqueGenericValue, :int], :ulong_long
82
+
81
83
  # (Not documented)
82
84
  #
83
85
  # @method generic_value_to_pointer(gen_val)
84
- # @param [FFI::Pointer(GenericValueRef)] gen_val
86
+ # @param [OpaqueGenericValue] gen_val
85
87
  # @return [FFI::Pointer(*Void)]
86
88
  # @scope class
87
- attach_function :generic_value_to_pointer, :LLVMGenericValueToPointer, [:pointer], :pointer
88
-
89
+ attach_function :generic_value_to_pointer, :LLVMGenericValueToPointer, [OpaqueGenericValue], :pointer
90
+
89
91
  # (Not documented)
90
92
  #
91
93
  # @method generic_value_to_float(ty_ref, gen_val)
92
94
  # @param [FFI::Pointer(TypeRef)] ty_ref
93
- # @param [FFI::Pointer(GenericValueRef)] gen_val
95
+ # @param [OpaqueGenericValue] gen_val
94
96
  # @return [Float]
95
97
  # @scope class
96
- attach_function :generic_value_to_float, :LLVMGenericValueToFloat, [:pointer, :pointer], :double
97
-
98
+ attach_function :generic_value_to_float, :LLVMGenericValueToFloat, [:pointer, OpaqueGenericValue], :double
99
+
98
100
  # (Not documented)
99
101
  #
100
102
  # @method dispose_generic_value(gen_val)
101
- # @param [FFI::Pointer(GenericValueRef)] gen_val
103
+ # @param [OpaqueGenericValue] gen_val
102
104
  # @return [nil]
103
105
  # @scope class
104
- attach_function :dispose_generic_value, :LLVMDisposeGenericValue, [:pointer], :void
105
-
106
+ attach_function :dispose_generic_value, :LLVMDisposeGenericValue, [OpaqueGenericValue], :void
107
+
106
108
  # ===-- Operations on execution engines -----------------------------------===
107
109
  #
108
110
  # @method create_execution_engine_for_module(out_ee, m, out_error)
109
111
  # @param [FFI::Pointer(*ExecutionEngineRef)] out_ee
110
112
  # @param [FFI::Pointer(ModuleRef)] m
111
- # @param [FFI::Pointer(**Char_S)] out_error
113
+ # @param [FFI::Pointer(**CharS)] out_error
112
114
  # @return [Integer]
113
115
  # @scope class
114
116
  attach_function :create_execution_engine_for_module, :LLVMCreateExecutionEngineForModule, [:pointer, :pointer, :pointer], :int
115
-
117
+
116
118
  # (Not documented)
117
119
  #
118
120
  # @method create_interpreter_for_module(out_interp, m, out_error)
119
121
  # @param [FFI::Pointer(*ExecutionEngineRef)] out_interp
120
122
  # @param [FFI::Pointer(ModuleRef)] m
121
- # @param [FFI::Pointer(**Char_S)] out_error
123
+ # @param [FFI::Pointer(**CharS)] out_error
122
124
  # @return [Integer]
123
125
  # @scope class
124
126
  attach_function :create_interpreter_for_module, :LLVMCreateInterpreterForModule, [:pointer, :pointer, :pointer], :int
125
-
127
+
126
128
  # (Not documented)
127
129
  #
128
130
  # @method create_jit_compiler_for_module(out_jit, m, opt_level, out_error)
129
131
  # @param [FFI::Pointer(*ExecutionEngineRef)] out_jit
130
132
  # @param [FFI::Pointer(ModuleRef)] m
131
133
  # @param [Integer] opt_level
132
- # @param [FFI::Pointer(**Char_S)] out_error
134
+ # @param [FFI::Pointer(**CharS)] out_error
133
135
  # @return [Integer]
134
136
  # @scope class
135
137
  attach_function :create_jit_compiler_for_module, :LLVMCreateJITCompilerForModule, [:pointer, :pointer, :uint, :pointer], :int
136
-
138
+
137
139
  # Deprecated: Use LLVMCreateExecutionEngineForModule instead.
138
140
  #
139
141
  # @method create_execution_engine(out_ee, mp, out_error)
140
142
  # @param [FFI::Pointer(*ExecutionEngineRef)] out_ee
141
143
  # @param [FFI::Pointer(ModuleProviderRef)] mp
142
- # @param [FFI::Pointer(**Char_S)] out_error
144
+ # @param [FFI::Pointer(**CharS)] out_error
143
145
  # @return [Integer]
144
146
  # @scope class
145
147
  attach_function :create_execution_engine, :LLVMCreateExecutionEngine, [:pointer, :pointer, :pointer], :int
146
-
148
+
147
149
  # Deprecated: Use LLVMCreateInterpreterForModule instead.
148
150
  #
149
151
  # @method create_interpreter(out_interp, mp, out_error)
150
152
  # @param [FFI::Pointer(*ExecutionEngineRef)] out_interp
151
153
  # @param [FFI::Pointer(ModuleProviderRef)] mp
152
- # @param [FFI::Pointer(**Char_S)] out_error
154
+ # @param [FFI::Pointer(**CharS)] out_error
153
155
  # @return [Integer]
154
156
  # @scope class
155
157
  attach_function :create_interpreter, :LLVMCreateInterpreter, [:pointer, :pointer, :pointer], :int
156
-
158
+
157
159
  # Deprecated: Use LLVMCreateJITCompilerForModule instead.
158
160
  #
159
161
  # @method create_jit_compiler(out_jit, mp, opt_level, out_error)
160
162
  # @param [FFI::Pointer(*ExecutionEngineRef)] out_jit
161
163
  # @param [FFI::Pointer(ModuleProviderRef)] mp
162
164
  # @param [Integer] opt_level
163
- # @param [FFI::Pointer(**Char_S)] out_error
165
+ # @param [FFI::Pointer(**CharS)] out_error
164
166
  # @return [Integer]
165
167
  # @scope class
166
168
  attach_function :create_jit_compiler, :LLVMCreateJITCompiler, [:pointer, :pointer, :uint, :pointer], :int
167
-
169
+
168
170
  # (Not documented)
169
171
  #
170
172
  # @method dispose_execution_engine(ee)
171
- # @param [FFI::Pointer(ExecutionEngineRef)] ee
173
+ # @param [OpaqueExecutionEngine] ee
172
174
  # @return [nil]
173
175
  # @scope class
174
- attach_function :dispose_execution_engine, :LLVMDisposeExecutionEngine, [:pointer], :void
175
-
176
+ attach_function :dispose_execution_engine, :LLVMDisposeExecutionEngine, [OpaqueExecutionEngine], :void
177
+
176
178
  # (Not documented)
177
179
  #
178
180
  # @method run_static_constructors(ee)
179
- # @param [FFI::Pointer(ExecutionEngineRef)] ee
181
+ # @param [OpaqueExecutionEngine] ee
180
182
  # @return [nil]
181
183
  # @scope class
182
- attach_function :run_static_constructors, :LLVMRunStaticConstructors, [:pointer], :void
183
-
184
+ attach_function :run_static_constructors, :LLVMRunStaticConstructors, [OpaqueExecutionEngine], :void
185
+
184
186
  # (Not documented)
185
187
  #
186
188
  # @method run_static_destructors(ee)
187
- # @param [FFI::Pointer(ExecutionEngineRef)] ee
189
+ # @param [OpaqueExecutionEngine] ee
188
190
  # @return [nil]
189
191
  # @scope class
190
- attach_function :run_static_destructors, :LLVMRunStaticDestructors, [:pointer], :void
191
-
192
+ attach_function :run_static_destructors, :LLVMRunStaticDestructors, [OpaqueExecutionEngine], :void
193
+
192
194
  # (Not documented)
193
195
  #
194
196
  # @method run_function_as_main(ee, f, arg_c, arg_v, env_p)
195
- # @param [FFI::Pointer(ExecutionEngineRef)] ee
197
+ # @param [OpaqueExecutionEngine] ee
196
198
  # @param [FFI::Pointer(ValueRef)] f
197
199
  # @param [Integer] arg_c
198
- # @param [FFI::Pointer(**Char_S)] arg_v
199
- # @param [FFI::Pointer(**Char_S)] env_p
200
+ # @param [FFI::Pointer(**CharS)] arg_v
201
+ # @param [FFI::Pointer(**CharS)] env_p
200
202
  # @return [Integer]
201
203
  # @scope class
202
- attach_function :run_function_as_main, :LLVMRunFunctionAsMain, [:pointer, :pointer, :uint, :pointer, :pointer], :int
203
-
204
+ attach_function :run_function_as_main, :LLVMRunFunctionAsMain, [OpaqueExecutionEngine, :pointer, :uint, :pointer, :pointer], :int
205
+
204
206
  # (Not documented)
205
207
  #
206
208
  # @method run_function(ee, f, num_args, args)
207
- # @param [FFI::Pointer(ExecutionEngineRef)] ee
209
+ # @param [OpaqueExecutionEngine] ee
208
210
  # @param [FFI::Pointer(ValueRef)] f
209
211
  # @param [Integer] num_args
210
212
  # @param [FFI::Pointer(*GenericValueRef)] args
211
- # @return [FFI::Pointer(GenericValueRef)]
213
+ # @return [OpaqueGenericValue]
212
214
  # @scope class
213
- attach_function :run_function, :LLVMRunFunction, [:pointer, :pointer, :uint, :pointer], :pointer
214
-
215
+ attach_function :run_function, :LLVMRunFunction, [OpaqueExecutionEngine, :pointer, :uint, :pointer], OpaqueGenericValue
216
+
215
217
  # (Not documented)
216
218
  #
217
219
  # @method free_machine_code_for_function(ee, f)
218
- # @param [FFI::Pointer(ExecutionEngineRef)] ee
220
+ # @param [OpaqueExecutionEngine] ee
219
221
  # @param [FFI::Pointer(ValueRef)] f
220
222
  # @return [nil]
221
223
  # @scope class
222
- attach_function :free_machine_code_for_function, :LLVMFreeMachineCodeForFunction, [:pointer, :pointer], :void
223
-
224
+ attach_function :free_machine_code_for_function, :LLVMFreeMachineCodeForFunction, [OpaqueExecutionEngine, :pointer], :void
225
+
224
226
  # (Not documented)
225
227
  #
226
228
  # @method add_module(ee, m)
227
- # @param [FFI::Pointer(ExecutionEngineRef)] ee
229
+ # @param [OpaqueExecutionEngine] ee
228
230
  # @param [FFI::Pointer(ModuleRef)] m
229
231
  # @return [nil]
230
232
  # @scope class
231
- attach_function :add_module, :LLVMAddModule, [:pointer, :pointer], :void
232
-
233
+ attach_function :add_module, :LLVMAddModule, [OpaqueExecutionEngine, :pointer], :void
234
+
233
235
  # Deprecated: Use LLVMAddModule instead.
234
236
  #
235
237
  # @method add_module_provider(ee, mp)
236
- # @param [FFI::Pointer(ExecutionEngineRef)] ee
238
+ # @param [OpaqueExecutionEngine] ee
237
239
  # @param [FFI::Pointer(ModuleProviderRef)] mp
238
240
  # @return [nil]
239
241
  # @scope class
240
- attach_function :add_module_provider, :LLVMAddModuleProvider, [:pointer, :pointer], :void
241
-
242
+ attach_function :add_module_provider, :LLVMAddModuleProvider, [OpaqueExecutionEngine, :pointer], :void
243
+
242
244
  # (Not documented)
243
245
  #
244
246
  # @method remove_module(ee, m, out_mod, out_error)
245
- # @param [FFI::Pointer(ExecutionEngineRef)] ee
247
+ # @param [OpaqueExecutionEngine] ee
246
248
  # @param [FFI::Pointer(ModuleRef)] m
247
249
  # @param [FFI::Pointer(*ModuleRef)] out_mod
248
- # @param [FFI::Pointer(**Char_S)] out_error
250
+ # @param [FFI::Pointer(**CharS)] out_error
249
251
  # @return [Integer]
250
252
  # @scope class
251
- attach_function :remove_module, :LLVMRemoveModule, [:pointer, :pointer, :pointer, :pointer], :int
252
-
253
+ attach_function :remove_module, :LLVMRemoveModule, [OpaqueExecutionEngine, :pointer, :pointer, :pointer], :int
254
+
253
255
  # Deprecated: Use LLVMRemoveModule instead.
254
256
  #
255
257
  # @method remove_module_provider(ee, mp, out_mod, out_error)
256
- # @param [FFI::Pointer(ExecutionEngineRef)] ee
258
+ # @param [OpaqueExecutionEngine] ee
257
259
  # @param [FFI::Pointer(ModuleProviderRef)] mp
258
260
  # @param [FFI::Pointer(*ModuleRef)] out_mod
259
- # @param [FFI::Pointer(**Char_S)] out_error
261
+ # @param [FFI::Pointer(**CharS)] out_error
260
262
  # @return [Integer]
261
263
  # @scope class
262
- attach_function :remove_module_provider, :LLVMRemoveModuleProvider, [:pointer, :pointer, :pointer, :pointer], :int
263
-
264
+ attach_function :remove_module_provider, :LLVMRemoveModuleProvider, [OpaqueExecutionEngine, :pointer, :pointer, :pointer], :int
265
+
264
266
  # (Not documented)
265
267
  #
266
268
  # @method find_function(ee, name, out_fn)
267
- # @param [FFI::Pointer(ExecutionEngineRef)] ee
269
+ # @param [OpaqueExecutionEngine] ee
268
270
  # @param [String] name
269
271
  # @param [FFI::Pointer(*ValueRef)] out_fn
270
272
  # @return [Integer]
271
273
  # @scope class
272
- attach_function :find_function, :LLVMFindFunction, [:pointer, :string, :pointer], :int
273
-
274
+ attach_function :find_function, :LLVMFindFunction, [OpaqueExecutionEngine, :string, :pointer], :int
275
+
274
276
  # (Not documented)
275
277
  #
276
278
  # @method recompile_and_relink_function(ee, fn)
277
- # @param [FFI::Pointer(ExecutionEngineRef)] ee
279
+ # @param [OpaqueExecutionEngine] ee
278
280
  # @param [FFI::Pointer(ValueRef)] fn
279
281
  # @return [FFI::Pointer(*Void)]
280
282
  # @scope class
281
- attach_function :recompile_and_relink_function, :LLVMRecompileAndRelinkFunction, [:pointer, :pointer], :pointer
282
-
283
+ attach_function :recompile_and_relink_function, :LLVMRecompileAndRelinkFunction, [OpaqueExecutionEngine, :pointer], :pointer
284
+
283
285
  # (Not documented)
284
286
  #
285
287
  # @method get_execution_engine_target_data(ee)
286
- # @param [FFI::Pointer(ExecutionEngineRef)] ee
288
+ # @param [OpaqueExecutionEngine] ee
287
289
  # @return [FFI::Pointer(TargetDataRef)]
288
290
  # @scope class
289
- attach_function :get_execution_engine_target_data, :LLVMGetExecutionEngineTargetData, [:pointer], :pointer
290
-
291
+ attach_function :get_execution_engine_target_data, :LLVMGetExecutionEngineTargetData, [OpaqueExecutionEngine], :pointer
292
+
291
293
  # (Not documented)
292
294
  #
293
295
  # @method add_global_mapping(ee, global, addr)
294
- # @param [FFI::Pointer(ExecutionEngineRef)] ee
296
+ # @param [OpaqueExecutionEngine] ee
295
297
  # @param [FFI::Pointer(ValueRef)] global
296
298
  # @param [FFI::Pointer(*Void)] addr
297
299
  # @return [nil]
298
300
  # @scope class
299
- attach_function :add_global_mapping, :LLVMAddGlobalMapping, [:pointer, :pointer, :pointer], :void
300
-
301
+ attach_function :add_global_mapping, :LLVMAddGlobalMapping, [OpaqueExecutionEngine, :pointer, :pointer], :void
302
+
301
303
  # (Not documented)
302
304
  #
303
305
  # @method get_pointer_to_global(ee, global)
304
- # @param [FFI::Pointer(ExecutionEngineRef)] ee
306
+ # @param [OpaqueExecutionEngine] ee
305
307
  # @param [FFI::Pointer(ValueRef)] global
306
308
  # @return [FFI::Pointer(*Void)]
307
309
  # @scope class
308
- attach_function :get_pointer_to_global, :LLVMGetPointerToGlobal, [:pointer, :pointer], :pointer
309
-
310
- end
310
+ attach_function :get_pointer_to_global, :LLVMGetPointerToGlobal, [OpaqueExecutionEngine, :pointer], :pointer
311
+
312
+ end
data/lib/llvm/support.rb CHANGED
@@ -7,7 +7,7 @@ module LLVM
7
7
  File.join(
8
8
  File.dirname(__FILE__),
9
9
  '../',
10
- FFI.map_library_name('RubyLLVMSupport-3.0.0')))
10
+ FFI.map_library_name('RubyLLVMSupport-3.1.0')))
11
11
  ffi_lib [support_lib]
12
12
  attach_function :load_library_permanently, :LLVMLoadLibraryPermanently, [:string], :int
13
13
  end
@@ -4,214 +4,276 @@ require 'ffi'
4
4
 
5
5
  module LLVM::C
6
6
  extend FFI::Library
7
- ffi_lib 'LLVM-3.0'
8
-
7
+ ffi_lib 'LLVM-3.1'
8
+
9
+ def self.attach_function(name, *_)
10
+ begin; super; rescue FFI::NotFoundError => e
11
+ (class << self; self; end).class_eval { define_method(name) { |*_| raise e } }
12
+ end
13
+ end
14
+
9
15
  # (Not documented)
10
16
  #
17
+ # <em>This entry is only for documentation and no real method. The FFI::Enum can be accessed via #enum_type(:byte_ordering).</em>
18
+ #
11
19
  # === Options:
12
- # :big ::
20
+ # :big_endian ::
13
21
  #
14
- # :little ::
22
+ # :little_endian ::
15
23
  #
16
- #
17
- # @return [Array<Symbol>]
18
- def self.byte_ordering_enum
19
- [:big, :little]
20
- end
24
+ #
25
+ # @method _enum_byte_ordering_
26
+ # @return [Symbol]
27
+ # @scope class
21
28
  enum :byte_ordering, [
22
- :big,
23
- :little
29
+ :big_endian, 0,
30
+ :little_endian, 1
24
31
  ]
25
-
32
+
26
33
  # (Not documented)
27
- #
28
- # = Fields:
29
- #
30
34
  class OpaqueTargetData < FFI::Struct
35
+ layout :dummy, :char
31
36
  end
32
-
37
+
33
38
  # (Not documented)
34
- #
35
- # = Fields:
36
- #
37
39
  class OpaqueTargetLibraryInfotData < FFI::Struct
40
+ layout :dummy, :char
38
41
  end
39
-
42
+
40
43
  # (Not documented)
41
- #
42
- # = Fields:
43
- #
44
44
  class StructLayout < FFI::Struct
45
+ layout :dummy, :char
45
46
  end
46
-
47
+
48
+ # (Not documented)
49
+ #
50
+ # @method initialize_all_target_infos()
51
+ # @return [nil]
52
+ # @scope class
53
+ attach_function :initialize_all_target_infos, :LLVMInitializeAllTargetInfos, [], :void
54
+
55
+ # LLVMInitializeAllTargets - The main program should call this function if it
56
+ # wants to link in all available targets that LLVM is configured to
57
+ # support.
58
+ #
59
+ # @method initialize_all_targets()
60
+ # @return [nil]
61
+ # @scope class
62
+ attach_function :initialize_all_targets, :LLVMInitializeAllTargets, [], :void
63
+
64
+ # LLVMInitializeAllTargetMCs - The main program should call this function if
65
+ # it wants access to all available target MC that LLVM is configured to
66
+ # support.
67
+ #
68
+ # @method initialize_all_target_m_cs()
69
+ # @return [nil]
70
+ # @scope class
71
+ attach_function :initialize_all_target_m_cs, :LLVMInitializeAllTargetMCs, [], :void
72
+
73
+ # LLVMInitializeAllAsmPrinters - The main program should call this function if
74
+ # it wants all asm printers that LLVM is configured to support, to make them
75
+ # available via the TargetRegistry.
76
+ #
77
+ # @method initialize_all_asm_printers()
78
+ # @return [nil]
79
+ # @scope class
80
+ attach_function :initialize_all_asm_printers, :LLVMInitializeAllAsmPrinters, [], :void
81
+
82
+ # LLVMInitializeAllAsmParsers - The main program should call this function if
83
+ # it wants all asm parsers that LLVM is configured to support, to make them
84
+ # available via the TargetRegistry.
85
+ #
86
+ # @method initialize_all_asm_parsers()
87
+ # @return [nil]
88
+ # @scope class
89
+ attach_function :initialize_all_asm_parsers, :LLVMInitializeAllAsmParsers, [], :void
90
+
91
+ # LLVMInitializeAllDisassemblers - The main program should call this function
92
+ # if it wants all disassemblers that LLVM is configured to support, to make
93
+ # them available via the TargetRegistry.
94
+ #
95
+ # @method initialize_all_disassemblers()
96
+ # @return [nil]
97
+ # @scope class
98
+ attach_function :initialize_all_disassemblers, :LLVMInitializeAllDisassemblers, [], :void
99
+
100
+ # LLVMInitializeNativeTarget - The main program should call this function to
101
+ # initialize the native target corresponding to the host. This is useful
102
+ # for JIT applications to ensure that the target gets linked in correctly.
103
+ #
104
+ # @method initialize_native_target()
105
+ # @return [Integer]
106
+ # @scope class
107
+ attach_function :initialize_native_target, :LLVMInitializeNativeTarget, [], :int
108
+
47
109
  # Creates target data from a target layout string.
48
110
  # See the constructor llvm::TargetData::TargetData.
49
111
  #
50
112
  # @method create_target_data(string_rep)
51
113
  # @param [String] string_rep
52
- # @return [FFI::Pointer(TargetDataRef)]
114
+ # @return [OpaqueTargetData]
53
115
  # @scope class
54
- attach_function :create_target_data, :LLVMCreateTargetData, [:string], :pointer
55
-
116
+ attach_function :create_target_data, :LLVMCreateTargetData, [:string], OpaqueTargetData
117
+
56
118
  # Adds target data information to a pass manager. This does not take ownership
57
119
  # of the target data.
58
120
  # See the method llvm::PassManagerBase::add.
59
121
  #
60
- # @method add_target_data(target_data_ref, pass_manager_ref)
61
- # @param [FFI::Pointer(TargetDataRef)] target_data_ref
122
+ # @method add_target_data(opaque_target_data, pass_manager_ref)
123
+ # @param [OpaqueTargetData] opaque_target_data
62
124
  # @param [FFI::Pointer(PassManagerRef)] pass_manager_ref
63
125
  # @return [nil]
64
126
  # @scope class
65
- attach_function :add_target_data, :LLVMAddTargetData, [:pointer, :pointer], :void
66
-
127
+ attach_function :add_target_data, :LLVMAddTargetData, [OpaqueTargetData, :pointer], :void
128
+
67
129
  # Adds target library information to a pass manager. This does not take
68
130
  # ownership of the target library info.
69
131
  # See the method llvm::PassManagerBase::add.
70
132
  #
71
- # @method add_target_library_info(target_library_info_ref, pass_manager_ref)
72
- # @param [FFI::Pointer(TargetLibraryInfoRef)] target_library_info_ref
133
+ # @method add_target_library_info(opaque_target_library_infot_data, pass_manager_ref)
134
+ # @param [OpaqueTargetLibraryInfotData] opaque_target_library_infot_data
73
135
  # @param [FFI::Pointer(PassManagerRef)] pass_manager_ref
74
136
  # @return [nil]
75
137
  # @scope class
76
- attach_function :add_target_library_info, :LLVMAddTargetLibraryInfo, [:pointer, :pointer], :void
77
-
138
+ attach_function :add_target_library_info, :LLVMAddTargetLibraryInfo, [OpaqueTargetLibraryInfotData, :pointer], :void
139
+
78
140
  # Converts target data to a target layout string. The string must be disposed
79
141
  # with LLVMDisposeMessage.
80
142
  # See the constructor llvm::TargetData::TargetData.
81
143
  #
82
- # @method copy_string_rep_of_target_data(target_data_ref)
83
- # @param [FFI::Pointer(TargetDataRef)] target_data_ref
144
+ # @method copy_string_rep_of_target_data(opaque_target_data)
145
+ # @param [OpaqueTargetData] opaque_target_data
84
146
  # @return [String]
85
147
  # @scope class
86
- attach_function :copy_string_rep_of_target_data, :LLVMCopyStringRepOfTargetData, [:pointer], :string
87
-
148
+ attach_function :copy_string_rep_of_target_data, :LLVMCopyStringRepOfTargetData, [OpaqueTargetData], :string
149
+
88
150
  # Returns the byte order of a target, either LLVMBigEndian or
89
151
  # LLVMLittleEndian.
90
152
  # See the method llvm::TargetData::isLittleEndian.
91
153
  #
92
- # @method byte_order(target_data_ref)
93
- # @param [FFI::Pointer(TargetDataRef)] target_data_ref
94
- # @return [Symbol from byte_ordering_enum]
154
+ # @method byte_order(opaque_target_data)
155
+ # @param [OpaqueTargetData] opaque_target_data
156
+ # @return [Symbol from _enum_byte_ordering_]
95
157
  # @scope class
96
- attach_function :byte_order, :LLVMByteOrder, [:pointer], :byte_ordering
97
-
158
+ attach_function :byte_order, :LLVMByteOrder, [OpaqueTargetData], :byte_ordering
159
+
98
160
  # Returns the pointer size in bytes for a target.
99
161
  # See the method llvm::TargetData::getPointerSize.
100
162
  #
101
- # @method pointer_size(target_data_ref)
102
- # @param [FFI::Pointer(TargetDataRef)] target_data_ref
163
+ # @method pointer_size(opaque_target_data)
164
+ # @param [OpaqueTargetData] opaque_target_data
103
165
  # @return [Integer]
104
166
  # @scope class
105
- attach_function :pointer_size, :LLVMPointerSize, [:pointer], :uint
106
-
167
+ attach_function :pointer_size, :LLVMPointerSize, [OpaqueTargetData], :uint
168
+
107
169
  # Returns the integer type that is the same size as a pointer on a target.
108
170
  # See the method llvm::TargetData::getIntPtrType.
109
171
  #
110
- # @method int_ptr_type(target_data_ref)
111
- # @param [FFI::Pointer(TargetDataRef)] target_data_ref
172
+ # @method int_ptr_type(opaque_target_data)
173
+ # @param [OpaqueTargetData] opaque_target_data
112
174
  # @return [FFI::Pointer(TypeRef)]
113
175
  # @scope class
114
- attach_function :int_ptr_type, :LLVMIntPtrType, [:pointer], :pointer
115
-
176
+ attach_function :int_ptr_type, :LLVMIntPtrType, [OpaqueTargetData], :pointer
177
+
116
178
  # Computes the size of a type in bytes for a target.
117
179
  # See the method llvm::TargetData::getTypeSizeInBits.
118
180
  #
119
- # @method size_of_type_in_bits(target_data_ref, type_ref)
120
- # @param [FFI::Pointer(TargetDataRef)] target_data_ref
181
+ # @method size_of_type_in_bits(opaque_target_data, type_ref)
182
+ # @param [OpaqueTargetData] opaque_target_data
121
183
  # @param [FFI::Pointer(TypeRef)] type_ref
122
184
  # @return [Integer]
123
185
  # @scope class
124
- attach_function :size_of_type_in_bits, :LLVMSizeOfTypeInBits, [:pointer, :pointer], :ulong_long
125
-
186
+ attach_function :size_of_type_in_bits, :LLVMSizeOfTypeInBits, [OpaqueTargetData, :pointer], :ulong_long
187
+
126
188
  # Computes the storage size of a type in bytes for a target.
127
189
  # See the method llvm::TargetData::getTypeStoreSize.
128
190
  #
129
- # @method store_size_of_type(target_data_ref, type_ref)
130
- # @param [FFI::Pointer(TargetDataRef)] target_data_ref
191
+ # @method store_size_of_type(opaque_target_data, type_ref)
192
+ # @param [OpaqueTargetData] opaque_target_data
131
193
  # @param [FFI::Pointer(TypeRef)] type_ref
132
194
  # @return [Integer]
133
195
  # @scope class
134
- attach_function :store_size_of_type, :LLVMStoreSizeOfType, [:pointer, :pointer], :ulong_long
135
-
196
+ attach_function :store_size_of_type, :LLVMStoreSizeOfType, [OpaqueTargetData, :pointer], :ulong_long
197
+
136
198
  # Computes the ABI size of a type in bytes for a target.
137
199
  # See the method llvm::TargetData::getTypeAllocSize.
138
200
  #
139
- # @method abi_size_of_type(target_data_ref, type_ref)
140
- # @param [FFI::Pointer(TargetDataRef)] target_data_ref
201
+ # @method abi_size_of_type(opaque_target_data, type_ref)
202
+ # @param [OpaqueTargetData] opaque_target_data
141
203
  # @param [FFI::Pointer(TypeRef)] type_ref
142
204
  # @return [Integer]
143
205
  # @scope class
144
- attach_function :abi_size_of_type, :LLVMABISizeOfType, [:pointer, :pointer], :ulong_long
145
-
206
+ attach_function :abi_size_of_type, :LLVMABISizeOfType, [OpaqueTargetData, :pointer], :ulong_long
207
+
146
208
  # Computes the ABI alignment of a type in bytes for a target.
147
209
  # See the method llvm::TargetData::getTypeABISize.
148
210
  #
149
- # @method abi_alignment_of_type(target_data_ref, type_ref)
150
- # @param [FFI::Pointer(TargetDataRef)] target_data_ref
211
+ # @method abi_alignment_of_type(opaque_target_data, type_ref)
212
+ # @param [OpaqueTargetData] opaque_target_data
151
213
  # @param [FFI::Pointer(TypeRef)] type_ref
152
214
  # @return [Integer]
153
215
  # @scope class
154
- attach_function :abi_alignment_of_type, :LLVMABIAlignmentOfType, [:pointer, :pointer], :uint
155
-
216
+ attach_function :abi_alignment_of_type, :LLVMABIAlignmentOfType, [OpaqueTargetData, :pointer], :uint
217
+
156
218
  # Computes the call frame alignment of a type in bytes for a target.
157
219
  # See the method llvm::TargetData::getTypeABISize.
158
220
  #
159
- # @method call_frame_alignment_of_type(target_data_ref, type_ref)
160
- # @param [FFI::Pointer(TargetDataRef)] target_data_ref
221
+ # @method call_frame_alignment_of_type(opaque_target_data, type_ref)
222
+ # @param [OpaqueTargetData] opaque_target_data
161
223
  # @param [FFI::Pointer(TypeRef)] type_ref
162
224
  # @return [Integer]
163
225
  # @scope class
164
- attach_function :call_frame_alignment_of_type, :LLVMCallFrameAlignmentOfType, [:pointer, :pointer], :uint
165
-
226
+ attach_function :call_frame_alignment_of_type, :LLVMCallFrameAlignmentOfType, [OpaqueTargetData, :pointer], :uint
227
+
166
228
  # Computes the preferred alignment of a type in bytes for a target.
167
229
  # See the method llvm::TargetData::getTypeABISize.
168
230
  #
169
- # @method preferred_alignment_of_type(target_data_ref, type_ref)
170
- # @param [FFI::Pointer(TargetDataRef)] target_data_ref
231
+ # @method preferred_alignment_of_type(opaque_target_data, type_ref)
232
+ # @param [OpaqueTargetData] opaque_target_data
171
233
  # @param [FFI::Pointer(TypeRef)] type_ref
172
234
  # @return [Integer]
173
235
  # @scope class
174
- attach_function :preferred_alignment_of_type, :LLVMPreferredAlignmentOfType, [:pointer, :pointer], :uint
175
-
236
+ attach_function :preferred_alignment_of_type, :LLVMPreferredAlignmentOfType, [OpaqueTargetData, :pointer], :uint
237
+
176
238
  # Computes the preferred alignment of a global variable in bytes for a target.
177
239
  # See the method llvm::TargetData::getPreferredAlignment.
178
240
  #
179
- # @method preferred_alignment_of_global(target_data_ref, global_var)
180
- # @param [FFI::Pointer(TargetDataRef)] target_data_ref
241
+ # @method preferred_alignment_of_global(opaque_target_data, global_var)
242
+ # @param [OpaqueTargetData] opaque_target_data
181
243
  # @param [FFI::Pointer(ValueRef)] global_var
182
244
  # @return [Integer]
183
245
  # @scope class
184
- attach_function :preferred_alignment_of_global, :LLVMPreferredAlignmentOfGlobal, [:pointer, :pointer], :uint
185
-
246
+ attach_function :preferred_alignment_of_global, :LLVMPreferredAlignmentOfGlobal, [OpaqueTargetData, :pointer], :uint
247
+
186
248
  # Computes the structure element that contains the byte offset for a target.
187
249
  # See the method llvm::StructLayout::getElementContainingOffset.
188
250
  #
189
- # @method element_at_offset(target_data_ref, struct_ty, offset)
190
- # @param [FFI::Pointer(TargetDataRef)] target_data_ref
251
+ # @method element_at_offset(opaque_target_data, struct_ty, offset)
252
+ # @param [OpaqueTargetData] opaque_target_data
191
253
  # @param [FFI::Pointer(TypeRef)] struct_ty
192
254
  # @param [Integer] offset
193
255
  # @return [Integer]
194
256
  # @scope class
195
- attach_function :element_at_offset, :LLVMElementAtOffset, [:pointer, :pointer, :ulong_long], :uint
196
-
257
+ attach_function :element_at_offset, :LLVMElementAtOffset, [OpaqueTargetData, :pointer, :ulong_long], :uint
258
+
197
259
  # Computes the byte offset of the indexed struct element for a target.
198
260
  # See the method llvm::StructLayout::getElementContainingOffset.
199
261
  #
200
- # @method offset_of_element(target_data_ref, struct_ty, element)
201
- # @param [FFI::Pointer(TargetDataRef)] target_data_ref
262
+ # @method offset_of_element(opaque_target_data, struct_ty, element)
263
+ # @param [OpaqueTargetData] opaque_target_data
202
264
  # @param [FFI::Pointer(TypeRef)] struct_ty
203
265
  # @param [Integer] element
204
266
  # @return [Integer]
205
267
  # @scope class
206
- attach_function :offset_of_element, :LLVMOffsetOfElement, [:pointer, :pointer, :uint], :ulong_long
207
-
268
+ attach_function :offset_of_element, :LLVMOffsetOfElement, [OpaqueTargetData, :pointer, :uint], :ulong_long
269
+
208
270
  # Deallocates a TargetData.
209
271
  # See the destructor llvm::TargetData::~TargetData.
210
272
  #
211
- # @method dispose_target_data(target_data_ref)
212
- # @param [FFI::Pointer(TargetDataRef)] target_data_ref
273
+ # @method dispose_target_data(opaque_target_data)
274
+ # @param [OpaqueTargetData] opaque_target_data
213
275
  # @return [nil]
214
276
  # @scope class
215
- attach_function :dispose_target_data, :LLVMDisposeTargetData, [:pointer], :void
216
-
217
- end
277
+ attach_function :dispose_target_data, :LLVMDisposeTargetData, [OpaqueTargetData], :void
278
+
279
+ end