1use super::*;
4
5extern "C" {
7 pub fn LLVMShutdown();
8 pub fn LLVMCreateMessage(Message: *const ::libc::c_char) -> *mut ::libc::c_char;
9 pub fn LLVMDisposeMessage(Message: *mut ::libc::c_char);
10}
11
12extern "C" {
14 pub fn LLVMContextCreate() -> LLVMContextRef;
15 pub fn LLVMGetGlobalContext() -> LLVMContextRef;
16 pub fn LLVMContextSetDiagnosticHandler(
17 C: LLVMContextRef,
18 Handler: LLVMDiagnosticHandler,
19 DiagnosticContext: *mut ::libc::c_void,
20 );
21 pub fn LLVMContextGetDiagnosticHandler(C: LLVMContextRef) -> LLVMDiagnosticHandler;
23 pub fn LLVMContextGetDiagnosticContext(C: LLVMContextRef) -> *mut ::libc::c_void;
25 pub fn LLVMContextSetYieldCallback(
26 C: LLVMContextRef,
27 Callback: LLVMYieldCallback,
28 OpaqueHandle: *mut ::libc::c_void,
29 );
30 pub fn LLVMContextShouldDiscardValueNames(C: LLVMContextRef) -> LLVMBool;
31 pub fn LLVMContextSetDiscardValueNames(C: LLVMContextRef, Discard: LLVMBool);
32 pub fn LLVMContextDispose(C: LLVMContextRef);
33 pub fn LLVMGetDiagInfoDescription(DI: LLVMDiagnosticInfoRef) -> *mut ::libc::c_char;
34 pub fn LLVMGetDiagInfoSeverity(DI: LLVMDiagnosticInfoRef) -> LLVMDiagnosticSeverity;
35 pub fn LLVMGetMDKindIDInContext(
36 C: LLVMContextRef,
37 Name: *const ::libc::c_char,
38 SLen: ::libc::c_uint,
39 ) -> ::libc::c_uint;
40 pub fn LLVMGetMDKindID(Name: *const ::libc::c_char, SLen: ::libc::c_uint) -> ::libc::c_uint;
41
42 pub fn LLVMGetEnumAttributeKindForName(
52 Name: *const ::libc::c_char,
53 SLen: ::libc::size_t,
54 ) -> ::libc::c_uint;
55 pub fn LLVMGetLastEnumAttributeKind() -> ::libc::c_uint;
56
57 pub fn LLVMCreateEnumAttribute(
59 C: LLVMContextRef,
60 KindID: ::libc::c_uint,
61 Val: u64,
62 ) -> LLVMAttributeRef;
63 pub fn LLVMGetEnumAttributeKind(A: LLVMAttributeRef) -> ::libc::c_uint;
65 pub fn LLVMGetEnumAttributeValue(A: LLVMAttributeRef) -> u64;
69 pub fn LLVMCreateStringAttribute(
71 C: LLVMContextRef,
72 K: *const ::libc::c_char,
73 KLength: ::libc::c_uint,
74 V: *const ::libc::c_char,
75 VLength: ::libc::c_uint,
76 ) -> LLVMAttributeRef;
77 pub fn LLVMGetStringAttributeKind(
79 A: LLVMAttributeRef,
80 Length: *mut ::libc::c_uint,
81 ) -> *const ::libc::c_char;
82 pub fn LLVMGetStringAttributeValue(
84 A: LLVMAttributeRef,
85 Length: *mut ::libc::c_uint,
86 ) -> *const ::libc::c_char;
87 pub fn LLVMIsEnumAttribute(A: LLVMAttributeRef) -> LLVMBool;
88 pub fn LLVMIsStringAttribute(A: LLVMAttributeRef) -> LLVMBool;
89}
90
91extern "C" {
93 pub fn LLVMModuleCreateWithName(ModuleID: *const ::libc::c_char) -> LLVMModuleRef;
94 pub fn LLVMModuleCreateWithNameInContext(
95 ModuleID: *const ::libc::c_char,
96 C: LLVMContextRef,
97 ) -> LLVMModuleRef;
98 pub fn LLVMCloneModule(M: LLVMModuleRef) -> LLVMModuleRef;
99 pub fn LLVMDisposeModule(M: LLVMModuleRef);
100 pub fn LLVMGetModuleIdentifier(
104 M: LLVMModuleRef,
105 Len: *mut ::libc::size_t,
106 ) -> *const ::libc::c_char;
107 pub fn LLVMSetModuleIdentifier(
111 M: LLVMModuleRef,
112 Ident: *const ::libc::c_char,
113 Len: ::libc::size_t,
114 );
115
116 pub fn LLVMGetSourceFileName(
120 M: LLVMModuleRef,
121 Len: *mut ::libc::size_t,
122 ) -> *const ::libc::c_char;
123 pub fn LLVMSetSourceFileName(
125 M: LLVMModuleRef,
126 Name: *const ::libc::c_char,
127 Len: ::libc::size_t,
128 );
129
130 #[deprecated(since = "3.9", note = "Confusingly named. Use LLVMGetDataLayoutStr.")]
131 pub fn LLVMGetDataLayout(M: LLVMModuleRef) -> *const ::libc::c_char;
132 pub fn LLVMGetDataLayoutStr(M: LLVMModuleRef) -> *const ::libc::c_char;
134 pub fn LLVMSetDataLayout(M: LLVMModuleRef, DataLayoutStr: *const ::libc::c_char);
135 pub fn LLVMGetTarget(M: LLVMModuleRef) -> *const ::libc::c_char;
136 pub fn LLVMSetTarget(M: LLVMModuleRef, Triple: *const ::libc::c_char);
137
138 pub fn LLVMCopyModuleFlagsMetadata(
140 M: LLVMModuleRef,
141 Len: *mut ::libc::size_t,
142 ) -> *mut LLVMModuleFlagEntry;
143 pub fn LLVMDisposeModuleFlagsMetadata(Entries: *mut LLVMModuleFlagEntry);
145 pub fn LLVMModuleFlagEntriesGetFlagBehavior(
147 Entries: *mut LLVMModuleFlagEntry,
148 Index: ::libc::c_uint,
149 ) -> LLVMModuleFlagBehavior;
150 pub fn LLVMModuleFlagEntriesGetKey(
152 Entries: *mut LLVMModuleFlagEntry,
153 Index: ::libc::c_uint,
154 Len: *mut ::libc::size_t,
155 ) -> *const ::libc::c_char;
156 pub fn LLVMModuleFlagEntriesGetMetadata(
158 Entries: *mut LLVMModuleFlagEntry,
159 Index: ::libc::c_uint,
160 ) -> LLVMMetadataRef;
161 pub fn LLVMGetModuleFlag(
163 M: LLVMModuleRef,
164 Key: *const ::libc::c_char,
165 KeyLen: ::libc::size_t,
166 ) -> LLVMMetadataRef;
167 pub fn LLVMAddModuleFlag(
169 M: LLVMModuleRef,
170 Behavior: LLVMModuleFlagBehavior,
171 Key: *const ::libc::c_char,
172 KeyLen: ::libc::size_t,
173 Val: LLVMMetadataRef,
174 );
175
176 pub fn LLVMDumpModule(M: LLVMModuleRef);
177 pub fn LLVMPrintModuleToFile(
178 M: LLVMModuleRef,
179 Filename: *const ::libc::c_char,
180 ErrorMessage: *mut *mut ::libc::c_char,
181 ) -> LLVMBool;
182 pub fn LLVMPrintModuleToString(M: LLVMModuleRef) -> *mut ::libc::c_char;
183
184 pub fn LLVMGetModuleInlineAsm(
185 M: LLVMModuleRef,
186 Len: *mut ::libc::size_t,
187 ) -> *const ::libc::c_char;
188 #[deprecated(since = "7.0", note = "Use LLVMSetModuleInlineAsm2 instead")]
189 pub fn LLVMSetModuleInlineAsm(M: LLVMModuleRef, Asm: *const ::libc::c_char);
190 pub fn LLVMSetModuleInlineAsm2(
191 M: LLVMModuleRef,
192 Asm: *const ::libc::c_char,
193 Len: ::libc::size_t,
194 );
195 pub fn LLVMAppendModuleInlineAsm(
196 M: LLVMModuleRef,
197 Asm: *const ::libc::c_char,
198 Len: ::libc::size_t,
199 );
200 pub fn LLVMGetInlineAsm(
201 Ty: LLVMTypeRef,
202 AsmString: *mut ::libc::c_char,
203 AsmStringSize: ::libc::size_t,
204 Constraints: *mut ::libc::c_char,
205 ConstraintsSize: ::libc::size_t,
206 HasSideEffects: LLVMBool,
207 IsAlignStack: LLVMBool,
208 Dialect: LLVMInlineAsmDialect,
209 ) -> LLVMValueRef;
210
211 pub fn LLVMGetModuleContext(M: LLVMModuleRef) -> LLVMContextRef;
212 pub fn LLVMGetTypeByName(M: LLVMModuleRef, Name: *const ::libc::c_char) -> LLVMTypeRef;
213 pub fn LLVMGetFirstNamedMetadata(M: LLVMModuleRef) -> LLVMNamedMDNodeRef;
214 pub fn LLVMGetLastNamedMetadata(M: LLVMModuleRef) -> LLVMNamedMDNodeRef;
215 pub fn LLVMGetNextNamedMetadata(NamedMDNode: LLVMNamedMDNodeRef) -> LLVMNamedMDNodeRef;
216 pub fn LLVMGetPreviousNamedMetadata(NamedMDNode: LLVMNamedMDNodeRef) -> LLVMNamedMDNodeRef;
217 pub fn LLVMGetNamedMetadata(
218 M: LLVMModuleRef,
219 Name: *const ::libc::c_char,
220 NameLen: ::libc::size_t,
221 ) -> LLVMNamedMDNodeRef;
222 pub fn LLVMGetOrInsertNamedMetadata(
223 M: LLVMModuleRef,
224 Name: *const ::libc::c_char,
225 NameLen: ::libc::size_t,
226 ) -> LLVMNamedMDNodeRef;
227 pub fn LLVMGetNamedMetadataName(
228 NamedMD: LLVMNamedMDNodeRef,
229 NameLen: *const ::libc::size_t,
230 ) -> *const ::libc::c_char;
231 pub fn LLVMGetNamedMetadataNumOperands(
232 M: LLVMModuleRef,
233 name: *const ::libc::c_char,
234 ) -> ::libc::c_uint;
235 pub fn LLVMGetNamedMetadataOperands(
236 M: LLVMModuleRef,
237 name: *const ::libc::c_char,
238 Dest: *mut LLVMValueRef,
239 );
240 pub fn LLVMAddNamedMetadataOperand(
241 M: LLVMModuleRef,
242 name: *const ::libc::c_char,
243 Val: LLVMValueRef,
244 );
245 pub fn LLVMGetDebugLocDirectory(
246 Val: LLVMValueRef,
247 Length: *mut ::libc::c_uint,
248 ) -> *const ::libc::c_char;
249 pub fn LLVMGetDebugLocFilename(
250 Val: LLVMValueRef,
251 Length: *mut ::libc::c_uint,
252 ) -> *const ::libc::c_char;
253 pub fn LLVMGetDebugLocLine(Val: LLVMValueRef) -> ::libc::c_uint;
254 pub fn LLVMGetDebugLocColumn(Val: LLVMValueRef) -> ::libc::c_uint;
255 pub fn LLVMAddFunction(
256 M: LLVMModuleRef,
257 Name: *const ::libc::c_char,
258 FunctionTy: LLVMTypeRef,
259 ) -> LLVMValueRef;
260 pub fn LLVMGetNamedFunction(M: LLVMModuleRef, Name: *const ::libc::c_char) -> LLVMValueRef;
261 pub fn LLVMGetFirstFunction(M: LLVMModuleRef) -> LLVMValueRef;
262 pub fn LLVMGetLastFunction(M: LLVMModuleRef) -> LLVMValueRef;
263 pub fn LLVMGetNextFunction(Fn: LLVMValueRef) -> LLVMValueRef;
264 pub fn LLVMGetPreviousFunction(Fn: LLVMValueRef) -> LLVMValueRef;
265}
266
267extern "C" {
269 pub fn LLVMGetTypeKind(Ty: LLVMTypeRef) -> LLVMTypeKind;
270 pub fn LLVMTypeIsSized(Ty: LLVMTypeRef) -> LLVMBool;
271 pub fn LLVMGetTypeContext(Ty: LLVMTypeRef) -> LLVMContextRef;
272 pub fn LLVMDumpType(Val: LLVMTypeRef);
273 pub fn LLVMPrintTypeToString(Val: LLVMTypeRef) -> *mut ::libc::c_char;
274
275 pub fn LLVMInt1TypeInContext(C: LLVMContextRef) -> LLVMTypeRef;
277 pub fn LLVMInt8TypeInContext(C: LLVMContextRef) -> LLVMTypeRef;
278 pub fn LLVMInt16TypeInContext(C: LLVMContextRef) -> LLVMTypeRef;
279 pub fn LLVMInt32TypeInContext(C: LLVMContextRef) -> LLVMTypeRef;
280 pub fn LLVMInt64TypeInContext(C: LLVMContextRef) -> LLVMTypeRef;
281 pub fn LLVMInt128TypeInContext(C: LLVMContextRef) -> LLVMTypeRef;
282 pub fn LLVMIntTypeInContext(C: LLVMContextRef, NumBits: ::libc::c_uint) -> LLVMTypeRef;
283 pub fn LLVMInt1Type() -> LLVMTypeRef;
284 pub fn LLVMInt8Type() -> LLVMTypeRef;
285 pub fn LLVMInt16Type() -> LLVMTypeRef;
286 pub fn LLVMInt32Type() -> LLVMTypeRef;
287 pub fn LLVMInt64Type() -> LLVMTypeRef;
288 pub fn LLVMInt128Type() -> LLVMTypeRef;
289 pub fn LLVMIntType(NumBits: ::libc::c_uint) -> LLVMTypeRef;
290 pub fn LLVMGetIntTypeWidth(IntegerTy: LLVMTypeRef) -> ::libc::c_uint;
291
292 pub fn LLVMHalfTypeInContext(C: LLVMContextRef) -> LLVMTypeRef;
294 pub fn LLVMFloatTypeInContext(C: LLVMContextRef) -> LLVMTypeRef;
295 pub fn LLVMDoubleTypeInContext(C: LLVMContextRef) -> LLVMTypeRef;
296 pub fn LLVMX86FP80TypeInContext(C: LLVMContextRef) -> LLVMTypeRef;
297 pub fn LLVMFP128TypeInContext(C: LLVMContextRef) -> LLVMTypeRef;
298 pub fn LLVMPPCFP128TypeInContext(C: LLVMContextRef) -> LLVMTypeRef;
299 pub fn LLVMHalfType() -> LLVMTypeRef;
300 pub fn LLVMFloatType() -> LLVMTypeRef;
301 pub fn LLVMDoubleType() -> LLVMTypeRef;
302 pub fn LLVMX86FP80Type() -> LLVMTypeRef;
303 pub fn LLVMFP128Type() -> LLVMTypeRef;
304 pub fn LLVMPPCFP128Type() -> LLVMTypeRef;
305
306 pub fn LLVMFunctionType(
308 ReturnType: LLVMTypeRef,
309 ParamTypes: *mut LLVMTypeRef,
310 ParamCount: ::libc::c_uint,
311 IsVarArg: LLVMBool,
312 ) -> LLVMTypeRef;
313 pub fn LLVMIsFunctionVarArg(FunctionTy: LLVMTypeRef) -> LLVMBool;
314 pub fn LLVMGetReturnType(FunctionTy: LLVMTypeRef) -> LLVMTypeRef;
315 pub fn LLVMCountParamTypes(FunctionTy: LLVMTypeRef) -> ::libc::c_uint;
316 pub fn LLVMGetParamTypes(FunctionTy: LLVMTypeRef, Dest: *mut LLVMTypeRef);
317
318 pub fn LLVMStructTypeInContext(
320 C: LLVMContextRef,
321 ElementTypes: *mut LLVMTypeRef,
322 ElementCount: ::libc::c_uint,
323 Packed: LLVMBool,
324 ) -> LLVMTypeRef;
325 pub fn LLVMStructType(
326 ElementTypes: *mut LLVMTypeRef,
327 ElementCount: ::libc::c_uint,
328 Packed: LLVMBool,
329 ) -> LLVMTypeRef;
330 pub fn LLVMStructCreateNamed(C: LLVMContextRef, Name: *const ::libc::c_char) -> LLVMTypeRef;
331 pub fn LLVMGetStructName(Ty: LLVMTypeRef) -> *const ::libc::c_char;
332 pub fn LLVMStructSetBody(
333 StructTy: LLVMTypeRef,
334 ElementTypes: *mut LLVMTypeRef,
335 ElementCount: ::libc::c_uint,
336 Packed: LLVMBool,
337 );
338 pub fn LLVMCountStructElementTypes(StructTy: LLVMTypeRef) -> ::libc::c_uint;
339 pub fn LLVMGetStructElementTypes(StructTy: LLVMTypeRef, Dest: *mut LLVMTypeRef);
340 pub fn LLVMStructGetTypeAtIndex(StructTy: LLVMTypeRef, i: ::libc::c_uint) -> LLVMTypeRef;
344 pub fn LLVMIsPackedStruct(StructTy: LLVMTypeRef) -> LLVMBool;
346 pub fn LLVMIsOpaqueStruct(StructTy: LLVMTypeRef) -> LLVMBool;
347 pub fn LLVMIsLiteralStruct(StructTy: LLVMTypeRef) -> LLVMBool;
348
349 pub fn LLVMGetElementType(Ty: LLVMTypeRef) -> LLVMTypeRef;
351 pub fn LLVMGetSubtypes(Tp: LLVMTypeRef, Arr: *mut LLVMTypeRef);
353 pub fn LLVMGetNumContainedTypes(Tp: LLVMTypeRef) -> ::libc::c_uint;
355 pub fn LLVMArrayType(ElementType: LLVMTypeRef, ElementCount: ::libc::c_uint) -> LLVMTypeRef;
356 pub fn LLVMGetArrayLength(ArrayTy: LLVMTypeRef) -> ::libc::c_uint;
357 pub fn LLVMPointerType(ElementType: LLVMTypeRef, AddressSpace: ::libc::c_uint) -> LLVMTypeRef;
358 pub fn LLVMGetPointerAddressSpace(PointerTy: LLVMTypeRef) -> ::libc::c_uint;
359 pub fn LLVMVectorType(ElementType: LLVMTypeRef, ElementCount: ::libc::c_uint) -> LLVMTypeRef;
360 pub fn LLVMGetVectorSize(VectorTy: LLVMTypeRef) -> ::libc::c_uint;
361
362 pub fn LLVMVoidTypeInContext(C: LLVMContextRef) -> LLVMTypeRef;
364 pub fn LLVMLabelTypeInContext(C: LLVMContextRef) -> LLVMTypeRef;
365 pub fn LLVMX86MMXTypeInContext(C: LLVMContextRef) -> LLVMTypeRef;
366 pub fn LLVMTokenTypeInContext(C: LLVMContextRef) -> LLVMTypeRef;
367 pub fn LLVMMetadataTypeInContext(C: LLVMContextRef) -> LLVMTypeRef;
368 pub fn LLVMVoidType() -> LLVMTypeRef;
369 pub fn LLVMLabelType() -> LLVMTypeRef;
370 pub fn LLVMX86MMXType() -> LLVMTypeRef;
371}
372
373extern "C" {
375 pub fn LLVMGetValueKind(Val: LLVMValueRef) -> LLVMValueKind;
378 pub fn LLVMTypeOf(Val: LLVMValueRef) -> LLVMTypeRef;
379
380 #[deprecated(since = "7.0", note = "Use LLVMGetValueName2 instead")]
381 pub fn LLVMGetValueName(Val: LLVMValueRef) -> *const ::libc::c_char;
382 pub fn LLVMGetValueName2(
383 Val: LLVMValueRef,
384 Length: *mut ::libc::size_t,
385 ) -> *const ::libc::c_char;
386 #[deprecated(since = "7.0", note = "Use LLVMSetValueName2 instead")]
387 pub fn LLVMSetValueName(Val: LLVMValueRef, Name: *const ::libc::c_char);
388 pub fn LLVMSetValueName2(
389 Val: LLVMValueRef,
390 Name: *const ::libc::c_char,
391 NameLen: ::libc::size_t,
392 );
393
394 pub fn LLVMDumpValue(Val: LLVMValueRef);
395 pub fn LLVMPrintValueToString(Val: LLVMValueRef) -> *mut ::libc::c_char;
396 pub fn LLVMReplaceAllUsesWith(OldVal: LLVMValueRef, NewVal: LLVMValueRef);
397 pub fn LLVMIsConstant(Val: LLVMValueRef) -> LLVMBool;
399 pub fn LLVMIsUndef(Val: LLVMValueRef) -> LLVMBool;
400 pub fn LLVMIsAMDNode(Val: LLVMValueRef) -> LLVMValueRef;
401 pub fn LLVMIsAMDString(Val: LLVMValueRef) -> LLVMValueRef;
402
403 pub fn LLVMGetFirstUse(Val: LLVMValueRef) -> LLVMUseRef;
405 pub fn LLVMGetNextUse(U: LLVMUseRef) -> LLVMUseRef;
406 pub fn LLVMGetUser(U: LLVMUseRef) -> LLVMValueRef;
407 pub fn LLVMGetUsedValue(U: LLVMUseRef) -> LLVMValueRef;
408
409 pub fn LLVMGetOperand(Val: LLVMValueRef, Index: ::libc::c_uint) -> LLVMValueRef;
411 pub fn LLVMGetOperandUse(Val: LLVMValueRef, Index: ::libc::c_uint) -> LLVMUseRef;
412 pub fn LLVMSetOperand(User: LLVMValueRef, Index: ::libc::c_uint, Val: LLVMValueRef);
413 pub fn LLVMGetNumOperands(Val: LLVMValueRef) -> ::libc::c_int;
414
415 pub fn LLVMConstNull(Ty: LLVMTypeRef) -> LLVMValueRef;
417 pub fn LLVMConstAllOnes(Ty: LLVMTypeRef) -> LLVMValueRef;
418 pub fn LLVMGetUndef(Ty: LLVMTypeRef) -> LLVMValueRef;
419 pub fn LLVMIsNull(Val: LLVMValueRef) -> LLVMBool;
420 pub fn LLVMConstPointerNull(Ty: LLVMTypeRef) -> LLVMValueRef;
421
422 pub fn LLVMConstInt(
424 IntTy: LLVMTypeRef,
425 N: ::libc::c_ulonglong,
426 SignExtend: LLVMBool,
427 ) -> LLVMValueRef;
428 pub fn LLVMConstIntOfArbitraryPrecision(
429 IntTy: LLVMTypeRef,
430 NumWords: ::libc::c_uint,
431 Words: *const u64,
432 ) -> LLVMValueRef;
433 pub fn LLVMConstIntOfString(
434 IntTy: LLVMTypeRef,
435 Text: *const ::libc::c_char,
436 Radix: u8,
437 ) -> LLVMValueRef;
438 pub fn LLVMConstIntOfStringAndSize(
439 IntTy: LLVMTypeRef,
440 Text: *const ::libc::c_char,
441 SLen: ::libc::c_uint,
442 Radix: u8,
443 ) -> LLVMValueRef;
444 pub fn LLVMConstReal(RealTy: LLVMTypeRef, N: ::libc::c_double) -> LLVMValueRef;
445 pub fn LLVMConstRealOfString(RealTy: LLVMTypeRef, Text: *const ::libc::c_char) -> LLVMValueRef;
446 pub fn LLVMConstRealOfStringAndSize(
447 RealTy: LLVMTypeRef,
448 Text: *const ::libc::c_char,
449 SLen: ::libc::c_uint,
450 ) -> LLVMValueRef;
451 pub fn LLVMConstIntGetZExtValue(ConstantVal: LLVMValueRef) -> ::libc::c_ulonglong;
452 pub fn LLVMConstIntGetSExtValue(ConstantVal: LLVMValueRef) -> ::libc::c_longlong;
453 pub fn LLVMConstRealGetDouble(
454 ConstantVal: LLVMValueRef,
455 losesInfo: *mut LLVMBool,
456 ) -> ::libc::c_double;
457
458 pub fn LLVMConstStringInContext(
460 C: LLVMContextRef,
461 Str: *const ::libc::c_char,
462 Length: ::libc::c_uint,
463 DontNullTerminate: LLVMBool,
464 ) -> LLVMValueRef;
465 pub fn LLVMConstString(
466 Str: *const ::libc::c_char,
467 Length: ::libc::c_uint,
468 DontNullTerminate: LLVMBool,
469 ) -> LLVMValueRef;
470 pub fn LLVMIsConstantString(c: LLVMValueRef) -> LLVMBool;
471 pub fn LLVMGetAsString(C: LLVMValueRef, Length: *mut ::libc::size_t) -> *const ::libc::c_char;
472 pub fn LLVMConstStructInContext(
473 C: LLVMContextRef,
474 ConstantVals: *mut LLVMValueRef,
475 Count: ::libc::c_uint,
476 Packed: LLVMBool,
477 ) -> LLVMValueRef;
478 pub fn LLVMConstStruct(
479 ConstantVals: *mut LLVMValueRef,
480 Count: ::libc::c_uint,
481 Packed: LLVMBool,
482 ) -> LLVMValueRef;
483 pub fn LLVMConstArray(
484 ElementTy: LLVMTypeRef,
485 ConstantVals: *mut LLVMValueRef,
486 Length: ::libc::c_uint,
487 ) -> LLVMValueRef;
488 pub fn LLVMConstNamedStruct(
489 StructTy: LLVMTypeRef,
490 ConstantVals: *mut LLVMValueRef,
491 Count: ::libc::c_uint,
492 ) -> LLVMValueRef;
493 pub fn LLVMGetElementAsConstant(C: LLVMValueRef, idx: ::libc::c_uint) -> LLVMValueRef;
494 pub fn LLVMConstVector(
495 ScalarConstantVals: *mut LLVMValueRef,
496 Size: ::libc::c_uint,
497 ) -> LLVMValueRef;
498
499 pub fn LLVMGetConstOpcode(ConstantVal: LLVMValueRef) -> LLVMOpcode;
501 pub fn LLVMAlignOf(Ty: LLVMTypeRef) -> LLVMValueRef;
502 pub fn LLVMSizeOf(Ty: LLVMTypeRef) -> LLVMValueRef;
503 pub fn LLVMConstNeg(ConstantVal: LLVMValueRef) -> LLVMValueRef;
504 pub fn LLVMConstNSWNeg(ConstantVal: LLVMValueRef) -> LLVMValueRef;
505 pub fn LLVMConstNUWNeg(ConstantVal: LLVMValueRef) -> LLVMValueRef;
506 pub fn LLVMConstFNeg(ConstantVal: LLVMValueRef) -> LLVMValueRef;
507 pub fn LLVMConstNot(ConstantVal: LLVMValueRef) -> LLVMValueRef;
508 pub fn LLVMConstAdd(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
509 pub fn LLVMConstNSWAdd(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
510 pub fn LLVMConstNUWAdd(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
511 pub fn LLVMConstFAdd(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
512 pub fn LLVMConstSub(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
513 pub fn LLVMConstNSWSub(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
514 pub fn LLVMConstNUWSub(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
515 pub fn LLVMConstFSub(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
516 pub fn LLVMConstMul(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
517 pub fn LLVMConstNSWMul(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
518 pub fn LLVMConstNUWMul(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
519 pub fn LLVMConstFMul(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
520 pub fn LLVMConstUDiv(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
521 pub fn LLVMConstExactUDiv(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef)
522 -> LLVMValueRef;
523 pub fn LLVMConstSDiv(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
524 pub fn LLVMConstExactSDiv(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef)
525 -> LLVMValueRef;
526 pub fn LLVMConstFDiv(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
527 pub fn LLVMConstURem(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
528 pub fn LLVMConstSRem(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
529 pub fn LLVMConstFRem(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
530 pub fn LLVMConstAnd(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
531 pub fn LLVMConstOr(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
532 pub fn LLVMConstXor(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
533 pub fn LLVMConstICmp(
534 Predicate: LLVMIntPredicate,
535 LHSConstant: LLVMValueRef,
536 RHSConstant: LLVMValueRef,
537 ) -> LLVMValueRef;
538 pub fn LLVMConstFCmp(
539 Predicate: LLVMRealPredicate,
540 LHSConstant: LLVMValueRef,
541 RHSConstant: LLVMValueRef,
542 ) -> LLVMValueRef;
543 pub fn LLVMConstShl(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
544 pub fn LLVMConstLShr(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
545 pub fn LLVMConstAShr(LHSConstant: LLVMValueRef, RHSConstant: LLVMValueRef) -> LLVMValueRef;
546 pub fn LLVMConstGEP(
547 ConstantVal: LLVMValueRef,
548 ConstantIndices: *mut LLVMValueRef,
549 NumIndices: ::libc::c_uint,
550 ) -> LLVMValueRef;
551 pub fn LLVMConstGEP2(
552 Ty: LLVMTypeRef,
553 ConstantVal: LLVMValueRef,
554 ConstantIndices: *mut LLVMValueRef,
555 NumIndices: ::libc::c_uint,
556 ) -> LLVMValueRef;
557 pub fn LLVMConstInBoundsGEP(
558 ConstantVal: LLVMValueRef,
559 ConstantIndices: *mut LLVMValueRef,
560 NumIndices: ::libc::c_uint,
561 ) -> LLVMValueRef;
562 pub fn LLVMConstInBoundsGEP2(
563 Ty: LLVMTypeRef,
564 ConstantVal: LLVMValueRef,
565 ConstantIndices: *mut LLVMValueRef,
566 NumIndices: ::libc::c_uint,
567 ) -> LLVMValueRef;
568 pub fn LLVMConstTrunc(ConstantVal: LLVMValueRef, ToType: LLVMTypeRef) -> LLVMValueRef;
569 pub fn LLVMConstSExt(ConstantVal: LLVMValueRef, ToType: LLVMTypeRef) -> LLVMValueRef;
570 pub fn LLVMConstZExt(ConstantVal: LLVMValueRef, ToType: LLVMTypeRef) -> LLVMValueRef;
571 pub fn LLVMConstFPTrunc(ConstantVal: LLVMValueRef, ToType: LLVMTypeRef) -> LLVMValueRef;
572 pub fn LLVMConstFPExt(ConstantVal: LLVMValueRef, ToType: LLVMTypeRef) -> LLVMValueRef;
573 pub fn LLVMConstUIToFP(ConstantVal: LLVMValueRef, ToType: LLVMTypeRef) -> LLVMValueRef;
574 pub fn LLVMConstSIToFP(ConstantVal: LLVMValueRef, ToType: LLVMTypeRef) -> LLVMValueRef;
575 pub fn LLVMConstFPToUI(ConstantVal: LLVMValueRef, ToType: LLVMTypeRef) -> LLVMValueRef;
576 pub fn LLVMConstFPToSI(ConstantVal: LLVMValueRef, ToType: LLVMTypeRef) -> LLVMValueRef;
577 pub fn LLVMConstPtrToInt(ConstantVal: LLVMValueRef, ToType: LLVMTypeRef) -> LLVMValueRef;
578 pub fn LLVMConstIntToPtr(ConstantVal: LLVMValueRef, ToType: LLVMTypeRef) -> LLVMValueRef;
579 pub fn LLVMConstBitCast(ConstantVal: LLVMValueRef, ToType: LLVMTypeRef) -> LLVMValueRef;
580 pub fn LLVMConstAddrSpaceCast(ConstantVal: LLVMValueRef, ToType: LLVMTypeRef) -> LLVMValueRef;
581 pub fn LLVMConstZExtOrBitCast(ConstantVal: LLVMValueRef, ToType: LLVMTypeRef) -> LLVMValueRef;
582 pub fn LLVMConstSExtOrBitCast(ConstantVal: LLVMValueRef, ToType: LLVMTypeRef) -> LLVMValueRef;
583 pub fn LLVMConstTruncOrBitCast(ConstantVal: LLVMValueRef, ToType: LLVMTypeRef) -> LLVMValueRef;
584 pub fn LLVMConstPointerCast(ConstantVal: LLVMValueRef, ToType: LLVMTypeRef) -> LLVMValueRef;
585 pub fn LLVMConstIntCast(
586 ConstantVal: LLVMValueRef,
587 ToType: LLVMTypeRef,
588 isSigned: LLVMBool,
589 ) -> LLVMValueRef;
590 pub fn LLVMConstFPCast(ConstantVal: LLVMValueRef, ToType: LLVMTypeRef) -> LLVMValueRef;
591 pub fn LLVMConstSelect(
592 ConstantCondition: LLVMValueRef,
593 ConstantIfTrue: LLVMValueRef,
594 ConstantIfFalse: LLVMValueRef,
595 ) -> LLVMValueRef;
596 pub fn LLVMConstExtractElement(
597 VectorConstant: LLVMValueRef,
598 IndexConstant: LLVMValueRef,
599 ) -> LLVMValueRef;
600 pub fn LLVMConstInsertElement(
601 VectorConstant: LLVMValueRef,
602 ElementValueConstant: LLVMValueRef,
603 IndexConstant: LLVMValueRef,
604 ) -> LLVMValueRef;
605 pub fn LLVMConstShuffleVector(
606 VectorAConstant: LLVMValueRef,
607 VectorBConstant: LLVMValueRef,
608 MaskConstant: LLVMValueRef,
609 ) -> LLVMValueRef;
610 pub fn LLVMConstExtractValue(
611 AggConstant: LLVMValueRef,
612 IdxList: *mut ::libc::c_uint,
613 NumIdx: ::libc::c_uint,
614 ) -> LLVMValueRef;
615 pub fn LLVMConstInsertValue(
616 AggConstant: LLVMValueRef,
617 ElementValueConstant: LLVMValueRef,
618 IdxList: *mut ::libc::c_uint,
619 NumIdx: ::libc::c_uint,
620 ) -> LLVMValueRef;
621 #[deprecated(since = "7.0", note = "Use LLVMGetInlineAsm instead")]
622 pub fn LLVMConstInlineAsm(
623 Ty: LLVMTypeRef,
624 AsmString: *const ::libc::c_char,
625 Constraints: *const ::libc::c_char,
626 HasSideEffects: LLVMBool,
627 IsAlignStack: LLVMBool,
628 ) -> LLVMValueRef;
629 pub fn LLVMBlockAddress(F: LLVMValueRef, BB: LLVMBasicBlockRef) -> LLVMValueRef;
630
631 pub fn LLVMGetGlobalParent(Global: LLVMValueRef) -> LLVMModuleRef;
633 pub fn LLVMIsDeclaration(Global: LLVMValueRef) -> LLVMBool;
634 pub fn LLVMGetLinkage(Global: LLVMValueRef) -> LLVMLinkage;
635 pub fn LLVMSetLinkage(Global: LLVMValueRef, Linkage: LLVMLinkage);
636 pub fn LLVMGetSection(Global: LLVMValueRef) -> *const ::libc::c_char;
637 pub fn LLVMSetSection(Global: LLVMValueRef, Section: *const ::libc::c_char);
638 pub fn LLVMGetVisibility(Global: LLVMValueRef) -> LLVMVisibility;
639 pub fn LLVMSetVisibility(Global: LLVMValueRef, Viz: LLVMVisibility);
640 pub fn LLVMGetDLLStorageClass(Global: LLVMValueRef) -> LLVMDLLStorageClass;
641 pub fn LLVMSetDLLStorageClass(Global: LLVMValueRef, Class: LLVMDLLStorageClass);
642
643 pub fn LLVMGetUnnamedAddress(Global: LLVMValueRef) -> LLVMUnnamedAddr;
644 pub fn LLVMSetUnnamedAddress(Global: LLVMValueRef, UnnamedAddr: LLVMUnnamedAddr);
645 pub fn LLVMGlobalGetValueType(Global: LLVMValueRef) -> LLVMTypeRef;
646 #[deprecated(since = "7.0", note = "Use LLVMGetUnnamedAddress instead")]
647 pub fn LLVMHasUnnamedAddr(Global: LLVMValueRef) -> LLVMBool;
648 #[deprecated(since = "7.0", note = "Use LLVMSetUnnamedAddress instead")]
649 pub fn LLVMSetUnnamedAddr(Global: LLVMValueRef, HasUnnamedAddr: LLVMBool);
650
651 pub fn LLVMGetAlignment(V: LLVMValueRef) -> ::libc::c_uint;
652 pub fn LLVMSetAlignment(V: LLVMValueRef, Bytes: ::libc::c_uint);
653
654 pub fn LLVMGlobalSetMetadata(Global: LLVMValueRef, Kind: ::libc::c_uint, MD: LLVMMetadataRef);
655 pub fn LLVMGlobalEraseMetadata(Global: LLVMValueRef, Kind: ::libc::c_uint);
656 pub fn LLVMGlobalClearMetadata(Global: LLVMValueRef);
657 pub fn LLVMGlobalCopyAllMetadata(
658 Value: LLVMValueRef,
659 NumEntries: *mut ::libc::size_t,
660 ) -> *mut LLVMValueMetadataEntry;
661 pub fn LLVMDisposeValueMetadataEntries(Entries: *mut LLVMValueMetadataEntry);
662 pub fn LLVMValueMetadataEntriesGetKind(
663 Entries: *mut LLVMValueMetadataEntry,
664 Index: ::libc::c_uint,
665 ) -> ::libc::c_uint;
666 pub fn LLVMValueMetadataEntriesGetMetadata(
667 Entries: *mut LLVMValueMetadataEntry,
668 Index: ::libc::c_uint,
669 ) -> LLVMMetadataRef;
670
671 pub fn LLVMAddGlobal(
673 M: LLVMModuleRef,
674 Ty: LLVMTypeRef,
675 Name: *const ::libc::c_char,
676 ) -> LLVMValueRef;
677 pub fn LLVMAddGlobalInAddressSpace(
678 M: LLVMModuleRef,
679 Ty: LLVMTypeRef,
680 Name: *const ::libc::c_char,
681 AddressSpace: ::libc::c_uint,
682 ) -> LLVMValueRef;
683 pub fn LLVMGetNamedGlobal(M: LLVMModuleRef, Name: *const ::libc::c_char) -> LLVMValueRef;
684 pub fn LLVMGetFirstGlobal(M: LLVMModuleRef) -> LLVMValueRef;
685 pub fn LLVMGetLastGlobal(M: LLVMModuleRef) -> LLVMValueRef;
686 pub fn LLVMGetNextGlobal(GlobalVar: LLVMValueRef) -> LLVMValueRef;
687 pub fn LLVMGetPreviousGlobal(GlobalVar: LLVMValueRef) -> LLVMValueRef;
688 pub fn LLVMDeleteGlobal(GlobalVar: LLVMValueRef);
689 pub fn LLVMGetInitializer(GlobalVar: LLVMValueRef) -> LLVMValueRef;
690 pub fn LLVMSetInitializer(GlobalVar: LLVMValueRef, ConstantVal: LLVMValueRef);
691 pub fn LLVMIsThreadLocal(GlobalVar: LLVMValueRef) -> LLVMBool;
692 pub fn LLVMSetThreadLocal(GlobalVar: LLVMValueRef, IsThreadLocal: LLVMBool);
693 pub fn LLVMIsGlobalConstant(GlobalVar: LLVMValueRef) -> LLVMBool;
694 pub fn LLVMSetGlobalConstant(GlobalVar: LLVMValueRef, IsConstant: LLVMBool);
695 pub fn LLVMGetThreadLocalMode(GlobalVar: LLVMValueRef) -> LLVMThreadLocalMode;
696 pub fn LLVMSetThreadLocalMode(GlobalVar: LLVMValueRef, Mode: LLVMThreadLocalMode);
697 pub fn LLVMIsExternallyInitialized(GlobalVar: LLVMValueRef) -> LLVMBool;
698 pub fn LLVMSetExternallyInitialized(GlobalVar: LLVMValueRef, IsExtInit: LLVMBool);
699
700 pub fn LLVMGetNamedGlobalAlias(
705 M: LLVMModuleRef,
706 Name: *const ::libc::c_char,
707 NameLen: ::libc::size_t,
708 ) -> LLVMValueRef;
709 pub fn LLVMGetFirstGlobalAlias(M: LLVMModuleRef) -> LLVMValueRef;
711 pub fn LLVMGetLastGlobalAlias(M: LLVMModuleRef) -> LLVMValueRef;
713 pub fn LLVMGetNextGlobalAlias(GA: LLVMValueRef) -> LLVMValueRef;
717 pub fn LLVMGetPreviousGlobalAlias(GA: LLVMValueRef) -> LLVMValueRef;
721 pub fn LLVMAliasGetAliasee(Alias: LLVMValueRef) -> LLVMValueRef;
723 pub fn LLVMAliasSetAliasee(Alias: LLVMValueRef, Aliasee: LLVMValueRef);
725
726 pub fn LLVMAddAlias(
727 M: LLVMModuleRef,
728 Ty: LLVMTypeRef,
729 Aliasee: LLVMValueRef,
730 Name: *const ::libc::c_char,
731 ) -> LLVMValueRef;
732
733 pub fn LLVMDeleteFunction(Fn: LLVMValueRef);
735 pub fn LLVMHasPersonalityFn(Fn: LLVMValueRef) -> LLVMBool;
737 pub fn LLVMGetPersonalityFn(Fn: LLVMValueRef) -> LLVMValueRef;
741 pub fn LLVMSetPersonalityFn(Fn: LLVMValueRef, PersonalityFn: LLVMValueRef);
745 #[cfg(LLVM_VERSION_9_OR_GREATER)]
747 pub fn LLVMLookupIntrinsicID(
748 Name: *const ::libc::c_char,
749 NameLen: ::libc::size_t,
750 ) -> ::libc::c_uint;
751 pub fn LLVMGetIntrinsicID(Fn: LLVMValueRef) -> ::libc::c_uint;
753 pub fn LLVMGetIntrinsicDeclaration(
754 Mod: LLVMModuleRef,
755 ID: ::libc::c_uint,
756 ParamTypes: *mut LLVMTypeRef,
757 ParamCount: ::libc::size_t,
758 ) -> LLVMValueRef;
759 pub fn LLVMIntrinsicGetType(
760 Ctx: LLVMContextRef,
761 ParamTypes: *mut LLVMTypeRef,
762 ParamCount: ::libc::size_t,
763 ) -> LLVMTypeRef;
764 pub fn LLVMIntrinsicGetName(
765 ID: ::libc::c_uint,
766 NameLength: *mut ::libc::size_t,
767 ) -> *const ::libc::c_char;
768 pub fn LLVMIntrinsicCopyOverloadedName(
769 ID: ::libc::c_uint,
770 ParamTypes: *mut LLVMTypeRef,
771 ParamCount: ::libc::size_t,
772 NameLength: *mut ::libc::size_t,
773 ) -> *const ::libc::c_char;
774 pub fn LLVMIntrinsicIsOverloaded(ID: ::libc::c_uint) -> LLVMBool;
775 pub fn LLVMGetFunctionCallConv(Fn: LLVMValueRef) -> ::libc::c_uint;
776 pub fn LLVMSetFunctionCallConv(Fn: LLVMValueRef, CC: ::libc::c_uint);
777 pub fn LLVMGetGC(Fn: LLVMValueRef) -> *const ::libc::c_char;
778 pub fn LLVMSetGC(Fn: LLVMValueRef, Name: *const ::libc::c_char);
779 pub fn LLVMAddAttributeAtIndex(F: LLVMValueRef, Idx: LLVMAttributeIndex, A: LLVMAttributeRef);
780 pub fn LLVMGetAttributeCountAtIndex(F: LLVMValueRef, Idx: LLVMAttributeIndex)
781 -> ::libc::c_uint;
782 pub fn LLVMGetAttributesAtIndex(
783 F: LLVMValueRef,
784 Idx: LLVMAttributeIndex,
785 Attrs: *mut LLVMAttributeRef,
786 );
787 pub fn LLVMGetEnumAttributeAtIndex(
788 F: LLVMValueRef,
789 Idx: LLVMAttributeIndex,
790 KindID: ::libc::c_uint,
791 ) -> LLVMAttributeRef;
792 pub fn LLVMGetStringAttributeAtIndex(
793 F: LLVMValueRef,
794 Idx: LLVMAttributeIndex,
795 K: *const ::libc::c_char,
796 KLen: ::libc::c_uint,
797 ) -> LLVMAttributeRef;
798 pub fn LLVMRemoveEnumAttributeAtIndex(
799 F: LLVMValueRef,
800 Idx: LLVMAttributeIndex,
801 KindID: ::libc::c_uint,
802 );
803 pub fn LLVMRemoveStringAttributeAtIndex(
804 F: LLVMValueRef,
805 Idx: LLVMAttributeIndex,
806 K: *const ::libc::c_char,
807 KLen: ::libc::c_uint,
808 );
809 pub fn LLVMAddTargetDependentFunctionAttr(
810 Fn: LLVMValueRef,
811 A: *const ::libc::c_char,
812 V: *const ::libc::c_char,
813 );
814
815 pub fn LLVMCountParams(Fn: LLVMValueRef) -> ::libc::c_uint;
817 pub fn LLVMGetParams(Fn: LLVMValueRef, Params: *mut LLVMValueRef);
818 pub fn LLVMGetParam(Fn: LLVMValueRef, Index: ::libc::c_uint) -> LLVMValueRef;
819 pub fn LLVMGetParamParent(Inst: LLVMValueRef) -> LLVMValueRef;
820 pub fn LLVMGetFirstParam(Fn: LLVMValueRef) -> LLVMValueRef;
821 pub fn LLVMGetLastParam(Fn: LLVMValueRef) -> LLVMValueRef;
822 pub fn LLVMGetNextParam(Arg: LLVMValueRef) -> LLVMValueRef;
823 pub fn LLVMGetPreviousParam(Arg: LLVMValueRef) -> LLVMValueRef;
824 pub fn LLVMSetParamAlignment(Arg: LLVMValueRef, Align: ::libc::c_uint);
825}
826
827extern "C" {
829 #[cfg_attr(LLVM_VERSION_9_OR_GREATER, deprecated(since = "LLVM 9.0", note = "Use LLVMMDStringInContext2 instead."))]
830 pub fn LLVMMDStringInContext(
831 C: LLVMContextRef,
832 Str: *const ::libc::c_char,
833 SLen: ::libc::c_uint,
834 ) -> LLVMValueRef;
835 #[cfg_attr(LLVM_VERSION_9_OR_GREATER, deprecated(since = "LLVM 9.0", note = "Use LLVMMDStringInContext2 instead."))]
836 pub fn LLVMMDString(Str: *const ::libc::c_char, SLen: ::libc::c_uint) -> LLVMValueRef;
837 #[cfg_attr(LLVM_VERSION_9_OR_GREATER, deprecated(since = "LLVM 9.0", note = "Use LLVMMDNodeInContext2 instead."))]
838 pub fn LLVMMDNodeInContext(
839 C: LLVMContextRef,
840 Vals: *mut LLVMValueRef,
841 Count: ::libc::c_uint,
842 ) -> LLVMValueRef;
843 #[cfg_attr(LLVM_VERSION_9_OR_GREATER, deprecated(since = "LLVM 9.0", note = "Use LLVMMDNodeInContext2 instead."))]
844 pub fn LLVMMDNode(Vals: *mut LLVMValueRef, Count: ::libc::c_uint) -> LLVMValueRef;
845
846 #[cfg(LLVM_VERSION_9_OR_GREATER)]
848 pub fn LLVMAddGlobalIFunc(
849 M: LLVMModuleRef,
850 Name: *const ::libc::c_char,
851 NameLen: ::libc::size_t,
852 Ty: LLVMTypeRef,
853 AddrSpace: ::libc::c_uint,
854 Resolver: LLVMValueRef,
855 ) -> LLVMValueRef;
856
857 #[cfg(LLVM_VERSION_9_OR_GREATER)]
859 pub fn LLVMGetNamedGlobalIFunc(
860 M: LLVMModuleRef,
861 Name: *const ::libc::c_char,
862 NameLen: ::libc::size_t,
863 ) -> LLVMValueRef;
864
865 #[cfg(LLVM_VERSION_9_OR_GREATER)]
867 pub fn LLVMGetFirstGlobalIFunc(M: LLVMModuleRef) -> LLVMValueRef;
868
869 #[cfg(LLVM_VERSION_9_OR_GREATER)]
871 pub fn LLVMGetLastGlobalIFunc(M: LLVMModuleRef) -> LLVMValueRef;
872
873 #[cfg(LLVM_VERSION_9_OR_GREATER)]
875 pub fn LLVMGetNextGlobalIFunc(IFunc: LLVMValueRef) -> LLVMValueRef;
876
877 #[cfg(LLVM_VERSION_9_OR_GREATER)]
879 pub fn LLVMGetPreviousGlobalIFunc(IFunc: LLVMValueRef) -> LLVMValueRef;
880
881 #[cfg(LLVM_VERSION_9_OR_GREATER)]
884 pub fn LLVMGetGlobalIFuncResolver(IFunc: LLVMValueRef) -> LLVMValueRef;
885
886 #[cfg(LLVM_VERSION_9_OR_GREATER)]
888 pub fn LLVMSetGlobalIFuncResolver(IFunc: LLVMValueRef, Resolver: LLVMValueRef);
889
890 #[cfg(LLVM_VERSION_9_OR_GREATER)]
892 pub fn LLVMEraseGlobalIFunc(IFunc: LLVMValueRef);
893
894 #[cfg(LLVM_VERSION_9_OR_GREATER)]
896 pub fn LLVMRemoveGlobalIFunc(IFunc: LLVMValueRef);
897
898 #[cfg(LLVM_VERSION_9_OR_GREATER)]
900 pub fn LLVMMDStringInContext2(
901 C: LLVMContextRef,
902 Str: *const ::libc::c_char,
903 SLen: ::libc::size_t,
904 ) -> LLVMMetadataRef;
905
906 #[cfg(LLVM_VERSION_9_OR_GREATER)]
908 pub fn LLVMMDNodeInContext2(
909 C: LLVMContextRef,
910 MDs: *mut LLVMMetadataRef,
911 Count: ::libc::size_t,
912 ) -> LLVMMetadataRef;
913
914 pub fn LLVMMetadataAsValue(C: LLVMContextRef, MD: LLVMMetadataRef) -> LLVMValueRef;
916 pub fn LLVMValueAsMetadata(Val: LLVMValueRef) -> LLVMMetadataRef;
918 pub fn LLVMGetMDString(V: LLVMValueRef, Len: *mut ::libc::c_uint) -> *const ::libc::c_char;
922 pub fn LLVMGetMDNodeNumOperands(V: LLVMValueRef) -> ::libc::c_uint;
923 pub fn LLVMGetMDNodeOperands(V: LLVMValueRef, Dest: *mut LLVMValueRef);
924}
925
926extern "C" {
928 pub fn LLVMBasicBlockAsValue(BB: LLVMBasicBlockRef) -> LLVMValueRef;
929 pub fn LLVMValueIsBasicBlock(Val: LLVMValueRef) -> LLVMBool;
930 pub fn LLVMValueAsBasicBlock(Val: LLVMValueRef) -> LLVMBasicBlockRef;
931 pub fn LLVMGetBasicBlockName(BB: LLVMBasicBlockRef) -> *const ::libc::c_char;
933 pub fn LLVMGetBasicBlockParent(BB: LLVMBasicBlockRef) -> LLVMValueRef;
934 pub fn LLVMGetBasicBlockTerminator(BB: LLVMBasicBlockRef) -> LLVMValueRef;
935 pub fn LLVMCountBasicBlocks(Fn: LLVMValueRef) -> ::libc::c_uint;
936 pub fn LLVMGetBasicBlocks(Fn: LLVMValueRef, BasicBlocks: *mut LLVMBasicBlockRef);
937 pub fn LLVMGetFirstBasicBlock(Fn: LLVMValueRef) -> LLVMBasicBlockRef;
938 pub fn LLVMGetLastBasicBlock(Fn: LLVMValueRef) -> LLVMBasicBlockRef;
939 pub fn LLVMGetNextBasicBlock(BB: LLVMBasicBlockRef) -> LLVMBasicBlockRef;
940 pub fn LLVMGetPreviousBasicBlock(BB: LLVMBasicBlockRef) -> LLVMBasicBlockRef;
941 pub fn LLVMGetEntryBasicBlock(Fn: LLVMValueRef) -> LLVMBasicBlockRef;
942 #[cfg(LLVM_VERSION_9_OR_GREATER)]
944 pub fn LLVMInsertExistingBasicBlockAfterInsertBlock(
945 Builder: LLVMBuilderRef,
946 BB: LLVMBasicBlockRef,
947 );
948 #[cfg(LLVM_VERSION_9_OR_GREATER)]
950 pub fn LLVMAppendExistingBasicBlock(Fn: LLVMValueRef, BB: LLVMBasicBlockRef);
951 pub fn LLVMCreateBasicBlockInContext(
952 C: LLVMContextRef,
953 Name: *const ::libc::c_char,
954 ) -> LLVMBasicBlockRef;
955 pub fn LLVMAppendBasicBlockInContext(
956 C: LLVMContextRef,
957 Fn: LLVMValueRef,
958 Name: *const ::libc::c_char,
959 ) -> LLVMBasicBlockRef;
960 pub fn LLVMAppendBasicBlock(Fn: LLVMValueRef, Name: *const ::libc::c_char)
961 -> LLVMBasicBlockRef;
962 pub fn LLVMInsertBasicBlockInContext(
963 C: LLVMContextRef,
964 BB: LLVMBasicBlockRef,
965 Name: *const ::libc::c_char,
966 ) -> LLVMBasicBlockRef;
967 pub fn LLVMInsertBasicBlock(
968 InsertBeforeBB: LLVMBasicBlockRef,
969 Name: *const ::libc::c_char,
970 ) -> LLVMBasicBlockRef;
971 pub fn LLVMDeleteBasicBlock(BB: LLVMBasicBlockRef);
972 pub fn LLVMRemoveBasicBlockFromParent(BB: LLVMBasicBlockRef);
973 pub fn LLVMMoveBasicBlockBefore(BB: LLVMBasicBlockRef, MovePos: LLVMBasicBlockRef);
974 pub fn LLVMMoveBasicBlockAfter(BB: LLVMBasicBlockRef, MovePos: LLVMBasicBlockRef);
975 pub fn LLVMGetFirstInstruction(BB: LLVMBasicBlockRef) -> LLVMValueRef;
976 pub fn LLVMGetLastInstruction(BB: LLVMBasicBlockRef) -> LLVMValueRef;
977}
978
979extern "C" {
981 pub fn LLVMHasMetadata(Val: LLVMValueRef) -> ::libc::c_int;
982 pub fn LLVMGetMetadata(Val: LLVMValueRef, KindID: ::libc::c_uint) -> LLVMValueRef;
983 pub fn LLVMSetMetadata(Val: LLVMValueRef, KindID: ::libc::c_uint, Node: LLVMValueRef);
984 pub fn LLVMInstructionGetAllMetadataOtherThanDebugLoc(
985 Instr: LLVMValueRef,
986 NumEntries: *mut ::libc::size_t,
987 ) -> *mut LLVMValueMetadataEntry;
988 pub fn LLVMGetInstructionParent(Inst: LLVMValueRef) -> LLVMBasicBlockRef;
989 pub fn LLVMGetNextInstruction(Inst: LLVMValueRef) -> LLVMValueRef;
990 pub fn LLVMGetPreviousInstruction(Inst: LLVMValueRef) -> LLVMValueRef;
991 pub fn LLVMInstructionRemoveFromParent(Inst: LLVMValueRef);
994 pub fn LLVMInstructionEraseFromParent(Inst: LLVMValueRef);
997 pub fn LLVMGetInstructionOpcode(Inst: LLVMValueRef) -> LLVMOpcode;
998 pub fn LLVMGetICmpPredicate(Inst: LLVMValueRef) -> LLVMIntPredicate;
999 pub fn LLVMGetFCmpPredicate(Inst: LLVMValueRef) -> LLVMRealPredicate;
1000 pub fn LLVMInstructionClone(Inst: LLVMValueRef) -> LLVMValueRef;
1001 pub fn LLVMIsATerminatorInst(Inst: LLVMValueRef) -> LLVMValueRef;
1002
1003 pub fn LLVMGetNumArgOperands(Instr: LLVMValueRef) -> ::libc::c_uint;
1008 pub fn LLVMSetInstructionCallConv(Instr: LLVMValueRef, CC: ::libc::c_uint);
1009 pub fn LLVMGetInstructionCallConv(Instr: LLVMValueRef) -> ::libc::c_uint;
1010 pub fn LLVMSetInstrParamAlignment(
1011 Instr: LLVMValueRef,
1012 index: ::libc::c_uint,
1013 Align: ::libc::c_uint,
1014 );
1015 pub fn LLVMAddCallSiteAttribute(C: LLVMValueRef, Idx: LLVMAttributeIndex, A: LLVMAttributeRef);
1016 pub fn LLVMGetCallSiteAttributeCount(
1017 C: LLVMValueRef,
1018 Idx: LLVMAttributeIndex,
1019 ) -> ::libc::c_uint;
1020 pub fn LLVMGetCallSiteAttributes(
1021 C: LLVMValueRef,
1022 Idx: LLVMAttributeIndex,
1023 Attrs: *mut LLVMAttributeRef,
1024 );
1025 pub fn LLVMGetCallSiteEnumAttribute(
1026 C: LLVMValueRef,
1027 Idx: LLVMAttributeIndex,
1028 KindID: ::libc::c_uint,
1029 ) -> LLVMAttributeRef;
1030 pub fn LLVMGetCallSiteStringAttribute(
1031 C: LLVMValueRef,
1032 Idx: LLVMAttributeIndex,
1033 K: *const ::libc::c_char,
1034 KLen: ::libc::c_uint,
1035 ) -> LLVMAttributeRef;
1036 pub fn LLVMRemoveCallSiteEnumAttribute(
1037 C: LLVMValueRef,
1038 Idx: LLVMAttributeIndex,
1039 KindID: ::libc::c_uint,
1040 );
1041 pub fn LLVMRemoveCallSiteStringAttribute(
1042 C: LLVMValueRef,
1043 Idx: LLVMAttributeIndex,
1044 K: *const ::libc::c_char,
1045 KLen: ::libc::c_uint,
1046 );
1047 pub fn LLVMGetCalledFunctionType(C: LLVMValueRef) -> LLVMTypeRef;
1048 pub fn LLVMGetCalledValue(Instr: LLVMValueRef) -> LLVMValueRef;
1052 pub fn LLVMIsTailCall(CallInst: LLVMValueRef) -> LLVMBool;
1054 pub fn LLVMSetTailCall(CallInst: LLVMValueRef, IsTailCall: LLVMBool);
1055 pub fn LLVMGetNormalDest(InvokeInst: LLVMValueRef) -> LLVMBasicBlockRef;
1057 pub fn LLVMGetUnwindDest(InvokeInst: LLVMValueRef) -> LLVMBasicBlockRef;
1059 pub fn LLVMSetNormalDest(InvokeInst: LLVMValueRef, B: LLVMBasicBlockRef);
1061 pub fn LLVMSetUnwindDest(InvokeInst: LLVMValueRef, B: LLVMBasicBlockRef);
1063
1064 pub fn LLVMGetNumSuccessors(Term: LLVMValueRef) -> ::libc::c_uint;
1066 pub fn LLVMGetSuccessor(Term: LLVMValueRef, i: ::libc::c_uint) -> LLVMBasicBlockRef;
1067 pub fn LLVMSetSuccessor(Term: LLVMValueRef, i: ::libc::c_uint, block: LLVMBasicBlockRef);
1068 pub fn LLVMIsConditional(Branch: LLVMValueRef) -> LLVMBool;
1069 pub fn LLVMGetCondition(Branch: LLVMValueRef) -> LLVMValueRef;
1070 pub fn LLVMSetCondition(Branch: LLVMValueRef, Cond: LLVMValueRef);
1071 pub fn LLVMGetSwitchDefaultDest(SwitchInstr: LLVMValueRef) -> LLVMBasicBlockRef;
1072
1073 pub fn LLVMGetAllocatedType(Alloca: LLVMValueRef) -> LLVMTypeRef;
1076
1077 pub fn LLVMIsInBounds(GEP: LLVMValueRef) -> LLVMBool;
1080 pub fn LLVMSetIsInBounds(GEP: LLVMValueRef, InBounds: LLVMBool);
1082
1083 pub fn LLVMAddIncoming(
1085 PhiNode: LLVMValueRef,
1086 IncomingValues: *mut LLVMValueRef,
1087 IncomingBlocks: *mut LLVMBasicBlockRef,
1088 Count: ::libc::c_uint,
1089 );
1090 pub fn LLVMCountIncoming(PhiNode: LLVMValueRef) -> ::libc::c_uint;
1091 pub fn LLVMGetIncomingValue(PhiNode: LLVMValueRef, Index: ::libc::c_uint) -> LLVMValueRef;
1092 pub fn LLVMGetIncomingBlock(PhiNode: LLVMValueRef, Index: ::libc::c_uint) -> LLVMBasicBlockRef;
1093
1094}
1095
1096extern "C" {
1098 pub fn LLVMIsAArgument(Val: LLVMValueRef) -> LLVMValueRef;
1099 pub fn LLVMIsABasicBlock(Val: LLVMValueRef) -> LLVMValueRef;
1100 pub fn LLVMIsAInlineAsm(Val: LLVMValueRef) -> LLVMValueRef;
1101 pub fn LLVMIsAUser(Val: LLVMValueRef) -> LLVMValueRef;
1102 pub fn LLVMIsAConstant(Val: LLVMValueRef) -> LLVMValueRef;
1103 pub fn LLVMIsABlockAddress(Val: LLVMValueRef) -> LLVMValueRef;
1104 pub fn LLVMIsAConstantAggregateZero(Val: LLVMValueRef) -> LLVMValueRef;
1105 pub fn LLVMIsAConstantArray(Val: LLVMValueRef) -> LLVMValueRef;
1106 pub fn LLVMIsAConstantDataSequential(Val: LLVMValueRef) -> LLVMValueRef;
1107 pub fn LLVMIsAConstantDataArray(Val: LLVMValueRef) -> LLVMValueRef;
1108 pub fn LLVMIsAConstantDataVector(Val: LLVMValueRef) -> LLVMValueRef;
1109 pub fn LLVMIsAConstantExpr(Val: LLVMValueRef) -> LLVMValueRef;
1110 pub fn LLVMIsAConstantFP(Val: LLVMValueRef) -> LLVMValueRef;
1111 pub fn LLVMIsAConstantInt(Val: LLVMValueRef) -> LLVMValueRef;
1112 pub fn LLVMIsAConstantPointerNull(Val: LLVMValueRef) -> LLVMValueRef;
1113 pub fn LLVMIsAConstantStruct(Val: LLVMValueRef) -> LLVMValueRef;
1114 pub fn LLVMIsAConstantTokenNone(Val: LLVMValueRef) -> LLVMValueRef;
1115 pub fn LLVMIsAConstantVector(Val: LLVMValueRef) -> LLVMValueRef;
1116 pub fn LLVMIsAGlobalValue(Val: LLVMValueRef) -> LLVMValueRef;
1117 pub fn LLVMIsAGlobalAlias(Val: LLVMValueRef) -> LLVMValueRef;
1118 pub fn LLVMIsAGlobalIFunc(Val: LLVMValueRef) -> LLVMValueRef;
1119 pub fn LLVMIsAGlobalObject(Val: LLVMValueRef) -> LLVMValueRef;
1120 pub fn LLVMIsAFunction(Val: LLVMValueRef) -> LLVMValueRef;
1121 pub fn LLVMIsAGlobalVariable(Val: LLVMValueRef) -> LLVMValueRef;
1122 pub fn LLVMIsAUndefValue(Val: LLVMValueRef) -> LLVMValueRef;
1123 pub fn LLVMIsAInstruction(Val: LLVMValueRef) -> LLVMValueRef;
1124 #[cfg(LLVM_VERSION_10_OR_GREATER)]
1125 pub fn LLVMIsAUnaryOperator(Val: LLVMValueRef) -> LLVMValueRef;
1126 pub fn LLVMIsABinaryOperator(Val: LLVMValueRef) -> LLVMValueRef;
1127 pub fn LLVMIsACallInst(Val: LLVMValueRef) -> LLVMValueRef;
1128 pub fn LLVMIsAIntrinsicInst(Val: LLVMValueRef) -> LLVMValueRef;
1129 pub fn LLVMIsADbgInfoIntrinsic(Val: LLVMValueRef) -> LLVMValueRef;
1130 pub fn LLVMIsADbgVariableIntrinsic(Val: LLVMValueRef) -> LLVMValueRef;
1131 pub fn LLVMIsADbgDeclareInst(Val: LLVMValueRef) -> LLVMValueRef;
1132 pub fn LLVMIsADbgLabelInst(Val: LLVMValueRef) -> LLVMValueRef;
1133 pub fn LLVMIsAMemIntrinsic(Val: LLVMValueRef) -> LLVMValueRef;
1134 pub fn LLVMIsAMemCpyInst(Val: LLVMValueRef) -> LLVMValueRef;
1135 pub fn LLVMIsAMemMoveInst(Val: LLVMValueRef) -> LLVMValueRef;
1136 pub fn LLVMIsAMemSetInst(Val: LLVMValueRef) -> LLVMValueRef;
1137 pub fn LLVMIsACmpInst(Val: LLVMValueRef) -> LLVMValueRef;
1138 pub fn LLVMIsAFCmpInst(Val: LLVMValueRef) -> LLVMValueRef;
1139 pub fn LLVMIsAICmpInst(Val: LLVMValueRef) -> LLVMValueRef;
1140 pub fn LLVMIsAExtractElementInst(Val: LLVMValueRef) -> LLVMValueRef;
1141 pub fn LLVMIsAGetElementPtrInst(Val: LLVMValueRef) -> LLVMValueRef;
1142 pub fn LLVMIsAInsertElementInst(Val: LLVMValueRef) -> LLVMValueRef;
1143 pub fn LLVMIsAInsertValueInst(Val: LLVMValueRef) -> LLVMValueRef;
1144 pub fn LLVMIsALandingPadInst(Val: LLVMValueRef) -> LLVMValueRef;
1145 pub fn LLVMIsAPHINode(Val: LLVMValueRef) -> LLVMValueRef;
1146 pub fn LLVMIsASelectInst(Val: LLVMValueRef) -> LLVMValueRef;
1147 pub fn LLVMIsAShuffleVectorInst(Val: LLVMValueRef) -> LLVMValueRef;
1148 pub fn LLVMIsAStoreInst(Val: LLVMValueRef) -> LLVMValueRef;
1149 pub fn LLVMIsABranchInst(Val: LLVMValueRef) -> LLVMValueRef;
1150 pub fn LLVMIsAIndirectBrInst(Val: LLVMValueRef) -> LLVMValueRef;
1151 pub fn LLVMIsAInvokeInst(Val: LLVMValueRef) -> LLVMValueRef;
1152 pub fn LLVMIsAReturnInst(Val: LLVMValueRef) -> LLVMValueRef;
1153 pub fn LLVMIsASwitchInst(Val: LLVMValueRef) -> LLVMValueRef;
1154 pub fn LLVMIsAUnreachableInst(Val: LLVMValueRef) -> LLVMValueRef;
1155 pub fn LLVMIsAResumeInst(Val: LLVMValueRef) -> LLVMValueRef;
1156 pub fn LLVMIsACleanupReturnInst(Val: LLVMValueRef) -> LLVMValueRef;
1157 pub fn LLVMIsACatchReturnInst(Val: LLVMValueRef) -> LLVMValueRef;
1158 #[cfg(LLVM_VERSION_10_OR_GREATER)]
1159 pub fn LLVMIsACatchSwitchInst(Val: LLVMValueRef) -> LLVMValueRef;
1160 #[cfg(LLVM_VERSION_10_OR_GREATER)]
1161 pub fn LLVMIsACallBrInst(Val: LLVMValueRef) -> LLVMValueRef;
1162 pub fn LLVMIsAFuncletPadInst(Val: LLVMValueRef) -> LLVMValueRef;
1163 pub fn LLVMIsACatchPadInst(Val: LLVMValueRef) -> LLVMValueRef;
1164 pub fn LLVMIsACleanupPadInst(Val: LLVMValueRef) -> LLVMValueRef;
1165 pub fn LLVMIsAUnaryInstruction(Val: LLVMValueRef) -> LLVMValueRef;
1166 pub fn LLVMIsAAllocaInst(Val: LLVMValueRef) -> LLVMValueRef;
1167 pub fn LLVMIsACastInst(Val: LLVMValueRef) -> LLVMValueRef;
1168 pub fn LLVMIsAAddrSpaceCastInst(Val: LLVMValueRef) -> LLVMValueRef;
1169 pub fn LLVMIsABitCastInst(Val: LLVMValueRef) -> LLVMValueRef;
1170 pub fn LLVMIsAFPExtInst(Val: LLVMValueRef) -> LLVMValueRef;
1171 pub fn LLVMIsAFPToSIInst(Val: LLVMValueRef) -> LLVMValueRef;
1172 pub fn LLVMIsAFPToUIInst(Val: LLVMValueRef) -> LLVMValueRef;
1173 pub fn LLVMIsAFPTruncInst(Val: LLVMValueRef) -> LLVMValueRef;
1174 pub fn LLVMIsAIntToPtrInst(Val: LLVMValueRef) -> LLVMValueRef;
1175 pub fn LLVMIsAPtrToIntInst(Val: LLVMValueRef) -> LLVMValueRef;
1176 pub fn LLVMIsASExtInst(Val: LLVMValueRef) -> LLVMValueRef;
1177 pub fn LLVMIsASIToFPInst(Val: LLVMValueRef) -> LLVMValueRef;
1178 pub fn LLVMIsATruncInst(Val: LLVMValueRef) -> LLVMValueRef;
1179 pub fn LLVMIsAUIToFPInst(Val: LLVMValueRef) -> LLVMValueRef;
1180 pub fn LLVMIsAZExtInst(Val: LLVMValueRef) -> LLVMValueRef;
1181 pub fn LLVMIsAExtractValueInst(Val: LLVMValueRef) -> LLVMValueRef;
1182 pub fn LLVMIsALoadInst(Val: LLVMValueRef) -> LLVMValueRef;
1183 pub fn LLVMIsAVAArgInst(Val: LLVMValueRef) -> LLVMValueRef;
1184 #[cfg(LLVM_VERSION_10_OR_GREATER)]
1185 pub fn LLVMIsAFreezeInst(Val: LLVMValueRef) -> LLVMValueRef;
1186 #[cfg(LLVM_VERSION_10_OR_GREATER)]
1187 pub fn LLVMIsAAtomicCmpXchgInst(Val: LLVMValueRef) -> LLVMValueRef;
1188 #[cfg(LLVM_VERSION_10_OR_GREATER)]
1189 pub fn LLVMIsAAtomicRMWInst(Val: LLVMValueRef) -> LLVMValueRef;
1190 #[cfg(LLVM_VERSION_10_OR_GREATER)]
1191 pub fn LLVMIsAFenceInst(Val: LLVMValueRef) -> LLVMValueRef;
1192}
1193
1194extern "C" {
1196 pub fn LLVMGetNumIndices(Inst: LLVMValueRef) -> ::libc::c_uint;
1198 pub fn LLVMGetIndices(Inst: LLVMValueRef) -> *const ::libc::c_uint;
1199}
1200
1201extern "C" {
1203 pub fn LLVMCreateBuilderInContext(C: LLVMContextRef) -> LLVMBuilderRef;
1204 pub fn LLVMCreateBuilder() -> LLVMBuilderRef;
1205 pub fn LLVMPositionBuilder(
1206 Builder: LLVMBuilderRef,
1207 Block: LLVMBasicBlockRef,
1208 Instr: LLVMValueRef,
1209 );
1210 pub fn LLVMPositionBuilderBefore(Builder: LLVMBuilderRef, Instr: LLVMValueRef);
1211 pub fn LLVMPositionBuilderAtEnd(Builder: LLVMBuilderRef, Block: LLVMBasicBlockRef);
1212 pub fn LLVMGetInsertBlock(Builder: LLVMBuilderRef) -> LLVMBasicBlockRef;
1213 pub fn LLVMClearInsertionPosition(Builder: LLVMBuilderRef);
1214 pub fn LLVMInsertIntoBuilder(Builder: LLVMBuilderRef, Instr: LLVMValueRef);
1215 pub fn LLVMInsertIntoBuilderWithName(
1216 Builder: LLVMBuilderRef,
1217 Instr: LLVMValueRef,
1218 Name: *const ::libc::c_char,
1219 );
1220 pub fn LLVMDisposeBuilder(Builder: LLVMBuilderRef);
1221
1222 #[cfg(LLVM_VERSION_9_OR_GREATER)]
1225 pub fn LLVMGetCurrentDebugLocation2(Builder: LLVMBuilderRef) -> LLVMMetadataRef;
1226 #[cfg(LLVM_VERSION_9_OR_GREATER)]
1228 pub fn LLVMSetCurrentDebugLocation2(Builder: LLVMBuilderRef, Loc: LLVMMetadataRef);
1229 #[cfg(LLVM_VERSION_9_OR_GREATER)]
1233 pub fn LLVMSetInstDebugLocation(Builder: LLVMBuilderRef, Inst: LLVMValueRef);
1234 #[cfg(LLVM_VERSION_9_OR_GREATER)]
1236 pub fn LLVMBuilderGetDefaultFPMathTag(Builder: LLVMBuilderRef) -> LLVMMetadataRef;
1237 #[cfg(LLVM_VERSION_9_OR_GREATER)]
1239 pub fn LLVMBuilderSetDefaultFPMathTag(Builder: LLVMBuilderRef, FPMathTag: LLVMMetadataRef);
1240 #[cfg_attr(LLVM_VERSION_9_OR_GREATER, deprecated(since = "LLVM 9.0", note = "Use LLVMGetCurrentDebugLocation2 instead."))]
1241 pub fn LLVMSetCurrentDebugLocation(Builder: LLVMBuilderRef, L: LLVMValueRef);
1242 pub fn LLVMGetCurrentDebugLocation(Builder: LLVMBuilderRef) -> LLVMValueRef;
1243 #[cfg(LLVM_VERSION_8_OR_LOWER)]
1244 pub fn LLVMSetInstDebugLocation(Builder: LLVMBuilderRef, Inst: LLVMValueRef);
1245
1246 pub fn LLVMBuildRetVoid(arg1: LLVMBuilderRef) -> LLVMValueRef;
1248 pub fn LLVMBuildRet(arg1: LLVMBuilderRef, V: LLVMValueRef) -> LLVMValueRef;
1249 pub fn LLVMBuildAggregateRet(
1250 arg1: LLVMBuilderRef,
1251 RetVals: *mut LLVMValueRef,
1252 N: ::libc::c_uint,
1253 ) -> LLVMValueRef;
1254 pub fn LLVMBuildBr(arg1: LLVMBuilderRef, Dest: LLVMBasicBlockRef) -> LLVMValueRef;
1255 pub fn LLVMBuildCondBr(
1256 arg1: LLVMBuilderRef,
1257 If: LLVMValueRef,
1258 Then: LLVMBasicBlockRef,
1259 Else: LLVMBasicBlockRef,
1260 ) -> LLVMValueRef;
1261 pub fn LLVMBuildSwitch(
1262 arg1: LLVMBuilderRef,
1263 V: LLVMValueRef,
1264 Else: LLVMBasicBlockRef,
1265 NumCases: ::libc::c_uint,
1266 ) -> LLVMValueRef;
1267 pub fn LLVMBuildIndirectBr(
1268 B: LLVMBuilderRef,
1269 Addr: LLVMValueRef,
1270 NumDests: ::libc::c_uint,
1271 ) -> LLVMValueRef;
1272 pub fn LLVMBuildInvoke(
1273 arg1: LLVMBuilderRef,
1274 Fn: LLVMValueRef,
1275 Args: *mut LLVMValueRef,
1276 NumArgs: ::libc::c_uint,
1277 Then: LLVMBasicBlockRef,
1278 Catch: LLVMBasicBlockRef,
1279 Name: *const ::libc::c_char,
1280 ) -> LLVMValueRef;
1281 pub fn LLVMBuildInvoke2(
1282 arg1: LLVMBuilderRef,
1283 Ty: LLVMTypeRef,
1284 Fn: LLVMValueRef,
1285 Args: *mut LLVMValueRef,
1286 NumArgs: ::libc::c_uint,
1287 Then: LLVMBasicBlockRef,
1288 Catch: LLVMBasicBlockRef,
1289 Name: *const ::libc::c_char,
1290 ) -> LLVMValueRef;
1291 pub fn LLVMBuildUnreachable(B: LLVMBuilderRef) -> LLVMValueRef;
1292
1293 pub fn LLVMBuildResume(B: LLVMBuilderRef, Exn: LLVMValueRef) -> LLVMValueRef;
1294 pub fn LLVMBuildLandingPad(
1295 B: LLVMBuilderRef,
1296 Ty: LLVMTypeRef,
1297 PersFn: LLVMValueRef,
1298 NumClauses: ::libc::c_uint,
1299 Name: *const ::libc::c_char,
1300 ) -> LLVMValueRef;
1301 pub fn LLVMBuildCleanupRet(
1302 B: LLVMBuilderRef,
1303 CatchPad: LLVMValueRef,
1304 BB: LLVMBasicBlockRef,
1305 ) -> LLVMValueRef;
1306 pub fn LLVMBuildCatchRet(
1307 B: LLVMBuilderRef,
1308 CatchPad: LLVMValueRef,
1309 BB: LLVMBasicBlockRef,
1310 ) -> LLVMValueRef;
1311 pub fn LLVMBuildCatchPad(
1312 B: LLVMBuilderRef,
1313 ParentPad: LLVMValueRef,
1314 Args: *mut LLVMValueRef,
1315 NumArgs: ::libc::c_uint,
1316 Name: *const ::libc::c_char,
1317 ) -> LLVMValueRef;
1318 pub fn LLVMBuildCleanupPad(
1319 B: LLVMBuilderRef,
1320 ParentPad: LLVMValueRef,
1321 Args: *mut LLVMValueRef,
1322 NumArgs: ::libc::c_uint,
1323 Name: *const ::libc::c_char,
1324 ) -> LLVMValueRef;
1325 pub fn LLVMBuildCatchSwitch(
1326 B: LLVMBuilderRef,
1327 ParentPad: LLVMValueRef,
1328 UnwindBB: LLVMBasicBlockRef,
1329 NumHandler: ::libc::c_uint,
1330 Name: *const ::libc::c_char,
1331 ) -> LLVMValueRef;
1332
1333 pub fn LLVMAddCase(Switch: LLVMValueRef, OnVal: LLVMValueRef, Dest: LLVMBasicBlockRef);
1335
1336 pub fn LLVMAddDestination(IndirectBr: LLVMValueRef, Dest: LLVMBasicBlockRef);
1338
1339 pub fn LLVMGetNumClauses(LandingPad: LLVMValueRef) -> ::libc::c_uint;
1341
1342 pub fn LLVMGetClause(LandingPad: LLVMValueRef, Idx: ::libc::c_uint) -> LLVMValueRef;
1344
1345 pub fn LLVMAddClause(LandingPad: LLVMValueRef, ClauseVal: LLVMValueRef);
1347
1348 pub fn LLVMIsCleanup(LandingPad: LLVMValueRef) -> LLVMBool;
1350
1351 pub fn LLVMSetCleanup(LandingPad: LLVMValueRef, Val: LLVMBool);
1353
1354 pub fn LLVMAddHandler(CatchSwitch: LLVMValueRef, Dest: LLVMBasicBlockRef);
1356
1357 pub fn LLVMGetNumHandlers(CatchSwitch: LLVMValueRef) -> ::libc::c_uint;
1359
1360 pub fn LLVMGetHandlers(CatchSwitch: LLVMValueRef, Handlers: *mut LLVMBasicBlockRef);
1364
1365 pub fn LLVMGetArgOperand(Funclet: LLVMValueRef, i: ::libc::c_uint) -> LLVMValueRef;
1368
1369 pub fn LLVMSetArgOperand(Funclet: LLVMValueRef, i: ::libc::c_uint, value: LLVMValueRef);
1371
1372 pub fn LLVMGetParentCatchSwitch(CatchPad: LLVMValueRef) -> LLVMValueRef;
1376
1377 pub fn LLVMSetParentCatchSwitch(CatchPad: LLVMValueRef, CatchSwitch: LLVMValueRef);
1380
1381 pub fn LLVMBuildAdd(
1383 arg1: LLVMBuilderRef,
1384 LHS: LLVMValueRef,
1385 RHS: LLVMValueRef,
1386 Name: *const ::libc::c_char,
1387 ) -> LLVMValueRef;
1388 pub fn LLVMBuildNSWAdd(
1389 arg1: LLVMBuilderRef,
1390 LHS: LLVMValueRef,
1391 RHS: LLVMValueRef,
1392 Name: *const ::libc::c_char,
1393 ) -> LLVMValueRef;
1394 pub fn LLVMBuildNUWAdd(
1395 arg1: LLVMBuilderRef,
1396 LHS: LLVMValueRef,
1397 RHS: LLVMValueRef,
1398 Name: *const ::libc::c_char,
1399 ) -> LLVMValueRef;
1400 pub fn LLVMBuildFAdd(
1401 arg1: LLVMBuilderRef,
1402 LHS: LLVMValueRef,
1403 RHS: LLVMValueRef,
1404 Name: *const ::libc::c_char,
1405 ) -> LLVMValueRef;
1406 pub fn LLVMBuildSub(
1407 arg1: LLVMBuilderRef,
1408 LHS: LLVMValueRef,
1409 RHS: LLVMValueRef,
1410 Name: *const ::libc::c_char,
1411 ) -> LLVMValueRef;
1412 pub fn LLVMBuildNSWSub(
1413 arg1: LLVMBuilderRef,
1414 LHS: LLVMValueRef,
1415 RHS: LLVMValueRef,
1416 Name: *const ::libc::c_char,
1417 ) -> LLVMValueRef;
1418 pub fn LLVMBuildNUWSub(
1419 arg1: LLVMBuilderRef,
1420 LHS: LLVMValueRef,
1421 RHS: LLVMValueRef,
1422 Name: *const ::libc::c_char,
1423 ) -> LLVMValueRef;
1424 pub fn LLVMBuildFSub(
1425 arg1: LLVMBuilderRef,
1426 LHS: LLVMValueRef,
1427 RHS: LLVMValueRef,
1428 Name: *const ::libc::c_char,
1429 ) -> LLVMValueRef;
1430 pub fn LLVMBuildMul(
1431 arg1: LLVMBuilderRef,
1432 LHS: LLVMValueRef,
1433 RHS: LLVMValueRef,
1434 Name: *const ::libc::c_char,
1435 ) -> LLVMValueRef;
1436 pub fn LLVMBuildNSWMul(
1437 arg1: LLVMBuilderRef,
1438 LHS: LLVMValueRef,
1439 RHS: LLVMValueRef,
1440 Name: *const ::libc::c_char,
1441 ) -> LLVMValueRef;
1442 pub fn LLVMBuildNUWMul(
1443 arg1: LLVMBuilderRef,
1444 LHS: LLVMValueRef,
1445 RHS: LLVMValueRef,
1446 Name: *const ::libc::c_char,
1447 ) -> LLVMValueRef;
1448 pub fn LLVMBuildFMul(
1449 arg1: LLVMBuilderRef,
1450 LHS: LLVMValueRef,
1451 RHS: LLVMValueRef,
1452 Name: *const ::libc::c_char,
1453 ) -> LLVMValueRef;
1454 pub fn LLVMBuildUDiv(
1455 arg1: LLVMBuilderRef,
1456 LHS: LLVMValueRef,
1457 RHS: LLVMValueRef,
1458 Name: *const ::libc::c_char,
1459 ) -> LLVMValueRef;
1460 pub fn LLVMBuildExactUDiv(
1461 arg1: LLVMBuilderRef,
1462 LHS: LLVMValueRef,
1463 RHS: LLVMValueRef,
1464 Name: *const ::libc::c_char,
1465 ) -> LLVMValueRef;
1466 pub fn LLVMBuildSDiv(
1467 arg1: LLVMBuilderRef,
1468 LHS: LLVMValueRef,
1469 RHS: LLVMValueRef,
1470 Name: *const ::libc::c_char,
1471 ) -> LLVMValueRef;
1472 pub fn LLVMBuildExactSDiv(
1473 arg1: LLVMBuilderRef,
1474 LHS: LLVMValueRef,
1475 RHS: LLVMValueRef,
1476 Name: *const ::libc::c_char,
1477 ) -> LLVMValueRef;
1478 pub fn LLVMBuildFDiv(
1479 arg1: LLVMBuilderRef,
1480 LHS: LLVMValueRef,
1481 RHS: LLVMValueRef,
1482 Name: *const ::libc::c_char,
1483 ) -> LLVMValueRef;
1484 pub fn LLVMBuildURem(
1485 arg1: LLVMBuilderRef,
1486 LHS: LLVMValueRef,
1487 RHS: LLVMValueRef,
1488 Name: *const ::libc::c_char,
1489 ) -> LLVMValueRef;
1490 pub fn LLVMBuildSRem(
1491 arg1: LLVMBuilderRef,
1492 LHS: LLVMValueRef,
1493 RHS: LLVMValueRef,
1494 Name: *const ::libc::c_char,
1495 ) -> LLVMValueRef;
1496 pub fn LLVMBuildFRem(
1497 arg1: LLVMBuilderRef,
1498 LHS: LLVMValueRef,
1499 RHS: LLVMValueRef,
1500 Name: *const ::libc::c_char,
1501 ) -> LLVMValueRef;
1502 pub fn LLVMBuildShl(
1503 arg1: LLVMBuilderRef,
1504 LHS: LLVMValueRef,
1505 RHS: LLVMValueRef,
1506 Name: *const ::libc::c_char,
1507 ) -> LLVMValueRef;
1508 pub fn LLVMBuildLShr(
1509 arg1: LLVMBuilderRef,
1510 LHS: LLVMValueRef,
1511 RHS: LLVMValueRef,
1512 Name: *const ::libc::c_char,
1513 ) -> LLVMValueRef;
1514 pub fn LLVMBuildAShr(
1515 arg1: LLVMBuilderRef,
1516 LHS: LLVMValueRef,
1517 RHS: LLVMValueRef,
1518 Name: *const ::libc::c_char,
1519 ) -> LLVMValueRef;
1520 pub fn LLVMBuildAnd(
1521 arg1: LLVMBuilderRef,
1522 LHS: LLVMValueRef,
1523 RHS: LLVMValueRef,
1524 Name: *const ::libc::c_char,
1525 ) -> LLVMValueRef;
1526 pub fn LLVMBuildOr(
1527 arg1: LLVMBuilderRef,
1528 LHS: LLVMValueRef,
1529 RHS: LLVMValueRef,
1530 Name: *const ::libc::c_char,
1531 ) -> LLVMValueRef;
1532 pub fn LLVMBuildXor(
1533 arg1: LLVMBuilderRef,
1534 LHS: LLVMValueRef,
1535 RHS: LLVMValueRef,
1536 Name: *const ::libc::c_char,
1537 ) -> LLVMValueRef;
1538 pub fn LLVMBuildBinOp(
1539 B: LLVMBuilderRef,
1540 Op: LLVMOpcode,
1541 LHS: LLVMValueRef,
1542 RHS: LLVMValueRef,
1543 Name: *const ::libc::c_char,
1544 ) -> LLVMValueRef;
1545 pub fn LLVMBuildNeg(
1546 arg1: LLVMBuilderRef,
1547 V: LLVMValueRef,
1548 Name: *const ::libc::c_char,
1549 ) -> LLVMValueRef;
1550 pub fn LLVMBuildNSWNeg(
1551 B: LLVMBuilderRef,
1552 V: LLVMValueRef,
1553 Name: *const ::libc::c_char,
1554 ) -> LLVMValueRef;
1555 pub fn LLVMBuildNUWNeg(
1556 B: LLVMBuilderRef,
1557 V: LLVMValueRef,
1558 Name: *const ::libc::c_char,
1559 ) -> LLVMValueRef;
1560 pub fn LLVMBuildFNeg(
1561 arg1: LLVMBuilderRef,
1562 V: LLVMValueRef,
1563 Name: *const ::libc::c_char,
1564 ) -> LLVMValueRef;
1565 pub fn LLVMBuildNot(
1566 arg1: LLVMBuilderRef,
1567 V: LLVMValueRef,
1568 Name: *const ::libc::c_char,
1569 ) -> LLVMValueRef;
1570
1571 pub fn LLVMBuildMalloc(
1573 arg1: LLVMBuilderRef,
1574 Ty: LLVMTypeRef,
1575 Name: *const ::libc::c_char,
1576 ) -> LLVMValueRef;
1577 pub fn LLVMBuildArrayMalloc(
1578 arg1: LLVMBuilderRef,
1579 Ty: LLVMTypeRef,
1580 Val: LLVMValueRef,
1581 Name: *const ::libc::c_char,
1582 ) -> LLVMValueRef;
1583 pub fn LLVMBuildMemSet(
1584 B: LLVMBuilderRef,
1585 Ptr: LLVMValueRef,
1586 Val: LLVMValueRef,
1587 Len: LLVMValueRef,
1588 Align: ::libc::c_uint,
1589 ) -> LLVMValueRef;
1590 pub fn LLVMBuildMemCpy(
1591 B: LLVMBuilderRef,
1592 Dst: LLVMValueRef,
1593 DstAlign: ::libc::c_uint,
1594 Src: LLVMValueRef,
1595 SrcAlign: ::libc::c_uint,
1596 Size: LLVMValueRef,
1597 ) -> LLVMValueRef;
1598 pub fn LLVMBuildMemMove(
1599 B: LLVMBuilderRef,
1600 Dst: LLVMValueRef,
1601 DstAlign: ::libc::c_uint,
1602 Src: LLVMValueRef,
1603 SrcAlign: ::libc::c_uint,
1604 Size: LLVMValueRef,
1605 ) -> LLVMValueRef;
1606 pub fn LLVMBuildAlloca(
1607 arg1: LLVMBuilderRef,
1608 Ty: LLVMTypeRef,
1609 Name: *const ::libc::c_char,
1610 ) -> LLVMValueRef;
1611 pub fn LLVMBuildArrayAlloca(
1612 arg1: LLVMBuilderRef,
1613 Ty: LLVMTypeRef,
1614 Val: LLVMValueRef,
1615 Name: *const ::libc::c_char,
1616 ) -> LLVMValueRef;
1617 pub fn LLVMBuildFree(arg1: LLVMBuilderRef, PointerVal: LLVMValueRef) -> LLVMValueRef;
1618 pub fn LLVMBuildLoad(
1619 arg1: LLVMBuilderRef,
1620 PointerVal: LLVMValueRef,
1621 Name: *const ::libc::c_char,
1622 ) -> LLVMValueRef;
1623 pub fn LLVMBuildLoad2(
1624 arg1: LLVMBuilderRef,
1625 Ty: LLVMTypeRef,
1626 PointerVal: LLVMValueRef,
1627 Name: *const ::libc::c_char,
1628 ) -> LLVMValueRef;
1629 pub fn LLVMBuildStore(
1630 arg1: LLVMBuilderRef,
1631 Val: LLVMValueRef,
1632 Ptr: LLVMValueRef,
1633 ) -> LLVMValueRef;
1634 pub fn LLVMBuildGEP(
1635 B: LLVMBuilderRef,
1636 Pointer: LLVMValueRef,
1637 Indices: *mut LLVMValueRef,
1638 NumIndices: ::libc::c_uint,
1639 Name: *const ::libc::c_char,
1640 ) -> LLVMValueRef;
1641 pub fn LLVMBuildInBoundsGEP(
1642 B: LLVMBuilderRef,
1643 Pointer: LLVMValueRef,
1644 Indices: *mut LLVMValueRef,
1645 NumIndices: ::libc::c_uint,
1646 Name: *const ::libc::c_char,
1647 ) -> LLVMValueRef;
1648 pub fn LLVMBuildStructGEP(
1649 B: LLVMBuilderRef,
1650 Pointer: LLVMValueRef,
1651 Idx: ::libc::c_uint,
1652 Name: *const ::libc::c_char,
1653 ) -> LLVMValueRef;
1654 pub fn LLVMBuildGEP2(
1655 B: LLVMBuilderRef,
1656 Ty: LLVMTypeRef,
1657 Pointer: LLVMValueRef,
1658 Indices: *mut LLVMValueRef,
1659 NumIndices: ::libc::c_uint,
1660 Name: *const ::libc::c_char,
1661 ) -> LLVMValueRef;
1662 pub fn LLVMBuildInBoundsGEP2(
1663 B: LLVMBuilderRef,
1664 Ty: LLVMTypeRef,
1665 Pointer: LLVMValueRef,
1666 Indices: *mut LLVMValueRef,
1667 NumIndices: ::libc::c_uint,
1668 Name: *const ::libc::c_char,
1669 ) -> LLVMValueRef;
1670 pub fn LLVMBuildStructGEP2(
1671 B: LLVMBuilderRef,
1672 Ty: LLVMTypeRef,
1673 Pointer: LLVMValueRef,
1674 Idx: ::libc::c_uint,
1675 Name: *const ::libc::c_char,
1676 ) -> LLVMValueRef;
1677 pub fn LLVMBuildGlobalString(
1678 B: LLVMBuilderRef,
1679 Str: *const ::libc::c_char,
1680 Name: *const ::libc::c_char,
1681 ) -> LLVMValueRef;
1682 pub fn LLVMBuildGlobalStringPtr(
1683 B: LLVMBuilderRef,
1684 Str: *const ::libc::c_char,
1685 Name: *const ::libc::c_char,
1686 ) -> LLVMValueRef;
1687 pub fn LLVMGetVolatile(MemoryAccessInst: LLVMValueRef) -> LLVMBool;
1688 pub fn LLVMSetVolatile(MemoryAccessInst: LLVMValueRef, IsVolatile: LLVMBool);
1689 #[cfg(LLVM_VERSION_10_OR_GREATER)]
1690 pub fn LLVMGetWeak(CmpXchgInst: LLVMValueRef) -> LLVMBool;
1691 #[cfg(LLVM_VERSION_10_OR_GREATER)]
1692 pub fn LLVMSetWeak(CmpXchgInst: LLVMValueRef, IsWeak: LLVMBool);
1693 pub fn LLVMGetOrdering(MemoryAccessInst: LLVMValueRef) -> LLVMAtomicOrdering;
1694 pub fn LLVMSetOrdering(MemoryAccessInst: LLVMValueRef, Ordering: LLVMAtomicOrdering);
1695 #[cfg(LLVM_VERSION_10_OR_GREATER)]
1696 pub fn LLVMGetAtomicRMWBinOp(AtomicRMWInst: LLVMValueRef) -> LLVMAtomicRMWBinOp;
1697 #[cfg(LLVM_VERSION_10_OR_GREATER)]
1698 pub fn LLVMSetAtomicRMWBinOp(AtomicRMWInst: LLVMValueRef, BinOp: LLVMAtomicRMWBinOp);
1699
1700 pub fn LLVMBuildTrunc(
1702 arg1: LLVMBuilderRef,
1703 Val: LLVMValueRef,
1704 DestTy: LLVMTypeRef,
1705 Name: *const ::libc::c_char,
1706 ) -> LLVMValueRef;
1707 pub fn LLVMBuildZExt(
1708 arg1: LLVMBuilderRef,
1709 Val: LLVMValueRef,
1710 DestTy: LLVMTypeRef,
1711 Name: *const ::libc::c_char,
1712 ) -> LLVMValueRef;
1713 pub fn LLVMBuildSExt(
1714 arg1: LLVMBuilderRef,
1715 Val: LLVMValueRef,
1716 DestTy: LLVMTypeRef,
1717 Name: *const ::libc::c_char,
1718 ) -> LLVMValueRef;
1719 pub fn LLVMBuildFPToUI(
1720 arg1: LLVMBuilderRef,
1721 Val: LLVMValueRef,
1722 DestTy: LLVMTypeRef,
1723 Name: *const ::libc::c_char,
1724 ) -> LLVMValueRef;
1725 pub fn LLVMBuildFPToSI(
1726 arg1: LLVMBuilderRef,
1727 Val: LLVMValueRef,
1728 DestTy: LLVMTypeRef,
1729 Name: *const ::libc::c_char,
1730 ) -> LLVMValueRef;
1731 pub fn LLVMBuildUIToFP(
1732 arg1: LLVMBuilderRef,
1733 Val: LLVMValueRef,
1734 DestTy: LLVMTypeRef,
1735 Name: *const ::libc::c_char,
1736 ) -> LLVMValueRef;
1737 pub fn LLVMBuildSIToFP(
1738 arg1: LLVMBuilderRef,
1739 Val: LLVMValueRef,
1740 DestTy: LLVMTypeRef,
1741 Name: *const ::libc::c_char,
1742 ) -> LLVMValueRef;
1743 pub fn LLVMBuildFPTrunc(
1744 arg1: LLVMBuilderRef,
1745 Val: LLVMValueRef,
1746 DestTy: LLVMTypeRef,
1747 Name: *const ::libc::c_char,
1748 ) -> LLVMValueRef;
1749 pub fn LLVMBuildFPExt(
1750 arg1: LLVMBuilderRef,
1751 Val: LLVMValueRef,
1752 DestTy: LLVMTypeRef,
1753 Name: *const ::libc::c_char,
1754 ) -> LLVMValueRef;
1755 pub fn LLVMBuildPtrToInt(
1756 arg1: LLVMBuilderRef,
1757 Val: LLVMValueRef,
1758 DestTy: LLVMTypeRef,
1759 Name: *const ::libc::c_char,
1760 ) -> LLVMValueRef;
1761 pub fn LLVMBuildIntToPtr(
1762 arg1: LLVMBuilderRef,
1763 Val: LLVMValueRef,
1764 DestTy: LLVMTypeRef,
1765 Name: *const ::libc::c_char,
1766 ) -> LLVMValueRef;
1767 pub fn LLVMBuildBitCast(
1768 arg1: LLVMBuilderRef,
1769 Val: LLVMValueRef,
1770 DestTy: LLVMTypeRef,
1771 Name: *const ::libc::c_char,
1772 ) -> LLVMValueRef;
1773 pub fn LLVMBuildAddrSpaceCast(
1774 arg1: LLVMBuilderRef,
1775 Val: LLVMValueRef,
1776 DestTy: LLVMTypeRef,
1777 Name: *const ::libc::c_char,
1778 ) -> LLVMValueRef;
1779 pub fn LLVMBuildZExtOrBitCast(
1780 arg1: LLVMBuilderRef,
1781 Val: LLVMValueRef,
1782 DestTy: LLVMTypeRef,
1783 Name: *const ::libc::c_char,
1784 ) -> LLVMValueRef;
1785 pub fn LLVMBuildSExtOrBitCast(
1786 arg1: LLVMBuilderRef,
1787 Val: LLVMValueRef,
1788 DestTy: LLVMTypeRef,
1789 Name: *const ::libc::c_char,
1790 ) -> LLVMValueRef;
1791 pub fn LLVMBuildTruncOrBitCast(
1792 arg1: LLVMBuilderRef,
1793 Val: LLVMValueRef,
1794 DestTy: LLVMTypeRef,
1795 Name: *const ::libc::c_char,
1796 ) -> LLVMValueRef;
1797 pub fn LLVMBuildCast(
1798 B: LLVMBuilderRef,
1799 Op: LLVMOpcode,
1800 Val: LLVMValueRef,
1801 DestTy: LLVMTypeRef,
1802 Name: *const ::libc::c_char,
1803 ) -> LLVMValueRef;
1804 pub fn LLVMBuildPointerCast(
1805 arg1: LLVMBuilderRef,
1806 Val: LLVMValueRef,
1807 DestTy: LLVMTypeRef,
1808 Name: *const ::libc::c_char,
1809 ) -> LLVMValueRef;
1810 pub fn LLVMBuildIntCast(
1811 arg1: LLVMBuilderRef,
1812 Val: LLVMValueRef,
1813 DestTy: LLVMTypeRef,
1814 Name: *const ::libc::c_char,
1815 ) -> LLVMValueRef;
1816 pub fn LLVMBuildIntCast2(
1817 arg1: LLVMBuilderRef,
1818 Val: LLVMValueRef,
1819 DestTy: LLVMTypeRef,
1820 IsSigned: LLVMBool,
1821 Name: *const ::libc::c_char,
1822 ) -> LLVMValueRef;
1823 pub fn LLVMBuildFPCast(
1824 arg1: LLVMBuilderRef,
1825 Val: LLVMValueRef,
1826 DestTy: LLVMTypeRef,
1827 Name: *const ::libc::c_char,
1828 ) -> LLVMValueRef;
1829
1830 pub fn LLVMBuildICmp(
1832 arg1: LLVMBuilderRef,
1833 Op: LLVMIntPredicate,
1834 LHS: LLVMValueRef,
1835 RHS: LLVMValueRef,
1836 Name: *const ::libc::c_char,
1837 ) -> LLVMValueRef;
1838 pub fn LLVMBuildFCmp(
1839 arg1: LLVMBuilderRef,
1840 Op: LLVMRealPredicate,
1841 LHS: LLVMValueRef,
1842 RHS: LLVMValueRef,
1843 Name: *const ::libc::c_char,
1844 ) -> LLVMValueRef;
1845
1846 pub fn LLVMBuildPhi(
1848 arg1: LLVMBuilderRef,
1849 Ty: LLVMTypeRef,
1850 Name: *const ::libc::c_char,
1851 ) -> LLVMValueRef;
1852 pub fn LLVMBuildCall(
1853 arg1: LLVMBuilderRef,
1854 Fn: LLVMValueRef,
1855 Args: *mut LLVMValueRef,
1856 NumArgs: ::libc::c_uint,
1857 Name: *const ::libc::c_char,
1858 ) -> LLVMValueRef;
1859 pub fn LLVMBuildCall2(
1860 arg1: LLVMBuilderRef,
1861 arg2: LLVMTypeRef,
1862 Fn: LLVMValueRef,
1863 Args: *mut LLVMValueRef,
1864 NumArgs: ::libc::c_uint,
1865 Name: *const ::libc::c_char,
1866 ) -> LLVMValueRef;
1867 pub fn LLVMBuildSelect(
1868 arg1: LLVMBuilderRef,
1869 If: LLVMValueRef,
1870 Then: LLVMValueRef,
1871 Else: LLVMValueRef,
1872 Name: *const ::libc::c_char,
1873 ) -> LLVMValueRef;
1874 pub fn LLVMBuildVAArg(
1875 arg1: LLVMBuilderRef,
1876 List: LLVMValueRef,
1877 Ty: LLVMTypeRef,
1878 Name: *const ::libc::c_char,
1879 ) -> LLVMValueRef;
1880 pub fn LLVMBuildExtractElement(
1881 arg1: LLVMBuilderRef,
1882 VecVal: LLVMValueRef,
1883 Index: LLVMValueRef,
1884 Name: *const ::libc::c_char,
1885 ) -> LLVMValueRef;
1886 pub fn LLVMBuildInsertElement(
1887 arg1: LLVMBuilderRef,
1888 VecVal: LLVMValueRef,
1889 EltVal: LLVMValueRef,
1890 Index: LLVMValueRef,
1891 Name: *const ::libc::c_char,
1892 ) -> LLVMValueRef;
1893 pub fn LLVMBuildShuffleVector(
1894 arg1: LLVMBuilderRef,
1895 V1: LLVMValueRef,
1896 V2: LLVMValueRef,
1897 Mask: LLVMValueRef,
1898 Name: *const ::libc::c_char,
1899 ) -> LLVMValueRef;
1900 pub fn LLVMBuildExtractValue(
1901 arg1: LLVMBuilderRef,
1902 AggVal: LLVMValueRef,
1903 Index: ::libc::c_uint,
1904 Name: *const ::libc::c_char,
1905 ) -> LLVMValueRef;
1906 pub fn LLVMBuildInsertValue(
1907 arg1: LLVMBuilderRef,
1908 AggVal: LLVMValueRef,
1909 EltVal: LLVMValueRef,
1910 Index: ::libc::c_uint,
1911 Name: *const ::libc::c_char,
1912 ) -> LLVMValueRef;
1913 #[cfg(LLVM_VERSION_10_OR_GREATER)]
1914 pub fn LLVMBuildFreeze(
1915 arg1: LLVMBuilderRef,
1916 Val: LLVMValueRef,
1917 Name: *const ::libc::c_char,
1918 ) -> LLVMValueRef;
1919 pub fn LLVMBuildIsNull(
1920 arg1: LLVMBuilderRef,
1921 Val: LLVMValueRef,
1922 Name: *const ::libc::c_char,
1923 ) -> LLVMValueRef;
1924 pub fn LLVMBuildIsNotNull(
1925 arg1: LLVMBuilderRef,
1926 Val: LLVMValueRef,
1927 Name: *const ::libc::c_char,
1928 ) -> LLVMValueRef;
1929 pub fn LLVMBuildPtrDiff(
1930 arg1: LLVMBuilderRef,
1931 LHS: LLVMValueRef,
1932 RHS: LLVMValueRef,
1933 Name: *const ::libc::c_char,
1934 ) -> LLVMValueRef;
1935 pub fn LLVMBuildFence(
1936 B: LLVMBuilderRef,
1937 ordering: LLVMAtomicOrdering,
1938 singleThread: LLVMBool,
1939 Name: *const ::libc::c_char,
1940 ) -> LLVMValueRef;
1941 pub fn LLVMBuildAtomicRMW(
1942 B: LLVMBuilderRef,
1943 op: LLVMAtomicRMWBinOp,
1944 PTR: LLVMValueRef,
1945 Val: LLVMValueRef,
1946 ordering: LLVMAtomicOrdering,
1947 singleThread: LLVMBool,
1948 ) -> LLVMValueRef;
1949 pub fn LLVMBuildAtomicCmpXchg(
1950 B: LLVMBuilderRef,
1951 Ptr: LLVMValueRef,
1952 Cmp: LLVMValueRef,
1953 New: LLVMValueRef,
1954 SuccessOrdering: LLVMAtomicOrdering,
1955 FailureOrdering: LLVMAtomicOrdering,
1956 SingleThread: LLVMBool,
1957 ) -> LLVMValueRef;
1958 pub fn LLVMIsAtomicSingleThread(AtomicInst: LLVMValueRef) -> LLVMBool;
1959 pub fn LLVMSetAtomicSingleThread(AtomicInst: LLVMValueRef, SingleThread: LLVMBool);
1960 pub fn LLVMGetCmpXchgSuccessOrdering(CmpXchgInst: LLVMValueRef) -> LLVMAtomicOrdering;
1961 pub fn LLVMSetCmpXchgSuccessOrdering(CmpXchgInst: LLVMValueRef, Ordering: LLVMAtomicOrdering);
1962 pub fn LLVMGetCmpXchgFailureOrdering(CmpXchgInst: LLVMValueRef) -> LLVMAtomicOrdering;
1963 pub fn LLVMSetCmpXchgFailureOrdering(CmpXchgInst: LLVMValueRef, Ordering: LLVMAtomicOrdering);
1964}
1965
1966extern "C" {
1968 pub fn LLVMCreateModuleProviderForExistingModule(M: LLVMModuleRef) -> LLVMModuleProviderRef;
1969 pub fn LLVMDisposeModuleProvider(M: LLVMModuleProviderRef);
1970}
1971
1972extern "C" {
1974 pub fn LLVMCreateMemoryBufferWithContentsOfFile(
1975 Path: *const ::libc::c_char,
1976 OutMemBuf: *mut LLVMMemoryBufferRef,
1977 OutMessage: *mut *mut ::libc::c_char,
1978 ) -> LLVMBool;
1979 pub fn LLVMCreateMemoryBufferWithSTDIN(
1980 OutMemBuf: *mut LLVMMemoryBufferRef,
1981 OutMessage: *mut *mut ::libc::c_char,
1982 ) -> LLVMBool;
1983 pub fn LLVMCreateMemoryBufferWithMemoryRange(
1984 InputData: *const ::libc::c_char,
1985 InputDataLength: ::libc::size_t,
1986 BufferName: *const ::libc::c_char,
1987 RequiresNullTerminator: LLVMBool,
1988 ) -> LLVMMemoryBufferRef;
1989 pub fn LLVMCreateMemoryBufferWithMemoryRangeCopy(
1990 InputData: *const ::libc::c_char,
1991 InputDataLength: ::libc::size_t,
1992 BufferName: *const ::libc::c_char,
1993 ) -> LLVMMemoryBufferRef;
1994 pub fn LLVMGetBufferStart(MemBuf: LLVMMemoryBufferRef) -> *const ::libc::c_char;
1995 pub fn LLVMGetBufferSize(MemBuf: LLVMMemoryBufferRef) -> ::libc::size_t;
1996 pub fn LLVMDisposeMemoryBuffer(MemBuf: LLVMMemoryBufferRef);
1997}
1998
1999extern "C" {
2001 pub fn LLVMGetGlobalPassRegistry() -> LLVMPassRegistryRef;
2002}
2003
2004extern "C" {
2006 pub fn LLVMCreatePassManager() -> LLVMPassManagerRef;
2007 pub fn LLVMCreateFunctionPassManagerForModule(M: LLVMModuleRef) -> LLVMPassManagerRef;
2008 pub fn LLVMCreateFunctionPassManager(MP: LLVMModuleProviderRef) -> LLVMPassManagerRef;
2009 pub fn LLVMRunPassManager(PM: LLVMPassManagerRef, M: LLVMModuleRef) -> LLVMBool;
2010 pub fn LLVMInitializeFunctionPassManager(FPM: LLVMPassManagerRef) -> LLVMBool;
2011 pub fn LLVMRunFunctionPassManager(FPM: LLVMPassManagerRef, F: LLVMValueRef) -> LLVMBool;
2012 pub fn LLVMFinalizeFunctionPassManager(FPM: LLVMPassManagerRef) -> LLVMBool;
2013 pub fn LLVMDisposePassManager(PM: LLVMPassManagerRef);
2014}
2015
2016extern "C" {
2018 pub fn LLVMStartMultithreaded() -> LLVMBool;
2020 pub fn LLVMStopMultithreaded();
2022 pub fn LLVMIsMultithreaded() -> LLVMBool;
2023}