ruby-llvm 3.3.0 → 3.4.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.
@@ -4,7 +4,7 @@ require 'ffi'
4
4
 
5
5
  module LLVM::C
6
6
  extend FFI::Library
7
- ffi_lib 'LLVM-3.3'
7
+ ffi_lib 'LLVM-3.4'
8
8
 
9
9
  def self.attach_function(name, *_)
10
10
  begin; super; rescue FFI::NotFoundError => e
@@ -43,6 +43,11 @@ module LLVM::C
43
43
  layout :dummy, :char
44
44
  end
45
45
 
46
+ # (Not documented)
47
+ class OpaqueMCJITMemoryManager < FFI::Struct
48
+ layout :dummy, :char
49
+ end
50
+
46
51
  # (Not documented)
47
52
  #
48
53
  # = Fields:
@@ -54,11 +59,14 @@ module LLVM::C
54
59
  # (Integer)
55
60
  # :enable_fast_i_sel ::
56
61
  # (Integer)
62
+ # :mcjmm ::
63
+ # (OpaqueMCJITMemoryManager)
57
64
  class MCJITCompilerOptions < FFI::Struct
58
65
  layout :opt_level, :uint,
59
66
  :code_model, :char,
60
67
  :no_frame_pointer_elim, :int,
61
- :enable_fast_i_sel, :int
68
+ :enable_fast_i_sel, :int,
69
+ :mcjmm, OpaqueMCJITMemoryManager
62
70
  end
63
71
 
64
72
  # ===-- Operations on generic values --------------------------------------===
@@ -369,4 +377,72 @@ module LLVM::C
369
377
  # @scope class
370
378
  attach_function :get_pointer_to_global, :LLVMGetPointerToGlobal, [OpaqueExecutionEngine, :pointer], :pointer
371
379
 
380
+ # ===-- Operations on memory managers -------------------------------------===
381
+ #
382
+ # <em>This entry is only for documentation and no real method.</em>
383
+ #
384
+ # @method _callback_memory_manager_allocate_code_section_callback_(opaque, size, alignment, section_id, section_name)
385
+ # @param [FFI::Pointer(*Void)] opaque
386
+ # @param [Integer] size
387
+ # @param [Integer] alignment
388
+ # @param [Integer] section_id
389
+ # @param [String] section_name
390
+ # @return [Integer]
391
+ # @scope class
392
+ callback :memory_manager_allocate_code_section_callback, [:pointer, :ulong, :uint, :uint, :string], :uchar
393
+
394
+ # (Not documented)
395
+ #
396
+ # <em>This entry is only for documentation and no real method.</em>
397
+ #
398
+ # @method _callback_memory_manager_allocate_data_section_callback_(opaque, size, alignment, section_id, section_name, is_read_only)
399
+ # @param [FFI::Pointer(*Void)] opaque
400
+ # @param [Integer] size
401
+ # @param [Integer] alignment
402
+ # @param [Integer] section_id
403
+ # @param [String] section_name
404
+ # @param [Integer] is_read_only
405
+ # @return [Integer]
406
+ # @scope class
407
+ callback :memory_manager_allocate_data_section_callback, [:pointer, :ulong, :uint, :uint, :string, :int], :uchar
408
+
409
+ # (Not documented)
410
+ #
411
+ # <em>This entry is only for documentation and no real method.</em>
412
+ #
413
+ # @method _callback_memory_manager_finalize_memory_callback_(opaque, err_msg)
414
+ # @param [FFI::Pointer(*Void)] opaque
415
+ # @param [FFI::Pointer(**CharS)] err_msg
416
+ # @return [Integer]
417
+ # @scope class
418
+ callback :memory_manager_finalize_memory_callback, [:pointer, :pointer], :int
419
+
420
+ # Create a simple custom MCJIT memory manager. This memory manager can
421
+ # intercept allocations in a module-oblivious way. This will return NULL
422
+ # if any of the passed functions are NULL.
423
+ #
424
+ # @param Opaque An opaque client object to pass back to the callbacks.
425
+ # @param AllocateCodeSection Allocate a block of memory for executable code.
426
+ # @param AllocateDataSection Allocate a block of memory for data.
427
+ # @param FinalizeMemory Set page permissions and flush cache. Return 0 on
428
+ # success, 1 on error.
429
+ #
430
+ # @method create_simple_mcjit_memory_manager(opaque, allocate_code_section, allocate_data_section, finalize_memory, destroy)
431
+ # @param [FFI::Pointer(*Void)] opaque
432
+ # @param [Proc(_callback_memory_manager_allocate_code_section_callback_)] allocate_code_section
433
+ # @param [Proc(_callback_memory_manager_allocate_data_section_callback_)] allocate_data_section
434
+ # @param [Proc(_callback_memory_manager_finalize_memory_callback_)] finalize_memory
435
+ # @param [FFI::Pointer(MemoryManagerDestroyCallback)] destroy
436
+ # @return [OpaqueMCJITMemoryManager]
437
+ # @scope class
438
+ attach_function :create_simple_mcjit_memory_manager, :LLVMCreateSimpleMCJITMemoryManager, [:pointer, :memory_manager_allocate_code_section_callback, :memory_manager_allocate_data_section_callback, :memory_manager_finalize_memory_callback, :pointer], OpaqueMCJITMemoryManager
439
+
440
+ # (Not documented)
441
+ #
442
+ # @method dispose_mcjit_memory_manager(mm)
443
+ # @param [OpaqueMCJITMemoryManager] mm
444
+ # @return [nil]
445
+ # @scope class
446
+ attach_function :dispose_mcjit_memory_manager, :LLVMDisposeMCJITMemoryManager, [OpaqueMCJITMemoryManager], :void
447
+
372
448
  end
@@ -4,7 +4,7 @@ require 'ffi'
4
4
 
5
5
  module LLVM::C
6
6
  extend FFI::Library
7
- ffi_lib 'LLVM-3.3'
7
+ ffi_lib 'LLVM-3.4'
8
8
 
9
9
  def self.attach_function(name, *_)
10
10
  begin; super; rescue FFI::NotFoundError => e
@@ -19,8 +19,6 @@ module LLVM
19
19
  attach_function :load_library_permanently, :LLVMLoadLibraryPermanently, [:string], :int
20
20
  attach_function :has_unnamed_addr, :LLVMHasUnnamedAddr, [OpaqueValue], :int
21
21
  attach_function :set_unnamed_addr, :LLVMSetUnnamedAddr, [OpaqueValue, :int], :void
22
- attach_function :dump_type, :LLVMDumpType, [OpaqueType], :void
23
- attach_function :print_module, :LLVMPrintModuleToFD, [OpaqueModule, :int, :int, :int], :void
24
22
 
25
23
  attach_function :initialize_all_target_infos,
26
24
  :LLVMInitializeAllTargetInfos, [], :void
@@ -33,8 +31,8 @@ module LLVM
33
31
 
34
32
  attach_function :initialize_native_target,
35
33
  :LLVMInitializeNativeTarget, [], :void
36
- attach_function :initialize_native_target_asm_printer,
37
- :LLVMInitializeNativeTargetAsmPrinter, [], :void
34
+ attach_function :initialize_native_asm_printer,
35
+ :LLVMInitializeNativeAsmPrinter, [], :void
38
36
  end
39
37
  end
40
38
 
@@ -71,7 +71,7 @@ module LLVM
71
71
  def self.init_native(asm_printer=false)
72
72
  Support::C.initialize_native_target
73
73
 
74
- Support::C.initialize_native_target_asm_printer if asm_printer
74
+ Support::C.initialize_native_asm_printer if asm_printer
75
75
  end
76
76
 
77
77
  # Enumerate all initialized targets.
@@ -4,7 +4,7 @@ require 'ffi'
4
4
 
5
5
  module LLVM::C
6
6
  extend FFI::Library
7
- ffi_lib 'LLVM-3.3'
7
+ ffi_lib 'LLVM-3.4'
8
8
 
9
9
  def self.attach_function(name, *_)
10
10
  begin; super; rescue FFI::NotFoundError => e
@@ -40,11 +40,6 @@ module LLVM::C
40
40
  layout :dummy, :char
41
41
  end
42
42
 
43
- # (Not documented)
44
- class StructLayout < FFI::Struct
45
- layout :dummy, :char
46
- end
47
-
48
43
  # (Not documented)
49
44
  #
50
45
  # @method initialize_all_target_infos()
@@ -98,7 +93,7 @@ module LLVM::C
98
93
  attach_function :initialize_all_disassemblers, :LLVMInitializeAllDisassemblers, [], :void
99
94
 
100
95
  # LLVMInitializeNativeTarget - The main program should call this function to
101
- # initialize the native target corresponding to the host. This is useful
96
+ # initialize the native target corresponding to the host. This is useful
102
97
  # for JIT applications to ensure that the target gets linked in correctly.
103
98
  #
104
99
  # @method initialize_native_target()
@@ -106,6 +101,33 @@ module LLVM::C
106
101
  # @scope class
107
102
  attach_function :initialize_native_target, :LLVMInitializeNativeTarget, [], :int
108
103
 
104
+ # LLVMInitializeNativeTargetAsmParser - The main program should call this
105
+ # function to initialize the parser for the native target corresponding to the
106
+ # host.
107
+ #
108
+ # @method initialize_native_asm_parser()
109
+ # @return [Integer]
110
+ # @scope class
111
+ attach_function :initialize_native_asm_parser, :LLVMInitializeNativeAsmParser, [], :int
112
+
113
+ # LLVMInitializeNativeTargetAsmPrinter - The main program should call this
114
+ # function to initialize the printer for the native target corresponding to
115
+ # the host.
116
+ #
117
+ # @method initialize_native_asm_printer()
118
+ # @return [Integer]
119
+ # @scope class
120
+ attach_function :initialize_native_asm_printer, :LLVMInitializeNativeAsmPrinter, [], :int
121
+
122
+ # LLVMInitializeNativeTargetDisassembler - The main program should call this
123
+ # function to initialize the disassembler for the native target corresponding
124
+ # to the host.
125
+ #
126
+ # @method initialize_native_disassembler()
127
+ # @return [Integer]
128
+ # @scope class
129
+ attach_function :initialize_native_disassembler, :LLVMInitializeNativeDisassembler, [], :int
130
+
109
131
  # Creates target data from a target layout string.
110
132
  # See the constructor llvm::DataLayout::DataLayout.
111
133
  #
@@ -119,9 +141,9 @@ module LLVM::C
119
141
  # of the target data.
120
142
  # See the method llvm::PassManagerBase::add.
121
143
  #
122
- # @method add_target_data(opaque_target_data, pass_manager_ref)
123
- # @param [OpaqueTargetData] opaque_target_data
124
- # @param [FFI::Pointer(PassManagerRef)] pass_manager_ref
144
+ # @method add_target_data(td, pm)
145
+ # @param [OpaqueTargetData] td
146
+ # @param [FFI::Pointer(PassManagerRef)] pm
125
147
  # @return [nil]
126
148
  # @scope class
127
149
  attach_function :add_target_data, :LLVMAddTargetData, [OpaqueTargetData, :pointer], :void
@@ -130,9 +152,9 @@ module LLVM::C
130
152
  # ownership of the target library info.
131
153
  # See the method llvm::PassManagerBase::add.
132
154
  #
133
- # @method add_target_library_info(opaque_target_library_infot_data, pass_manager_ref)
134
- # @param [OpaqueTargetLibraryInfotData] opaque_target_library_infot_data
135
- # @param [FFI::Pointer(PassManagerRef)] pass_manager_ref
155
+ # @method add_target_library_info(tli, pm)
156
+ # @param [OpaqueTargetLibraryInfotData] tli
157
+ # @param [FFI::Pointer(PassManagerRef)] pm
136
158
  # @return [nil]
137
159
  # @scope class
138
160
  attach_function :add_target_library_info, :LLVMAddTargetLibraryInfo, [OpaqueTargetLibraryInfotData, :pointer], :void
@@ -141,8 +163,8 @@ module LLVM::C
141
163
  # with LLVMDisposeMessage.
142
164
  # See the constructor llvm::DataLayout::DataLayout.
143
165
  #
144
- # @method copy_string_rep_of_target_data(opaque_target_data)
145
- # @param [OpaqueTargetData] opaque_target_data
166
+ # @method copy_string_rep_of_target_data(td)
167
+ # @param [OpaqueTargetData] td
146
168
  # @return [String]
147
169
  # @scope class
148
170
  attach_function :copy_string_rep_of_target_data, :LLVMCopyStringRepOfTargetData, [OpaqueTargetData], :string
@@ -151,8 +173,8 @@ module LLVM::C
151
173
  # LLVMLittleEndian.
152
174
  # See the method llvm::DataLayout::isLittleEndian.
153
175
  #
154
- # @method byte_order(opaque_target_data)
155
- # @param [OpaqueTargetData] opaque_target_data
176
+ # @method byte_order(td)
177
+ # @param [OpaqueTargetData] td
156
178
  # @return [Symbol from _enum_byte_ordering_]
157
179
  # @scope class
158
180
  attach_function :byte_order, :LLVMByteOrder, [OpaqueTargetData], :byte_ordering
@@ -160,8 +182,8 @@ module LLVM::C
160
182
  # Returns the pointer size in bytes for a target.
161
183
  # See the method llvm::DataLayout::getPointerSize.
162
184
  #
163
- # @method pointer_size(opaque_target_data)
164
- # @param [OpaqueTargetData] opaque_target_data
185
+ # @method pointer_size(td)
186
+ # @param [OpaqueTargetData] td
165
187
  # @return [Integer]
166
188
  # @scope class
167
189
  attach_function :pointer_size, :LLVMPointerSize, [OpaqueTargetData], :uint
@@ -170,8 +192,8 @@ module LLVM::C
170
192
  # address space.
171
193
  # See the method llvm::DataLayout::getPointerSize.
172
194
  #
173
- # @method pointer_size_for_as(opaque_target_data, as)
174
- # @param [OpaqueTargetData] opaque_target_data
195
+ # @method pointer_size_for_as(td, as)
196
+ # @param [OpaqueTargetData] td
175
197
  # @param [Integer] as
176
198
  # @return [Integer]
177
199
  # @scope class
@@ -180,8 +202,8 @@ module LLVM::C
180
202
  # Returns the integer type that is the same size as a pointer on a target.
181
203
  # See the method llvm::DataLayout::getIntPtrType.
182
204
  #
183
- # @method int_ptr_type(opaque_target_data)
184
- # @param [OpaqueTargetData] opaque_target_data
205
+ # @method int_ptr_type(td)
206
+ # @param [OpaqueTargetData] td
185
207
  # @return [FFI::Pointer(TypeRef)]
186
208
  # @scope class
187
209
  attach_function :int_ptr_type, :LLVMIntPtrType, [OpaqueTargetData], :pointer
@@ -190,19 +212,41 @@ module LLVM::C
190
212
  # This version allows the address space to be specified.
191
213
  # See the method llvm::DataLayout::getIntPtrType.
192
214
  #
193
- # @method int_ptr_type_for_as(opaque_target_data, as)
194
- # @param [OpaqueTargetData] opaque_target_data
215
+ # @method int_ptr_type_for_as(td, as)
216
+ # @param [OpaqueTargetData] td
195
217
  # @param [Integer] as
196
218
  # @return [FFI::Pointer(TypeRef)]
197
219
  # @scope class
198
220
  attach_function :int_ptr_type_for_as, :LLVMIntPtrTypeForAS, [OpaqueTargetData, :uint], :pointer
199
221
 
222
+ # Returns the integer type that is the same size as a pointer on a target.
223
+ # See the method llvm::DataLayout::getIntPtrType.
224
+ #
225
+ # @method int_ptr_type_in_context(c, td)
226
+ # @param [FFI::Pointer(ContextRef)] c
227
+ # @param [OpaqueTargetData] td
228
+ # @return [FFI::Pointer(TypeRef)]
229
+ # @scope class
230
+ attach_function :int_ptr_type_in_context, :LLVMIntPtrTypeInContext, [:pointer, OpaqueTargetData], :pointer
231
+
232
+ # Returns the integer type that is the same size as a pointer on a target.
233
+ # This version allows the address space to be specified.
234
+ # See the method llvm::DataLayout::getIntPtrType.
235
+ #
236
+ # @method int_ptr_type_for_as_in_context(c, td, as)
237
+ # @param [FFI::Pointer(ContextRef)] c
238
+ # @param [OpaqueTargetData] td
239
+ # @param [Integer] as
240
+ # @return [FFI::Pointer(TypeRef)]
241
+ # @scope class
242
+ attach_function :int_ptr_type_for_as_in_context, :LLVMIntPtrTypeForASInContext, [:pointer, OpaqueTargetData, :uint], :pointer
243
+
200
244
  # Computes the size of a type in bytes for a target.
201
245
  # See the method llvm::DataLayout::getTypeSizeInBits.
202
246
  #
203
- # @method size_of_type_in_bits(opaque_target_data, type_ref)
204
- # @param [OpaqueTargetData] opaque_target_data
205
- # @param [FFI::Pointer(TypeRef)] type_ref
247
+ # @method size_of_type_in_bits(td, ty)
248
+ # @param [OpaqueTargetData] td
249
+ # @param [FFI::Pointer(TypeRef)] ty
206
250
  # @return [Integer]
207
251
  # @scope class
208
252
  attach_function :size_of_type_in_bits, :LLVMSizeOfTypeInBits, [OpaqueTargetData, :pointer], :ulong_long
@@ -210,9 +254,9 @@ module LLVM::C
210
254
  # Computes the storage size of a type in bytes for a target.
211
255
  # See the method llvm::DataLayout::getTypeStoreSize.
212
256
  #
213
- # @method store_size_of_type(opaque_target_data, type_ref)
214
- # @param [OpaqueTargetData] opaque_target_data
215
- # @param [FFI::Pointer(TypeRef)] type_ref
257
+ # @method store_size_of_type(td, ty)
258
+ # @param [OpaqueTargetData] td
259
+ # @param [FFI::Pointer(TypeRef)] ty
216
260
  # @return [Integer]
217
261
  # @scope class
218
262
  attach_function :store_size_of_type, :LLVMStoreSizeOfType, [OpaqueTargetData, :pointer], :ulong_long
@@ -220,9 +264,9 @@ module LLVM::C
220
264
  # Computes the ABI size of a type in bytes for a target.
221
265
  # See the method llvm::DataLayout::getTypeAllocSize.
222
266
  #
223
- # @method abi_size_of_type(opaque_target_data, type_ref)
224
- # @param [OpaqueTargetData] opaque_target_data
225
- # @param [FFI::Pointer(TypeRef)] type_ref
267
+ # @method abi_size_of_type(td, ty)
268
+ # @param [OpaqueTargetData] td
269
+ # @param [FFI::Pointer(TypeRef)] ty
226
270
  # @return [Integer]
227
271
  # @scope class
228
272
  attach_function :abi_size_of_type, :LLVMABISizeOfType, [OpaqueTargetData, :pointer], :ulong_long
@@ -230,9 +274,9 @@ module LLVM::C
230
274
  # Computes the ABI alignment of a type in bytes for a target.
231
275
  # See the method llvm::DataLayout::getTypeABISize.
232
276
  #
233
- # @method abi_alignment_of_type(opaque_target_data, type_ref)
234
- # @param [OpaqueTargetData] opaque_target_data
235
- # @param [FFI::Pointer(TypeRef)] type_ref
277
+ # @method abi_alignment_of_type(td, ty)
278
+ # @param [OpaqueTargetData] td
279
+ # @param [FFI::Pointer(TypeRef)] ty
236
280
  # @return [Integer]
237
281
  # @scope class
238
282
  attach_function :abi_alignment_of_type, :LLVMABIAlignmentOfType, [OpaqueTargetData, :pointer], :uint
@@ -240,9 +284,9 @@ module LLVM::C
240
284
  # Computes the call frame alignment of a type in bytes for a target.
241
285
  # See the method llvm::DataLayout::getTypeABISize.
242
286
  #
243
- # @method call_frame_alignment_of_type(opaque_target_data, type_ref)
244
- # @param [OpaqueTargetData] opaque_target_data
245
- # @param [FFI::Pointer(TypeRef)] type_ref
287
+ # @method call_frame_alignment_of_type(td, ty)
288
+ # @param [OpaqueTargetData] td
289
+ # @param [FFI::Pointer(TypeRef)] ty
246
290
  # @return [Integer]
247
291
  # @scope class
248
292
  attach_function :call_frame_alignment_of_type, :LLVMCallFrameAlignmentOfType, [OpaqueTargetData, :pointer], :uint
@@ -250,9 +294,9 @@ module LLVM::C
250
294
  # Computes the preferred alignment of a type in bytes for a target.
251
295
  # See the method llvm::DataLayout::getTypeABISize.
252
296
  #
253
- # @method preferred_alignment_of_type(opaque_target_data, type_ref)
254
- # @param [OpaqueTargetData] opaque_target_data
255
- # @param [FFI::Pointer(TypeRef)] type_ref
297
+ # @method preferred_alignment_of_type(td, ty)
298
+ # @param [OpaqueTargetData] td
299
+ # @param [FFI::Pointer(TypeRef)] ty
256
300
  # @return [Integer]
257
301
  # @scope class
258
302
  attach_function :preferred_alignment_of_type, :LLVMPreferredAlignmentOfType, [OpaqueTargetData, :pointer], :uint
@@ -260,8 +304,8 @@ module LLVM::C
260
304
  # Computes the preferred alignment of a global variable in bytes for a target.
261
305
  # See the method llvm::DataLayout::getPreferredAlignment.
262
306
  #
263
- # @method preferred_alignment_of_global(opaque_target_data, global_var)
264
- # @param [OpaqueTargetData] opaque_target_data
307
+ # @method preferred_alignment_of_global(td, global_var)
308
+ # @param [OpaqueTargetData] td
265
309
  # @param [FFI::Pointer(ValueRef)] global_var
266
310
  # @return [Integer]
267
311
  # @scope class
@@ -270,8 +314,8 @@ module LLVM::C
270
314
  # Computes the structure element that contains the byte offset for a target.
271
315
  # See the method llvm::StructLayout::getElementContainingOffset.
272
316
  #
273
- # @method element_at_offset(opaque_target_data, struct_ty, offset)
274
- # @param [OpaqueTargetData] opaque_target_data
317
+ # @method element_at_offset(td, struct_ty, offset)
318
+ # @param [OpaqueTargetData] td
275
319
  # @param [FFI::Pointer(TypeRef)] struct_ty
276
320
  # @param [Integer] offset
277
321
  # @return [Integer]
@@ -281,8 +325,8 @@ module LLVM::C
281
325
  # Computes the byte offset of the indexed struct element for a target.
282
326
  # See the method llvm::StructLayout::getElementContainingOffset.
283
327
  #
284
- # @method offset_of_element(opaque_target_data, struct_ty, element)
285
- # @param [OpaqueTargetData] opaque_target_data
328
+ # @method offset_of_element(td, struct_ty, element)
329
+ # @param [OpaqueTargetData] td
286
330
  # @param [FFI::Pointer(TypeRef)] struct_ty
287
331
  # @param [Integer] element
288
332
  # @return [Integer]
@@ -292,8 +336,8 @@ module LLVM::C
292
336
  # Deallocates a TargetData.
293
337
  # See the destructor llvm::DataLayout::~DataLayout.
294
338
  #
295
- # @method dispose_target_data(opaque_target_data)
296
- # @param [OpaqueTargetData] opaque_target_data
339
+ # @method dispose_target_data(td)
340
+ # @param [OpaqueTargetData] td
297
341
  # @return [nil]
298
342
  # @scope class
299
343
  attach_function :dispose_target_data, :LLVMDisposeTargetData, [OpaqueTargetData], :void
@@ -434,6 +478,27 @@ module LLVM::C
434
478
  # @scope class
435
479
  attach_function :get_next_target, :LLVMGetNextTarget, [Target], Target
436
480
 
481
+ # Finds the target corresponding to the given name and stores it in \p T.
482
+ # Returns 0 on success.
483
+ #
484
+ # @method get_target_from_name(name)
485
+ # @param [String] name
486
+ # @return [Target]
487
+ # @scope class
488
+ attach_function :get_target_from_name, :LLVMGetTargetFromName, [:string], Target
489
+
490
+ # Finds the target corresponding to the given triple and stores it in \p T.
491
+ # Returns 0 on success. Optionally returns any error in ErrorMessage.
492
+ # Use LLVMDisposeMessage to dispose the message.
493
+ #
494
+ # @method get_target_from_triple(triple, t, error_message)
495
+ # @param [String] triple
496
+ # @param [FFI::Pointer(*TargetRef)] t
497
+ # @param [FFI::Pointer(**CharS)] error_message
498
+ # @return [Integer]
499
+ # @scope class
500
+ attach_function :get_target_from_triple, :LLVMGetTargetFromTriple, [:string, :pointer, :pointer], :int
501
+
437
502
  # Returns the name of a target. See llvm::Target::getName
438
503
  #
439
504
  # @method get_target_name(t)
@@ -543,6 +608,15 @@ module LLVM::C
543
608
  # @scope class
544
609
  attach_function :get_target_machine_data, :LLVMGetTargetMachineData, [OpaqueTargetMachine], OpaqueTargetData
545
610
 
611
+ # Set the target machine's ASM verbosity.
612
+ #
613
+ # @method set_target_machine_asm_verbosity(t, verbose_asm)
614
+ # @param [OpaqueTargetMachine] t
615
+ # @param [Integer] verbose_asm
616
+ # @return [nil]
617
+ # @scope class
618
+ attach_function :set_target_machine_asm_verbosity, :LLVMSetTargetMachineAsmVerbosity, [OpaqueTargetMachine, :int], :void
619
+
546
620
  # Emits an asm or object file for the given module to the filename. This
547
621
  # wraps several c++ only classes (among them a file stream). Returns any
548
622
  # error in ErrorMessage. Use LLVMDisposeMessage to dispose the message.
@@ -569,4 +643,12 @@ module LLVM::C
569
643
  # @scope class
570
644
  attach_function :target_machine_emit_to_memory_buffer, :LLVMTargetMachineEmitToMemoryBuffer, [OpaqueTargetMachine, :pointer, :code_gen_file_type, :pointer, :pointer], :int
571
645
 
646
+ # Get a triple for the host machine as a string. The result needs to be
647
+ # disposed with LLVMDisposeMessage.
648
+ #
649
+ # @method get_default_target_triple()
650
+ # @return [String]
651
+ # @scope class
652
+ attach_function :get_default_target_triple, :LLVMGetDefaultTargetTriple, [], :string
653
+
572
654
  end