-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathcore.zig
712 lines (701 loc) · 73.6 KB
/
core.zig
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
const LLVMtype = @import("types.zig");
pub extern fn LLVMInitializeCore(R: LLVMtype.LLVMPassRegistryRef) void;
pub extern fn LLVMShutdown() void;
pub extern fn LLVMGetVersion(Major: [*c]c_uint, Minor: [*c]c_uint, Patch: [*c]c_uint) void;
pub extern fn LLVMCreateMessage(Message: [*:0]const u8) [*c]u8;
pub extern fn LLVMDisposeMessage(Message: [*c]u8) void;
pub const LLVMDiagnosticHandler = ?*const fn (LLVMtype.LLVMDiagnosticInfoRef, ?*anyopaque) callconv(.C) void;
pub const LLVMYieldCallback = ?*const fn (LLVMtype.LLVMContextRef, ?*anyopaque) callconv(.C) void;
pub extern fn LLVMContextCreate() LLVMtype.LLVMContextRef;
pub extern fn LLVMGetGlobalContext() LLVMtype.LLVMContextRef;
pub extern fn LLVMContextSetDiagnosticHandler(C: LLVMtype.LLVMContextRef, Handler: LLVMDiagnosticHandler, DiagnosticContext: ?*anyopaque) void;
pub extern fn LLVMContextGetDiagnosticHandler(C: LLVMtype.LLVMContextRef) LLVMDiagnosticHandler;
pub extern fn LLVMContextGetDiagnosticContext(C: LLVMtype.LLVMContextRef) ?*anyopaque;
pub extern fn LLVMContextSetYieldCallback(C: LLVMtype.LLVMContextRef, Callback: LLVMYieldCallback, OpaqueHandle: ?*anyopaque) void;
pub extern fn LLVMContextShouldDiscardValueNames(C: LLVMtype.LLVMContextRef) LLVMtype.LLVMBool;
pub extern fn LLVMContextSetDiscardValueNames(C: LLVMtype.LLVMContextRef, Discard: LLVMtype.LLVMBool) void;
pub extern fn LLVMContextSetOpaquePointers(C: LLVMtype.LLVMContextRef, OpaquePointers: LLVMtype.LLVMBool) void;
pub extern fn LLVMContextDispose(C: LLVMtype.LLVMContextRef) void;
pub extern fn LLVMGetDiagInfoDescription(DI: LLVMtype.LLVMDiagnosticInfoRef) [*c]u8;
pub extern fn LLVMGetDiagInfoSeverity(DI: LLVMtype.LLVMDiagnosticInfoRef) LLVMtype.LLVMDiagnosticSeverity;
pub extern fn LLVMGetMDKindIDInContext(C: LLVMtype.LLVMContextRef, Name: [*:0]const u8, SLen: c_uint) c_uint;
pub extern fn LLVMGetMDKindID(Name: [*:0]const u8, SLen: c_uint) c_uint;
pub extern fn LLVMGetEnumAttributeKindForName(Name: [*:0]const u8, SLen: usize) c_uint;
pub extern fn LLVMGetLastEnumAttributeKind() c_uint;
pub extern fn LLVMCreateEnumAttribute(C: LLVMtype.LLVMContextRef, KindID: c_uint, Val: u64) LLVMtype.LLVMAttributeRef;
pub extern fn LLVMGetEnumAttributeKind(A: LLVMtype.LLVMAttributeRef) c_uint;
pub extern fn LLVMGetEnumAttributeValue(A: LLVMtype.LLVMAttributeRef) u64;
pub extern fn LLVMCreateTypeAttribute(C: LLVMtype.LLVMContextRef, KindID: c_uint, type_ref: LLVMtype.LLVMTypeRef) LLVMtype.LLVMAttributeRef;
pub extern fn LLVMGetTypeAttributeValue(A: LLVMtype.LLVMAttributeRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMCreateStringAttribute(C: LLVMtype.LLVMContextRef, K: [*:0]const u8, KLength: c_uint, V: [*:0]const u8, VLength: c_uint) LLVMtype.LLVMAttributeRef;
pub extern fn LLVMGetStringAttributeKind(A: LLVMtype.LLVMAttributeRef, Length: [*c]c_uint) [*:0]const u8;
pub extern fn LLVMGetStringAttributeValue(A: LLVMtype.LLVMAttributeRef, Length: [*c]c_uint) [*:0]const u8;
pub extern fn LLVMIsEnumAttribute(A: LLVMtype.LLVMAttributeRef) LLVMtype.LLVMBool;
pub extern fn LLVMIsStringAttribute(A: LLVMtype.LLVMAttributeRef) LLVMtype.LLVMBool;
pub extern fn LLVMIsTypeAttribute(A: LLVMtype.LLVMAttributeRef) LLVMtype.LLVMBool;
pub extern fn LLVMGetTypeByName2(C: LLVMtype.LLVMContextRef, Name: [*:0]const u8) LLVMtype.LLVMTypeRef;
pub extern fn LLVMModuleCreateWithName(ModuleID: [*:0]const u8) LLVMtype.LLVMModuleRef;
pub extern fn LLVMModuleCreateWithNameInContext(ModuleID: [*:0]const u8, C: LLVMtype.LLVMContextRef) LLVMtype.LLVMModuleRef;
pub extern fn LLVMCloneModule(M: LLVMtype.LLVMModuleRef) LLVMtype.LLVMModuleRef;
pub extern fn LLVMDisposeModule(M: LLVMtype.LLVMModuleRef) void;
pub extern fn LLVMGetModuleIdentifier(M: LLVMtype.LLVMModuleRef, Len: [*c]usize) [*:0]const u8;
pub extern fn LLVMSetModuleIdentifier(M: LLVMtype.LLVMModuleRef, Ident: [*:0]const u8, Len: usize) void;
pub extern fn LLVMGetSourceFileName(M: LLVMtype.LLVMModuleRef, Len: [*c]usize) [*:0]const u8;
pub extern fn LLVMSetSourceFileName(M: LLVMtype.LLVMModuleRef, Name: [*:0]const u8, Len: usize) void;
pub extern fn LLVMGetDataLayoutStr(M: LLVMtype.LLVMModuleRef) [*:0]const u8;
pub extern fn LLVMGetDataLayout(M: LLVMtype.LLVMModuleRef) [*:0]const u8;
pub extern fn LLVMSetDataLayout(M: LLVMtype.LLVMModuleRef, DataLayoutStr: [*:0]const u8) void;
pub extern fn LLVMGetTarget(M: LLVMtype.LLVMModuleRef) [*:0]const u8;
pub extern fn LLVMSetTarget(M: LLVMtype.LLVMModuleRef, Triple: [*:0]const u8) void;
pub extern fn LLVMCopyModuleFlagsMetadata(M: LLVMtype.LLVMModuleRef, Len: [*c]usize) ?*LLVMtype.LLVMModuleFlagEntry;
pub extern fn LLVMDisposeModuleFlagsMetadata(Entries: ?*LLVMtype.LLVMModuleFlagEntry) void;
pub extern fn LLVMModuleFlagEntriesGetFlagBehavior(Entries: ?*LLVMtype.LLVMModuleFlagEntry, Index: c_uint) LLVMtype.LLVMModuleFlagBehavior;
pub extern fn LLVMModuleFlagEntriesGetKey(Entries: ?*LLVMtype.LLVMModuleFlagEntry, Index: c_uint, Len: [*c]usize) [*:0]const u8;
pub extern fn LLVMModuleFlagEntriesGetMetadata(Entries: ?*LLVMtype.LLVMModuleFlagEntry, Index: c_uint) LLVMtype.LLVMMetadataRef;
pub extern fn LLVMGetModuleFlag(M: LLVMtype.LLVMModuleRef, Key: [*:0]const u8, KeyLen: usize) LLVMtype.LLVMMetadataRef;
pub extern fn LLVMAddModuleFlag(M: LLVMtype.LLVMModuleRef, Behavior: LLVMtype.LLVMModuleFlagBehavior, Key: [*:0]const u8, KeyLen: usize, Val: LLVMtype.LLVMMetadataRef) void;
pub extern fn LLVMDumpModule(M: LLVMtype.LLVMModuleRef) void;
pub extern fn LLVMPrintModuleToFile(M: LLVMtype.LLVMModuleRef, Filename: [*:0]const u8, ErrorMessage: [*c][*c]u8) LLVMtype.LLVMBool;
pub extern fn LLVMPrintModuleToString(M: LLVMtype.LLVMModuleRef) [*c]u8;
pub extern fn LLVMGetModuleInlineAsm(M: LLVMtype.LLVMModuleRef, Len: [*c]usize) [*:0]const u8;
pub extern fn LLVMSetModuleInlineAsm2(M: LLVMtype.LLVMModuleRef, Asm: [*:0]const u8, Len: usize) void;
pub extern fn LLVMAppendModuleInlineAsm(M: LLVMtype.LLVMModuleRef, Asm: [*:0]const u8, Len: usize) void;
pub extern fn LLVMGetInlineAsm(Ty: LLVMtype.LLVMTypeRef, AsmString: [*c]u8, AsmStringSize: usize, Constraints: [*c]u8, ConstraintsSize: usize, HasSideEffects: LLVMtype.LLVMBool, IsAlignStack: LLVMtype.LLVMBool, Dialect: LLVMtype.LLVMInlineAsmDialect, CanThrow: LLVMtype.LLVMBool) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetModuleContext(M: LLVMtype.LLVMModuleRef) LLVMtype.LLVMContextRef;
pub extern fn LLVMGetTypeByName(M: LLVMtype.LLVMModuleRef, Name: [*:0]const u8) LLVMtype.LLVMTypeRef;
pub extern fn LLVMGetFirstNamedMetadata(M: LLVMtype.LLVMModuleRef) LLVMtype.LLVMNamedMDNodeRef;
pub extern fn LLVMGetLastNamedMetadata(M: LLVMtype.LLVMModuleRef) LLVMtype.LLVMNamedMDNodeRef;
pub extern fn LLVMGetNextNamedMetadata(NamedMDNode: LLVMtype.LLVMNamedMDNodeRef) LLVMtype.LLVMNamedMDNodeRef;
pub extern fn LLVMGetPreviousNamedMetadata(NamedMDNode: LLVMtype.LLVMNamedMDNodeRef) LLVMtype.LLVMNamedMDNodeRef;
pub extern fn LLVMGetNamedMetadata(M: LLVMtype.LLVMModuleRef, Name: [*:0]const u8, NameLen: usize) LLVMtype.LLVMNamedMDNodeRef;
pub extern fn LLVMGetOrInsertNamedMetadata(M: LLVMtype.LLVMModuleRef, Name: [*:0]const u8, NameLen: usize) LLVMtype.LLVMNamedMDNodeRef;
pub extern fn LLVMGetNamedMetadataName(NamedMD: LLVMtype.LLVMNamedMDNodeRef, NameLen: [*c]usize) [*:0]const u8;
pub extern fn LLVMGetNamedMetadataNumOperands(M: LLVMtype.LLVMModuleRef, Name: [*:0]const u8) c_uint;
pub extern fn LLVMGetNamedMetadataOperands(M: LLVMtype.LLVMModuleRef, Name: [*:0]const u8, Dest: [*c]LLVMtype.LLVMValueRef) void;
pub extern fn LLVMAddNamedMetadataOperand(M: LLVMtype.LLVMModuleRef, Name: [*:0]const u8, Val: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMGetDebugLocDirectory(Val: LLVMtype.LLVMValueRef, Length: [*c]c_uint) [*:0]const u8;
pub extern fn LLVMGetDebugLocFilename(Val: LLVMtype.LLVMValueRef, Length: [*c]c_uint) [*:0]const u8;
pub extern fn LLVMGetDebugLocLine(Val: LLVMtype.LLVMValueRef) c_uint;
pub extern fn LLVMGetDebugLocColumn(Val: LLVMtype.LLVMValueRef) c_uint;
pub extern fn LLVMAddFunction(M: LLVMtype.LLVMModuleRef, Name: [*:0]const u8, FunctionTy: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetNamedFunction(M: LLVMtype.LLVMModuleRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetFirstFunction(M: LLVMtype.LLVMModuleRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetLastFunction(M: LLVMtype.LLVMModuleRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetNextFunction(Fn: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetPreviousFunction(Fn: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMSetModuleInlineAsm(M: LLVMtype.LLVMModuleRef, Asm: [*:0]const u8) void;
pub extern fn LLVMGetTypeKind(Ty: LLVMtype.LLVMTypeRef) LLVMtype.LLVMTypeKind;
pub extern fn LLVMTypeIsSized(Ty: LLVMtype.LLVMTypeRef) LLVMtype.LLVMBool;
pub extern fn LLVMGetTypeContext(Ty: LLVMtype.LLVMTypeRef) LLVMtype.LLVMContextRef;
pub extern fn LLVMDumpType(Val: LLVMtype.LLVMTypeRef) void;
pub extern fn LLVMPrintTypeToString(Val: LLVMtype.LLVMTypeRef) [*c]u8;
pub extern fn LLVMInt1TypeInContext(C: LLVMtype.LLVMContextRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMInt8TypeInContext(C: LLVMtype.LLVMContextRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMInt16TypeInContext(C: LLVMtype.LLVMContextRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMInt32TypeInContext(C: LLVMtype.LLVMContextRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMInt64TypeInContext(C: LLVMtype.LLVMContextRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMInt128TypeInContext(C: LLVMtype.LLVMContextRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMIntTypeInContext(C: LLVMtype.LLVMContextRef, NumBits: c_uint) LLVMtype.LLVMTypeRef;
pub extern fn LLVMInt1Type() LLVMtype.LLVMTypeRef;
pub extern fn LLVMInt8Type() LLVMtype.LLVMTypeRef;
pub extern fn LLVMInt16Type() LLVMtype.LLVMTypeRef;
pub extern fn LLVMInt32Type() LLVMtype.LLVMTypeRef;
pub extern fn LLVMInt64Type() LLVMtype.LLVMTypeRef;
pub extern fn LLVMInt128Type() LLVMtype.LLVMTypeRef;
pub extern fn LLVMIntType(NumBits: c_uint) LLVMtype.LLVMTypeRef;
pub extern fn LLVMGetIntTypeWidth(IntegerTy: LLVMtype.LLVMTypeRef) c_uint;
pub extern fn LLVMHalfTypeInContext(C: LLVMtype.LLVMContextRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMBFloatTypeInContext(C: LLVMtype.LLVMContextRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMFloatTypeInContext(C: LLVMtype.LLVMContextRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMDoubleTypeInContext(C: LLVMtype.LLVMContextRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMX86FP80TypeInContext(C: LLVMtype.LLVMContextRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMFP128TypeInContext(C: LLVMtype.LLVMContextRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMPPCFP128TypeInContext(C: LLVMtype.LLVMContextRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMHalfType() LLVMtype.LLVMTypeRef;
pub extern fn LLVMBFloatType() LLVMtype.LLVMTypeRef;
pub extern fn LLVMFloatType() LLVMtype.LLVMTypeRef;
pub extern fn LLVMDoubleType() LLVMtype.LLVMTypeRef;
pub extern fn LLVMX86FP80Type() LLVMtype.LLVMTypeRef;
pub extern fn LLVMFP128Type() LLVMtype.LLVMTypeRef;
pub extern fn LLVMPPCFP128Type() LLVMtype.LLVMTypeRef;
pub extern fn LLVMFunctionType(ReturnType: LLVMtype.LLVMTypeRef, ParamTypes: [*c]LLVMtype.LLVMTypeRef, ParamCount: c_uint, IsVarArg: LLVMtype.LLVMBool) LLVMtype.LLVMTypeRef;
pub extern fn LLVMIsFunctionVarArg(FunctionTy: LLVMtype.LLVMTypeRef) LLVMtype.LLVMBool;
pub extern fn LLVMGetReturnType(FunctionTy: LLVMtype.LLVMTypeRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMCountParamTypes(FunctionTy: LLVMtype.LLVMTypeRef) c_uint;
pub extern fn LLVMGetParamTypes(FunctionTy: LLVMtype.LLVMTypeRef, Dest: [*c]LLVMtype.LLVMTypeRef) void;
pub extern fn LLVMStructTypeInContext(C: LLVMtype.LLVMContextRef, ElementTypes: [*c]LLVMtype.LLVMTypeRef, ElementCount: c_uint, Packed: LLVMtype.LLVMBool) LLVMtype.LLVMTypeRef;
pub extern fn LLVMStructType(ElementTypes: [*c]LLVMtype.LLVMTypeRef, ElementCount: c_uint, Packed: LLVMtype.LLVMBool) LLVMtype.LLVMTypeRef;
pub extern fn LLVMStructCreateNamed(C: LLVMtype.LLVMContextRef, Name: [*:0]const u8) LLVMtype.LLVMTypeRef;
pub extern fn LLVMGetStructName(Ty: LLVMtype.LLVMTypeRef) [*:0]const u8;
pub extern fn LLVMStructSetBody(StructTy: LLVMtype.LLVMTypeRef, ElementTypes: [*c]LLVMtype.LLVMTypeRef, ElementCount: c_uint, Packed: LLVMtype.LLVMBool) void;
pub extern fn LLVMCountStructElementTypes(StructTy: LLVMtype.LLVMTypeRef) c_uint;
pub extern fn LLVMGetStructElementTypes(StructTy: LLVMtype.LLVMTypeRef, Dest: [*c]LLVMtype.LLVMTypeRef) void;
pub extern fn LLVMStructGetTypeAtIndex(StructTy: LLVMtype.LLVMTypeRef, i: c_uint) LLVMtype.LLVMTypeRef;
pub extern fn LLVMIsPackedStruct(StructTy: LLVMtype.LLVMTypeRef) LLVMtype.LLVMBool;
pub extern fn LLVMIsOpaqueStruct(StructTy: LLVMtype.LLVMTypeRef) LLVMtype.LLVMBool;
pub extern fn LLVMIsLiteralStruct(StructTy: LLVMtype.LLVMTypeRef) LLVMtype.LLVMBool;
pub extern fn LLVMGetElementType(Ty: LLVMtype.LLVMTypeRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMGetSubtypes(Tp: LLVMtype.LLVMTypeRef, Arr: [*c]LLVMtype.LLVMTypeRef) void;
pub extern fn LLVMGetNumContainedTypes(Tp: LLVMtype.LLVMTypeRef) c_uint;
pub extern fn LLVMArrayType(ElementType: LLVMtype.LLVMTypeRef, ElementCount: c_uint) LLVMtype.LLVMTypeRef;
pub extern fn LLVMGetArrayLength(ArrayTy: LLVMtype.LLVMTypeRef) c_uint;
pub extern fn LLVMPointerType(ElementType: LLVMtype.LLVMTypeRef, AddressSpace: c_uint) LLVMtype.LLVMTypeRef;
pub extern fn LLVMPointerTypeIsOpaque(Ty: LLVMtype.LLVMTypeRef) LLVMtype.LLVMBool;
pub extern fn LLVMPointerTypeInContext(C: LLVMtype.LLVMContextRef, AddressSpace: c_uint) LLVMtype.LLVMTypeRef;
pub extern fn LLVMGetPointerAddressSpace(PointerTy: LLVMtype.LLVMTypeRef) c_uint;
pub extern fn LLVMVectorType(ElementType: LLVMtype.LLVMTypeRef, ElementCount: c_uint) LLVMtype.LLVMTypeRef;
pub extern fn LLVMScalableVectorType(ElementType: LLVMtype.LLVMTypeRef, ElementCount: c_uint) LLVMtype.LLVMTypeRef;
pub extern fn LLVMGetVectorSize(VectorTy: LLVMtype.LLVMTypeRef) c_uint;
pub extern fn LLVMVoidTypeInContext(C: LLVMtype.LLVMContextRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMLabelTypeInContext(C: LLVMtype.LLVMContextRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMX86MMXTypeInContext(C: LLVMtype.LLVMContextRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMX86AMXTypeInContext(C: LLVMtype.LLVMContextRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMTokenTypeInContext(C: LLVMtype.LLVMContextRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMMetadataTypeInContext(C: LLVMtype.LLVMContextRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMVoidType() LLVMtype.LLVMTypeRef;
pub extern fn LLVMLabelType() LLVMtype.LLVMTypeRef;
pub extern fn LLVMX86MMXType() LLVMtype.LLVMTypeRef;
pub extern fn LLVMX86AMXType() LLVMtype.LLVMTypeRef;
pub extern fn LLVMTargetExtTypeInContext(C: LLVMtype.LLVMContextRef, Name: [*:0]const u8, TypeParams: [*c]LLVMtype.LLVMTypeRef, TypeParamCount: c_uint, IntParams: [*c]c_uint, IntParamCount: c_uint) LLVMtype.LLVMTypeRef;
pub extern fn LLVMTypeOf(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMGetValueKind(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueKind;
pub extern fn LLVMGetValueName2(Val: LLVMtype.LLVMValueRef, Length: [*c]usize) [*:0]const u8;
pub extern fn LLVMSetValueName2(Val: LLVMtype.LLVMValueRef, Name: [*:0]const u8, NameLen: usize) void;
pub extern fn LLVMDumpValue(Val: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMPrintValueToString(Val: LLVMtype.LLVMValueRef) [*c]u8;
pub extern fn LLVMReplaceAllUsesWith(OldVal: LLVMtype.LLVMValueRef, NewVal: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMIsConstant(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMBool;
pub extern fn LLVMIsUndef(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMBool;
pub extern fn LLVMIsPoison(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMBool;
pub extern fn LLVMIsAArgument(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsABasicBlock(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAInlineAsm(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAUser(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAConstant(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsABlockAddress(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAConstantAggregateZero(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAConstantArray(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAConstantDataSequential(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAConstantDataArray(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAConstantDataVector(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAConstantExpr(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAConstantFP(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAConstantInt(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAConstantPointerNull(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAConstantStruct(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAConstantTokenNone(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAConstantVector(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAGlobalValue(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAGlobalAlias(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAGlobalObject(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAFunction(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAGlobalVariable(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAGlobalIFunc(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAUndefValue(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAPoisonValue(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAInstruction(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAUnaryOperator(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsABinaryOperator(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsACallInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAIntrinsicInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsADbgInfoIntrinsic(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsADbgVariableIntrinsic(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsADbgDeclareInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsADbgLabelInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAMemIntrinsic(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAMemCpyInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAMemMoveInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAMemSetInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsACmpInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAFCmpInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAICmpInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAExtractElementInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAGetElementPtrInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAInsertElementInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAInsertValueInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsALandingPadInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAPHINode(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsASelectInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAShuffleVectorInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAStoreInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsABranchInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAIndirectBrInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAInvokeInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAReturnInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsASwitchInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAUnreachableInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAResumeInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsACleanupReturnInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsACatchReturnInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsACatchSwitchInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsACallBrInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAFuncletPadInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsACatchPadInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsACleanupPadInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAUnaryInstruction(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAAllocaInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsACastInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAAddrSpaceCastInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsABitCastInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAFPExtInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAFPToSIInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAFPToUIInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAFPTruncInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAIntToPtrInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAPtrToIntInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsASExtInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsASIToFPInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsATruncInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAUIToFPInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAZExtInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAExtractValueInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsALoadInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAVAArgInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAFreezeInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAAtomicCmpXchgInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAAtomicRMWInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAFenceInst(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAMDNode(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsAMDString(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetValueName(Val: LLVMtype.LLVMValueRef) [*:0]const u8;
pub extern fn LLVMSetValueName(Val: LLVMtype.LLVMValueRef, Name: [*:0]const u8) void;
pub extern fn LLVMGetFirstUse(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMUseRef;
pub extern fn LLVMGetNextUse(U: LLVMtype.LLVMUseRef) LLVMtype.LLVMUseRef;
pub extern fn LLVMGetUser(U: LLVMtype.LLVMUseRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetUsedValue(U: LLVMtype.LLVMUseRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetOperand(Val: LLVMtype.LLVMValueRef, Index: c_uint) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetOperandUse(Val: LLVMtype.LLVMValueRef, Index: c_uint) LLVMtype.LLVMUseRef;
pub extern fn LLVMSetOperand(User: LLVMtype.LLVMValueRef, Index: c_uint, Val: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMGetNumOperands(Val: LLVMtype.LLVMValueRef) c_int;
pub extern fn LLVMConstNull(Ty: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstAllOnes(Ty: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetUndef(Ty: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetPoison(Ty: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsNull(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMBool;
pub extern fn LLVMConstPointerNull(Ty: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstInt(IntTy: LLVMtype.LLVMTypeRef, N: c_ulonglong, SignExtend: LLVMtype.LLVMBool) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstIntOfArbitraryPrecision(IntTy: LLVMtype.LLVMTypeRef, NumWords: c_uint, Words: [*c]const u64) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstIntOfString(IntTy: LLVMtype.LLVMTypeRef, Text: [*:0]const u8, Radix: u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstIntOfStringAndSize(IntTy: LLVMtype.LLVMTypeRef, Text: [*:0]const u8, SLen: c_uint, Radix: u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstReal(RealTy: LLVMtype.LLVMTypeRef, N: f64) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstRealOfString(RealTy: LLVMtype.LLVMTypeRef, Text: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstRealOfStringAndSize(RealTy: LLVMtype.LLVMTypeRef, Text: [*:0]const u8, SLen: c_uint) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstIntGetZExtValue(ConstantVal: LLVMtype.LLVMValueRef) c_ulonglong;
pub extern fn LLVMConstIntGetSExtValue(ConstantVal: LLVMtype.LLVMValueRef) c_longlong;
pub extern fn LLVMConstRealGetDouble(ConstantVal: LLVMtype.LLVMValueRef, losesInfo: [*c]LLVMtype.LLVMBool) f64;
pub extern fn LLVMConstStringInContext(C: LLVMtype.LLVMContextRef, Str: [*:0]const u8, Length: c_uint, DontNullTerminate: LLVMtype.LLVMBool) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstString(Str: [*:0]const u8, Length: c_uint, DontNullTerminate: LLVMtype.LLVMBool) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsConstantString(c: LLVMtype.LLVMValueRef) LLVMtype.LLVMBool;
pub extern fn LLVMGetAsString(c: LLVMtype.LLVMValueRef, Length: [*c]usize) [*:0]const u8;
pub extern fn LLVMConstStructInContext(C: LLVMtype.LLVMContextRef, ConstantVals: [*c]LLVMtype.LLVMValueRef, Count: c_uint, Packed: LLVMtype.LLVMBool) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstStruct(ConstantVals: [*c]LLVMtype.LLVMValueRef, Count: c_uint, Packed: LLVMtype.LLVMBool) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstArray(ElementTy: LLVMtype.LLVMTypeRef, ConstantVals: [*c]LLVMtype.LLVMValueRef, Length: c_uint) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstNamedStruct(StructTy: LLVMtype.LLVMTypeRef, ConstantVals: [*c]LLVMtype.LLVMValueRef, Count: c_uint) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetAggregateElement(C: LLVMtype.LLVMValueRef, Idx: c_uint) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetElementAsConstant(C: LLVMtype.LLVMValueRef, idx: c_uint) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstVector(ScalarConstantVals: [*c]LLVMtype.LLVMValueRef, Size: c_uint) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetConstOpcode(ConstantVal: LLVMtype.LLVMValueRef) LLVMtype.LLVMOpcode;
pub extern fn LLVMAlignOf(Ty: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMSizeOf(Ty: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstNeg(ConstantVal: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstNSWNeg(ConstantVal: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstNUWNeg(ConstantVal: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstNot(ConstantVal: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstAdd(LHSConstant: LLVMtype.LLVMValueRef, RHSConstant: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstNSWAdd(LHSConstant: LLVMtype.LLVMValueRef, RHSConstant: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstNUWAdd(LHSConstant: LLVMtype.LLVMValueRef, RHSConstant: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstSub(LHSConstant: LLVMtype.LLVMValueRef, RHSConstant: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstNSWSub(LHSConstant: LLVMtype.LLVMValueRef, RHSConstant: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstNUWSub(LHSConstant: LLVMtype.LLVMValueRef, RHSConstant: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstMul(LHSConstant: LLVMtype.LLVMValueRef, RHSConstant: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstNSWMul(LHSConstant: LLVMtype.LLVMValueRef, RHSConstant: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstNUWMul(LHSConstant: LLVMtype.LLVMValueRef, RHSConstant: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstAnd(LHSConstant: LLVMtype.LLVMValueRef, RHSConstant: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstOr(LHSConstant: LLVMtype.LLVMValueRef, RHSConstant: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstXor(LHSConstant: LLVMtype.LLVMValueRef, RHSConstant: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstICmp(Predicate: LLVMtype.LLVMIntPredicate, LHSConstant: LLVMtype.LLVMValueRef, RHSConstant: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstFCmp(Predicate: LLVMtype.LLVMRealPredicate, LHSConstant: LLVMtype.LLVMValueRef, RHSConstant: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstShl(LHSConstant: LLVMtype.LLVMValueRef, RHSConstant: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstLShr(LHSConstant: LLVMtype.LLVMValueRef, RHSConstant: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstAShr(LHSConstant: LLVMtype.LLVMValueRef, RHSConstant: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstGEP2(Ty: LLVMtype.LLVMTypeRef, ConstantVal: LLVMtype.LLVMValueRef, ConstantIndices: [*c]LLVMtype.LLVMValueRef, NumIndices: c_uint) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstInBoundsGEP2(Ty: LLVMtype.LLVMTypeRef, ConstantVal: LLVMtype.LLVMValueRef, ConstantIndices: [*c]LLVMtype.LLVMValueRef, NumIndices: c_uint) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstTrunc(ConstantVal: LLVMtype.LLVMValueRef, ToType: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstSExt(ConstantVal: LLVMtype.LLVMValueRef, ToType: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstZExt(ConstantVal: LLVMtype.LLVMValueRef, ToType: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstFPTrunc(ConstantVal: LLVMtype.LLVMValueRef, ToType: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstFPExt(ConstantVal: LLVMtype.LLVMValueRef, ToType: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstUIToFP(ConstantVal: LLVMtype.LLVMValueRef, ToType: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstSIToFP(ConstantVal: LLVMtype.LLVMValueRef, ToType: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstFPToUI(ConstantVal: LLVMtype.LLVMValueRef, ToType: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstFPToSI(ConstantVal: LLVMtype.LLVMValueRef, ToType: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstPtrToInt(ConstantVal: LLVMtype.LLVMValueRef, ToType: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstIntToPtr(ConstantVal: LLVMtype.LLVMValueRef, ToType: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstBitCast(ConstantVal: LLVMtype.LLVMValueRef, ToType: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstAddrSpaceCast(ConstantVal: LLVMtype.LLVMValueRef, ToType: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstZExtOrBitCast(ConstantVal: LLVMtype.LLVMValueRef, ToType: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstSExtOrBitCast(ConstantVal: LLVMtype.LLVMValueRef, ToType: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstTruncOrBitCast(ConstantVal: LLVMtype.LLVMValueRef, ToType: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstPointerCast(ConstantVal: LLVMtype.LLVMValueRef, ToType: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstIntCast(ConstantVal: LLVMtype.LLVMValueRef, ToType: LLVMtype.LLVMTypeRef, isSigned: LLVMtype.LLVMBool) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstFPCast(ConstantVal: LLVMtype.LLVMValueRef, ToType: LLVMtype.LLVMTypeRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstSelect(ConstantCondition: LLVMtype.LLVMValueRef, ConstantIfTrue: LLVMtype.LLVMValueRef, ConstantIfFalse: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstExtractElement(VectorConstant: LLVMtype.LLVMValueRef, IndexConstant: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstInsertElement(VectorConstant: LLVMtype.LLVMValueRef, ElementValueConstant: LLVMtype.LLVMValueRef, IndexConstant: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstShuffleVector(VectorAConstant: LLVMtype.LLVMValueRef, VectorBConstant: LLVMtype.LLVMValueRef, MaskConstant: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMBlockAddress(F: LLVMtype.LLVMValueRef, BB: LLVMtype.LLVMBasicBlockRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMConstInlineAsm(Ty: LLVMtype.LLVMTypeRef, AsmString: [*:0]const u8, Constraints: [*:0]const u8, HasSideEffects: LLVMtype.LLVMBool, IsAlignStack: LLVMtype.LLVMBool) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetGlobalParent(Global: LLVMtype.LLVMValueRef) LLVMtype.LLVMModuleRef;
pub extern fn LLVMIsDeclaration(Global: LLVMtype.LLVMValueRef) LLVMtype.LLVMBool;
pub extern fn LLVMGetLinkage(Global: LLVMtype.LLVMValueRef) LLVMtype.LLVMLinkage;
pub extern fn LLVMSetLinkage(Global: LLVMtype.LLVMValueRef, Linkage: LLVMtype.LLVMLinkage) void;
pub extern fn LLVMGetSection(Global: LLVMtype.LLVMValueRef) [*:0]const u8;
pub extern fn LLVMSetSection(Global: LLVMtype.LLVMValueRef, Section: [*:0]const u8) void;
pub extern fn LLVMGetVisibility(Global: LLVMtype.LLVMValueRef) LLVMtype.LLVMVisibility;
pub extern fn LLVMSetVisibility(Global: LLVMtype.LLVMValueRef, Viz: LLVMtype.LLVMVisibility) void;
pub extern fn LLVMGetDLLStorageClass(Global: LLVMtype.LLVMValueRef) LLVMtype.LLVMDLLStorageClass;
pub extern fn LLVMSetDLLStorageClass(Global: LLVMtype.LLVMValueRef, Class: LLVMtype.LLVMDLLStorageClass) void;
pub extern fn LLVMGetUnnamedAddress(Global: LLVMtype.LLVMValueRef) LLVMtype.LLVMUnnamedAddr;
pub extern fn LLVMSetUnnamedAddress(Global: LLVMtype.LLVMValueRef, UnnamedAddr: LLVMtype.LLVMUnnamedAddr) void;
pub extern fn LLVMGlobalGetValueType(Global: LLVMtype.LLVMValueRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMHasUnnamedAddr(Global: LLVMtype.LLVMValueRef) LLVMtype.LLVMBool;
pub extern fn LLVMSetUnnamedAddr(Global: LLVMtype.LLVMValueRef, HasUnnamedAddr: LLVMtype.LLVMBool) void;
pub extern fn LLVMGetAlignment(V: LLVMtype.LLVMValueRef) c_uint;
pub extern fn LLVMSetAlignment(V: LLVMtype.LLVMValueRef, Bytes: c_uint) void;
pub extern fn LLVMGlobalSetMetadata(Global: LLVMtype.LLVMValueRef, Kind: c_uint, MD: LLVMtype.LLVMMetadataRef) void;
pub extern fn LLVMGlobalEraseMetadata(Global: LLVMtype.LLVMValueRef, Kind: c_uint) void;
pub extern fn LLVMGlobalClearMetadata(Global: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMGlobalCopyAllMetadata(Value: LLVMtype.LLVMValueRef, NumEntries: [*c]usize) ?*LLVMtype.LLVMValueMetadataEntry;
pub extern fn LLVMDisposeValueMetadataEntries(Entries: ?*LLVMtype.LLVMValueMetadataEntry) void;
pub extern fn LLVMValueMetadataEntriesGetKind(Entries: ?*LLVMtype.LLVMValueMetadataEntry, Index: c_uint) c_uint;
pub extern fn LLVMValueMetadataEntriesGetMetadata(Entries: ?*LLVMtype.LLVMValueMetadataEntry, Index: c_uint) LLVMtype.LLVMMetadataRef;
pub extern fn LLVMAddGlobal(M: LLVMtype.LLVMModuleRef, Ty: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMAddGlobalInAddressSpace(M: LLVMtype.LLVMModuleRef, Ty: LLVMtype.LLVMTypeRef, Name: [*:0]const u8, AddressSpace: c_uint) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetNamedGlobal(M: LLVMtype.LLVMModuleRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetFirstGlobal(M: LLVMtype.LLVMModuleRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetLastGlobal(M: LLVMtype.LLVMModuleRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetNextGlobal(GlobalVar: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetPreviousGlobal(GlobalVar: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMDeleteGlobal(GlobalVar: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMGetInitializer(GlobalVar: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMSetInitializer(GlobalVar: LLVMtype.LLVMValueRef, ConstantVal: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMIsThreadLocal(GlobalVar: LLVMtype.LLVMValueRef) LLVMtype.LLVMBool;
pub extern fn LLVMSetThreadLocal(GlobalVar: LLVMtype.LLVMValueRef, IsThreadLocal: LLVMtype.LLVMBool) void;
pub extern fn LLVMIsGlobalConstant(GlobalVar: LLVMtype.LLVMValueRef) LLVMtype.LLVMBool;
pub extern fn LLVMSetGlobalConstant(GlobalVar: LLVMtype.LLVMValueRef, IsConstant: LLVMtype.LLVMBool) void;
pub extern fn LLVMGetThreadLocalMode(GlobalVar: LLVMtype.LLVMValueRef) LLVMtype.LLVMThreadLocalMode;
pub extern fn LLVMSetThreadLocalMode(GlobalVar: LLVMtype.LLVMValueRef, Mode: LLVMtype.LLVMThreadLocalMode) void;
pub extern fn LLVMIsExternallyInitialized(GlobalVar: LLVMtype.LLVMValueRef) LLVMtype.LLVMBool;
pub extern fn LLVMSetExternallyInitialized(GlobalVar: LLVMtype.LLVMValueRef, IsExtInit: LLVMtype.LLVMBool) void;
pub extern fn LLVMAddAlias2(M: LLVMtype.LLVMModuleRef, ValueTy: LLVMtype.LLVMTypeRef, AddrSpace: c_uint, Aliasee: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetNamedGlobalAlias(M: LLVMtype.LLVMModuleRef, Name: [*:0]const u8, NameLen: usize) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetFirstGlobalAlias(M: LLVMtype.LLVMModuleRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetLastGlobalAlias(M: LLVMtype.LLVMModuleRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetNextGlobalAlias(GA: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetPreviousGlobalAlias(GA: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMAliasGetAliasee(Alias: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMAliasSetAliasee(Alias: LLVMtype.LLVMValueRef, Aliasee: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMDeleteFunction(Fn: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMHasPersonalityFn(Fn: LLVMtype.LLVMValueRef) LLVMtype.LLVMBool;
pub extern fn LLVMGetPersonalityFn(Fn: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMSetPersonalityFn(Fn: LLVMtype.LLVMValueRef, PersonalityFn: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMLookupIntrinsicID(Name: [*:0]const u8, NameLen: usize) c_uint;
pub extern fn LLVMGetIntrinsicID(Fn: LLVMtype.LLVMValueRef) c_uint;
pub extern fn LLVMGetIntrinsicDeclaration(Mod: LLVMtype.LLVMModuleRef, ID: c_uint, ParamTypes: [*c]LLVMtype.LLVMTypeRef, ParamCount: usize) LLVMtype.LLVMValueRef;
pub extern fn LLVMIntrinsicGetType(Ctx: LLVMtype.LLVMContextRef, ID: c_uint, ParamTypes: [*c]LLVMtype.LLVMTypeRef, ParamCount: usize) LLVMtype.LLVMTypeRef;
pub extern fn LLVMIntrinsicGetName(ID: c_uint, NameLength: [*c]usize) [*:0]const u8;
pub extern fn LLVMIntrinsicCopyOverloadedName(ID: c_uint, ParamTypes: [*c]LLVMtype.LLVMTypeRef, ParamCount: usize, NameLength: [*c]usize) [*:0]const u8;
pub extern fn LLVMIntrinsicCopyOverloadedName2(Mod: LLVMtype.LLVMModuleRef, ID: c_uint, ParamTypes: [*c]LLVMtype.LLVMTypeRef, ParamCount: usize, NameLength: [*c]usize) [*:0]const u8;
pub extern fn LLVMIntrinsicIsOverloaded(ID: c_uint) LLVMtype.LLVMBool;
pub extern fn LLVMGetFunctionCallConv(Fn: LLVMtype.LLVMValueRef) c_uint;
pub extern fn LLVMSetFunctionCallConv(Fn: LLVMtype.LLVMValueRef, CC: c_uint) void;
pub extern fn LLVMGetGC(Fn: LLVMtype.LLVMValueRef) [*:0]const u8;
pub extern fn LLVMSetGC(Fn: LLVMtype.LLVMValueRef, Name: [*:0]const u8) void;
pub extern fn LLVMAddAttributeAtIndex(F: LLVMtype.LLVMValueRef, Idx: LLVMtype.LLVMAttributeIndex, A: LLVMtype.LLVMAttributeRef) void;
pub extern fn LLVMGetAttributeCountAtIndex(F: LLVMtype.LLVMValueRef, Idx: LLVMtype.LLVMAttributeIndex) c_uint;
pub extern fn LLVMGetAttributesAtIndex(F: LLVMtype.LLVMValueRef, Idx: LLVMtype.LLVMAttributeIndex, Attrs: [*c]LLVMtype.LLVMAttributeRef) void;
pub extern fn LLVMGetEnumAttributeAtIndex(F: LLVMtype.LLVMValueRef, Idx: LLVMtype.LLVMAttributeIndex, KindID: c_uint) LLVMtype.LLVMAttributeRef;
pub extern fn LLVMGetStringAttributeAtIndex(F: LLVMtype.LLVMValueRef, Idx: LLVMtype.LLVMAttributeIndex, K: [*:0]const u8, KLen: c_uint) LLVMtype.LLVMAttributeRef;
pub extern fn LLVMRemoveEnumAttributeAtIndex(F: LLVMtype.LLVMValueRef, Idx: LLVMtype.LLVMAttributeIndex, KindID: c_uint) void;
pub extern fn LLVMRemoveStringAttributeAtIndex(F: LLVMtype.LLVMValueRef, Idx: LLVMtype.LLVMAttributeIndex, K: [*:0]const u8, KLen: c_uint) void;
pub extern fn LLVMAddTargetDependentFunctionAttr(Fn: LLVMtype.LLVMValueRef, A: [*:0]const u8, V: [*:0]const u8) void;
pub extern fn LLVMCountParams(Fn: LLVMtype.LLVMValueRef) c_uint;
pub extern fn LLVMGetParams(Fn: LLVMtype.LLVMValueRef, Params: [*c]LLVMtype.LLVMValueRef) void;
pub extern fn LLVMGetParam(Fn: LLVMtype.LLVMValueRef, Index: c_uint) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetParamParent(Inst: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetFirstParam(Fn: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetLastParam(Fn: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetNextParam(Arg: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetPreviousParam(Arg: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMSetParamAlignment(Arg: LLVMtype.LLVMValueRef, Align: c_uint) void;
pub extern fn LLVMAddGlobalIFunc(M: LLVMtype.LLVMModuleRef, Name: [*:0]const u8, NameLen: usize, Ty: LLVMtype.LLVMTypeRef, AddrSpace: c_uint, Resolver: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetNamedGlobalIFunc(M: LLVMtype.LLVMModuleRef, Name: [*:0]const u8, NameLen: usize) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetFirstGlobalIFunc(M: LLVMtype.LLVMModuleRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetLastGlobalIFunc(M: LLVMtype.LLVMModuleRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetNextGlobalIFunc(IFunc: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetPreviousGlobalIFunc(IFunc: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetGlobalIFuncResolver(IFunc: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMSetGlobalIFuncResolver(IFunc: LLVMtype.LLVMValueRef, Resolver: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMEraseGlobalIFunc(IFunc: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMRemoveGlobalIFunc(IFunc: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMMDStringInContext2(C: LLVMtype.LLVMContextRef, Str: [*:0]const u8, SLen: usize) LLVMtype.LLVMMetadataRef;
pub extern fn LLVMMDNodeInContext2(C: LLVMtype.LLVMContextRef, MDs: [*c]LLVMtype.LLVMMetadataRef, Count: usize) LLVMtype.LLVMMetadataRef;
pub extern fn LLVMMetadataAsValue(C: LLVMtype.LLVMContextRef, MD: LLVMtype.LLVMMetadataRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMValueAsMetadata(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMMetadataRef;
pub extern fn LLVMGetMDString(V: LLVMtype.LLVMValueRef, Length: [*c]c_uint) [*:0]const u8;
pub extern fn LLVMGetMDNodeNumOperands(V: LLVMtype.LLVMValueRef) c_uint;
pub extern fn LLVMGetMDNodeOperands(V: LLVMtype.LLVMValueRef, Dest: [*c]LLVMtype.LLVMValueRef) void;
pub extern fn LLVMMDStringInContext(C: LLVMtype.LLVMContextRef, Str: [*:0]const u8, SLen: c_uint) LLVMtype.LLVMValueRef;
pub extern fn LLVMMDString(Str: [*:0]const u8, SLen: c_uint) LLVMtype.LLVMValueRef;
pub extern fn LLVMMDNodeInContext(C: LLVMtype.LLVMContextRef, Vals: [*c]LLVMtype.LLVMValueRef, Count: c_uint) LLVMtype.LLVMValueRef;
pub extern fn LLVMMDNode(Vals: [*c]LLVMtype.LLVMValueRef, Count: c_uint) LLVMtype.LLVMValueRef;
pub extern fn LLVMBasicBlockAsValue(BB: LLVMtype.LLVMBasicBlockRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMValueIsBasicBlock(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMBool;
pub extern fn LLVMValueAsBasicBlock(Val: LLVMtype.LLVMValueRef) LLVMtype.LLVMBasicBlockRef;
pub extern fn LLVMGetBasicBlockName(BB: LLVMtype.LLVMBasicBlockRef) [*:0]const u8;
pub extern fn LLVMGetBasicBlockParent(BB: LLVMtype.LLVMBasicBlockRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetBasicBlockTerminator(BB: LLVMtype.LLVMBasicBlockRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMCountBasicBlocks(Fn: LLVMtype.LLVMValueRef) c_uint;
pub extern fn LLVMGetBasicBlocks(Fn: LLVMtype.LLVMValueRef, BasicBlocks: [*c]LLVMtype.LLVMBasicBlockRef) void;
pub extern fn LLVMGetFirstBasicBlock(Fn: LLVMtype.LLVMValueRef) LLVMtype.LLVMBasicBlockRef;
pub extern fn LLVMGetLastBasicBlock(Fn: LLVMtype.LLVMValueRef) LLVMtype.LLVMBasicBlockRef;
pub extern fn LLVMGetNextBasicBlock(BB: LLVMtype.LLVMBasicBlockRef) LLVMtype.LLVMBasicBlockRef;
pub extern fn LLVMGetPreviousBasicBlock(BB: LLVMtype.LLVMBasicBlockRef) LLVMtype.LLVMBasicBlockRef;
pub extern fn LLVMGetEntryBasicBlock(Fn: LLVMtype.LLVMValueRef) LLVMtype.LLVMBasicBlockRef;
pub extern fn LLVMInsertExistingBasicBlockAfterInsertBlock(Builder: LLVMtype.LLVMBuilderRef, BB: LLVMtype.LLVMBasicBlockRef) void;
pub extern fn LLVMAppendExistingBasicBlock(Fn: LLVMtype.LLVMValueRef, BB: LLVMtype.LLVMBasicBlockRef) void;
pub extern fn LLVMCreateBasicBlockInContext(C: LLVMtype.LLVMContextRef, Name: [*:0]const u8) LLVMtype.LLVMBasicBlockRef;
pub extern fn LLVMAppendBasicBlockInContext(C: LLVMtype.LLVMContextRef, Fn: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMBasicBlockRef;
pub extern fn LLVMAppendBasicBlock(Fn: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMBasicBlockRef;
pub extern fn LLVMInsertBasicBlockInContext(C: LLVMtype.LLVMContextRef, BB: LLVMtype.LLVMBasicBlockRef, Name: [*:0]const u8) LLVMtype.LLVMBasicBlockRef;
pub extern fn LLVMInsertBasicBlock(InsertBeforeBB: LLVMtype.LLVMBasicBlockRef, Name: [*:0]const u8) LLVMtype.LLVMBasicBlockRef;
pub extern fn LLVMDeleteBasicBlock(BB: LLVMtype.LLVMBasicBlockRef) void;
pub extern fn LLVMRemoveBasicBlockFromParent(BB: LLVMtype.LLVMBasicBlockRef) void;
pub extern fn LLVMMoveBasicBlockBefore(BB: LLVMtype.LLVMBasicBlockRef, MovePos: LLVMtype.LLVMBasicBlockRef) void;
pub extern fn LLVMMoveBasicBlockAfter(BB: LLVMtype.LLVMBasicBlockRef, MovePos: LLVMtype.LLVMBasicBlockRef) void;
pub extern fn LLVMGetFirstInstruction(BB: LLVMtype.LLVMBasicBlockRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetLastInstruction(BB: LLVMtype.LLVMBasicBlockRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMHasMetadata(Val: LLVMtype.LLVMValueRef) c_int;
pub extern fn LLVMGetMetadata(Val: LLVMtype.LLVMValueRef, KindID: c_uint) LLVMtype.LLVMValueRef;
pub extern fn LLVMSetMetadata(Val: LLVMtype.LLVMValueRef, KindID: c_uint, Node: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMInstructionGetAllMetadataOtherThanDebugLoc(Instr: LLVMtype.LLVMValueRef, NumEntries: [*c]usize) ?*LLVMtype.LLVMValueMetadataEntry;
pub extern fn LLVMGetInstructionParent(Inst: LLVMtype.LLVMValueRef) LLVMtype.LLVMBasicBlockRef;
pub extern fn LLVMGetNextInstruction(Inst: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetPreviousInstruction(Inst: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMInstructionRemoveFromParent(Inst: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMInstructionEraseFromParent(Inst: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMDeleteInstruction(Inst: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMGetInstructionOpcode(Inst: LLVMtype.LLVMValueRef) LLVMtype.LLVMOpcode;
pub extern fn LLVMGetICmpPredicate(Inst: LLVMtype.LLVMValueRef) LLVMtype.LLVMIntPredicate;
pub extern fn LLVMGetFCmpPredicate(Inst: LLVMtype.LLVMValueRef) LLVMtype.LLVMRealPredicate;
pub extern fn LLVMInstructionClone(Inst: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsATerminatorInst(Inst: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetNumArgOperands(Instr: LLVMtype.LLVMValueRef) c_uint;
pub extern fn LLVMSetInstructionCallConv(Instr: LLVMtype.LLVMValueRef, CC: c_uint) void;
pub extern fn LLVMGetInstructionCallConv(Instr: LLVMtype.LLVMValueRef) c_uint;
pub extern fn LLVMSetInstrParamAlignment(Instr: LLVMtype.LLVMValueRef, Idx: LLVMtype.LLVMAttributeIndex, Align: c_uint) void;
pub extern fn LLVMAddCallSiteAttribute(C: LLVMtype.LLVMValueRef, Idx: LLVMtype.LLVMAttributeIndex, A: LLVMtype.LLVMAttributeRef) void;
pub extern fn LLVMGetCallSiteAttributeCount(C: LLVMtype.LLVMValueRef, Idx: LLVMtype.LLVMAttributeIndex) c_uint;
pub extern fn LLVMGetCallSiteAttributes(C: LLVMtype.LLVMValueRef, Idx: LLVMtype.LLVMAttributeIndex, Attrs: [*c]LLVMtype.LLVMAttributeRef) void;
pub extern fn LLVMGetCallSiteEnumAttribute(C: LLVMtype.LLVMValueRef, Idx: LLVMtype.LLVMAttributeIndex, KindID: c_uint) LLVMtype.LLVMAttributeRef;
pub extern fn LLVMGetCallSiteStringAttribute(C: LLVMtype.LLVMValueRef, Idx: LLVMtype.LLVMAttributeIndex, K: [*:0]const u8, KLen: c_uint) LLVMtype.LLVMAttributeRef;
pub extern fn LLVMRemoveCallSiteEnumAttribute(C: LLVMtype.LLVMValueRef, Idx: LLVMtype.LLVMAttributeIndex, KindID: c_uint) void;
pub extern fn LLVMRemoveCallSiteStringAttribute(C: LLVMtype.LLVMValueRef, Idx: LLVMtype.LLVMAttributeIndex, K: [*:0]const u8, KLen: c_uint) void;
pub extern fn LLVMGetCalledFunctionType(C: LLVMtype.LLVMValueRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMGetCalledValue(Instr: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMIsTailCall(CallInst: LLVMtype.LLVMValueRef) LLVMtype.LLVMBool;
pub extern fn LLVMSetTailCall(CallInst: LLVMtype.LLVMValueRef, IsTailCall: LLVMtype.LLVMBool) void;
pub extern fn LLVMGetNormalDest(InvokeInst: LLVMtype.LLVMValueRef) LLVMtype.LLVMBasicBlockRef;
pub extern fn LLVMGetUnwindDest(InvokeInst: LLVMtype.LLVMValueRef) LLVMtype.LLVMBasicBlockRef;
pub extern fn LLVMSetNormalDest(InvokeInst: LLVMtype.LLVMValueRef, B: LLVMtype.LLVMBasicBlockRef) void;
pub extern fn LLVMSetUnwindDest(InvokeInst: LLVMtype.LLVMValueRef, B: LLVMtype.LLVMBasicBlockRef) void;
pub extern fn LLVMGetNumSuccessors(Term: LLVMtype.LLVMValueRef) c_uint;
pub extern fn LLVMGetSuccessor(Term: LLVMtype.LLVMValueRef, i: c_uint) LLVMtype.LLVMBasicBlockRef;
pub extern fn LLVMSetSuccessor(Term: LLVMtype.LLVMValueRef, i: c_uint, block: LLVMtype.LLVMBasicBlockRef) void;
pub extern fn LLVMIsConditional(Branch: LLVMtype.LLVMValueRef) LLVMtype.LLVMBool;
pub extern fn LLVMGetCondition(Branch: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMSetCondition(Branch: LLVMtype.LLVMValueRef, Cond: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMGetSwitchDefaultDest(SwitchInstr: LLVMtype.LLVMValueRef) LLVMtype.LLVMBasicBlockRef;
pub extern fn LLVMGetAllocatedType(Alloca: LLVMtype.LLVMValueRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMIsInBounds(GEP: LLVMtype.LLVMValueRef) LLVMtype.LLVMBool;
pub extern fn LLVMSetIsInBounds(GEP: LLVMtype.LLVMValueRef, InBounds: LLVMtype.LLVMBool) void;
pub extern fn LLVMGetGEPSourceElementType(GEP: LLVMtype.LLVMValueRef) LLVMtype.LLVMTypeRef;
pub extern fn LLVMAddIncoming(PhiNode: LLVMtype.LLVMValueRef, IncomingValues: [*c]LLVMtype.LLVMValueRef, IncomingBlocks: [*c]LLVMtype.LLVMBasicBlockRef, Count: c_uint) void;
pub extern fn LLVMCountIncoming(PhiNode: LLVMtype.LLVMValueRef) c_uint;
pub extern fn LLVMGetIncomingValue(PhiNode: LLVMtype.LLVMValueRef, Index: c_uint) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetIncomingBlock(PhiNode: LLVMtype.LLVMValueRef, Index: c_uint) LLVMtype.LLVMBasicBlockRef;
pub extern fn LLVMGetNumIndices(Inst: LLVMtype.LLVMValueRef) c_uint;
pub extern fn LLVMGetIndices(Inst: LLVMtype.LLVMValueRef) [*c]const c_uint;
pub extern fn LLVMCreateBuilderInContext(C: LLVMtype.LLVMContextRef) LLVMtype.LLVMBuilderRef;
pub extern fn LLVMCreateBuilder() LLVMtype.LLVMBuilderRef;
pub extern fn LLVMPositionBuilder(Builder: LLVMtype.LLVMBuilderRef, Block: LLVMtype.LLVMBasicBlockRef, Instr: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMPositionBuilderBefore(Builder: LLVMtype.LLVMBuilderRef, Instr: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMPositionBuilderAtEnd(Builder: LLVMtype.LLVMBuilderRef, Block: LLVMtype.LLVMBasicBlockRef) void;
pub extern fn LLVMGetInsertBlock(Builder: LLVMtype.LLVMBuilderRef) LLVMtype.LLVMBasicBlockRef;
pub extern fn LLVMClearInsertionPosition(Builder: LLVMtype.LLVMBuilderRef) void;
pub extern fn LLVMInsertIntoBuilder(Builder: LLVMtype.LLVMBuilderRef, Instr: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMInsertIntoBuilderWithName(Builder: LLVMtype.LLVMBuilderRef, Instr: LLVMtype.LLVMValueRef, Name: [*:0]const u8) void;
pub extern fn LLVMDisposeBuilder(Builder: LLVMtype.LLVMBuilderRef) void;
pub extern fn LLVMGetCurrentDebugLocation2(Builder: LLVMtype.LLVMBuilderRef) LLVMtype.LLVMMetadataRef;
pub extern fn LLVMSetCurrentDebugLocation2(Builder: LLVMtype.LLVMBuilderRef, Loc: LLVMtype.LLVMMetadataRef) void;
pub extern fn LLVMSetInstDebugLocation(Builder: LLVMtype.LLVMBuilderRef, Inst: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMAddMetadataToInst(Builder: LLVMtype.LLVMBuilderRef, Inst: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMBuilderGetDefaultFPMathTag(Builder: LLVMtype.LLVMBuilderRef) LLVMtype.LLVMMetadataRef;
pub extern fn LLVMBuilderSetDefaultFPMathTag(Builder: LLVMtype.LLVMBuilderRef, FPMathTag: LLVMtype.LLVMMetadataRef) void;
pub extern fn LLVMSetCurrentDebugLocation(Builder: LLVMtype.LLVMBuilderRef, L: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMGetCurrentDebugLocation(Builder: LLVMtype.LLVMBuilderRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildRetVoid(LLVMtype.LLVMBuilderRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildRet(LLVMtype.LLVMBuilderRef, V: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildAggregateRet(LLVMtype.LLVMBuilderRef, RetVals: [*c]LLVMtype.LLVMValueRef, N: c_uint) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildBr(LLVMtype.LLVMBuilderRef, Dest: LLVMtype.LLVMBasicBlockRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildCondBr(LLVMtype.LLVMBuilderRef, If: LLVMtype.LLVMValueRef, Then: LLVMtype.LLVMBasicBlockRef, Else: LLVMtype.LLVMBasicBlockRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildSwitch(LLVMtype.LLVMBuilderRef, V: LLVMtype.LLVMValueRef, Else: LLVMtype.LLVMBasicBlockRef, NumCases: c_uint) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildIndirectBr(B: LLVMtype.LLVMBuilderRef, Addr: LLVMtype.LLVMValueRef, NumDests: c_uint) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildInvoke2(LLVMtype.LLVMBuilderRef, Ty: LLVMtype.LLVMTypeRef, Fn: LLVMtype.LLVMValueRef, Args: [*c]LLVMtype.LLVMValueRef, NumArgs: c_uint, Then: LLVMtype.LLVMBasicBlockRef, Catch: LLVMtype.LLVMBasicBlockRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildUnreachable(LLVMtype.LLVMBuilderRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildResume(B: LLVMtype.LLVMBuilderRef, Exn: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildLandingPad(B: LLVMtype.LLVMBuilderRef, Ty: LLVMtype.LLVMTypeRef, PersFn: LLVMtype.LLVMValueRef, NumClauses: c_uint, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildCleanupRet(B: LLVMtype.LLVMBuilderRef, CatchPad: LLVMtype.LLVMValueRef, BB: LLVMtype.LLVMBasicBlockRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildCatchRet(B: LLVMtype.LLVMBuilderRef, CatchPad: LLVMtype.LLVMValueRef, BB: LLVMtype.LLVMBasicBlockRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildCatchPad(B: LLVMtype.LLVMBuilderRef, ParentPad: LLVMtype.LLVMValueRef, Args: [*c]LLVMtype.LLVMValueRef, NumArgs: c_uint, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildCleanupPad(B: LLVMtype.LLVMBuilderRef, ParentPad: LLVMtype.LLVMValueRef, Args: [*c]LLVMtype.LLVMValueRef, NumArgs: c_uint, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildCatchSwitch(B: LLVMtype.LLVMBuilderRef, ParentPad: LLVMtype.LLVMValueRef, UnwindBB: LLVMtype.LLVMBasicBlockRef, NumHandlers: c_uint, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMAddCase(Switch: LLVMtype.LLVMValueRef, OnVal: LLVMtype.LLVMValueRef, Dest: LLVMtype.LLVMBasicBlockRef) void;
pub extern fn LLVMAddDestination(IndirectBr: LLVMtype.LLVMValueRef, Dest: LLVMtype.LLVMBasicBlockRef) void;
pub extern fn LLVMGetNumClauses(LandingPad: LLVMtype.LLVMValueRef) c_uint;
pub extern fn LLVMGetClause(LandingPad: LLVMtype.LLVMValueRef, Idx: c_uint) LLVMtype.LLVMValueRef;
pub extern fn LLVMAddClause(LandingPad: LLVMtype.LLVMValueRef, ClauseVal: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMIsCleanup(LandingPad: LLVMtype.LLVMValueRef) LLVMtype.LLVMBool;
pub extern fn LLVMSetCleanup(LandingPad: LLVMtype.LLVMValueRef, Val: LLVMtype.LLVMBool) void;
pub extern fn LLVMAddHandler(CatchSwitch: LLVMtype.LLVMValueRef, Dest: LLVMtype.LLVMBasicBlockRef) void;
pub extern fn LLVMGetNumHandlers(CatchSwitch: LLVMtype.LLVMValueRef) c_uint;
pub extern fn LLVMGetHandlers(CatchSwitch: LLVMtype.LLVMValueRef, Handlers: [*c]LLVMtype.LLVMBasicBlockRef) void;
pub extern fn LLVMGetArgOperand(Funclet: LLVMtype.LLVMValueRef, i: c_uint) LLVMtype.LLVMValueRef;
pub extern fn LLVMSetArgOperand(Funclet: LLVMtype.LLVMValueRef, i: c_uint, value: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMGetParentCatchSwitch(CatchPad: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMSetParentCatchSwitch(CatchPad: LLVMtype.LLVMValueRef, CatchSwitch: LLVMtype.LLVMValueRef) void;
pub extern fn LLVMBuildAdd(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildNSWAdd(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildNUWAdd(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildFAdd(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildSub(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildNSWSub(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildNUWSub(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildFSub(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildMul(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildNSWMul(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildNUWMul(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildFMul(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildUDiv(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildExactUDiv(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildSDiv(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildExactSDiv(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildFDiv(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildURem(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildSRem(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildFRem(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildShl(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildLShr(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildAShr(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildAnd(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildOr(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildXor(LLVMtype.LLVMBuilderRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildBinOp(B: LLVMtype.LLVMBuilderRef, Op: LLVMtype.LLVMOpcode, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildNeg(LLVMtype.LLVMBuilderRef, V: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildNSWNeg(B: LLVMtype.LLVMBuilderRef, V: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildNUWNeg(B: LLVMtype.LLVMBuilderRef, V: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildFNeg(LLVMtype.LLVMBuilderRef, V: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildNot(LLVMtype.LLVMBuilderRef, V: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildMalloc(LLVMtype.LLVMBuilderRef, Ty: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildArrayMalloc(LLVMtype.LLVMBuilderRef, Ty: LLVMtype.LLVMTypeRef, Val: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildMemSet(B: LLVMtype.LLVMBuilderRef, Ptr: LLVMtype.LLVMValueRef, Val: LLVMtype.LLVMValueRef, Len: LLVMtype.LLVMValueRef, Align: c_uint) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildMemCpy(B: LLVMtype.LLVMBuilderRef, Dst: LLVMtype.LLVMValueRef, DstAlign: c_uint, Src: LLVMtype.LLVMValueRef, SrcAlign: c_uint, Size: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildMemMove(B: LLVMtype.LLVMBuilderRef, Dst: LLVMtype.LLVMValueRef, DstAlign: c_uint, Src: LLVMtype.LLVMValueRef, SrcAlign: c_uint, Size: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildAlloca(LLVMtype.LLVMBuilderRef, Ty: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildArrayAlloca(LLVMtype.LLVMBuilderRef, Ty: LLVMtype.LLVMTypeRef, Val: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildFree(LLVMtype.LLVMBuilderRef, PointerVal: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildLoad2(LLVMtype.LLVMBuilderRef, Ty: LLVMtype.LLVMTypeRef, PointerVal: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildStore(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, Ptr: LLVMtype.LLVMValueRef) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildGEP2(B: LLVMtype.LLVMBuilderRef, Ty: LLVMtype.LLVMTypeRef, Pointer: LLVMtype.LLVMValueRef, Indices: [*c]LLVMtype.LLVMValueRef, NumIndices: c_uint, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildInBoundsGEP2(B: LLVMtype.LLVMBuilderRef, Ty: LLVMtype.LLVMTypeRef, Pointer: LLVMtype.LLVMValueRef, Indices: [*c]LLVMtype.LLVMValueRef, NumIndices: c_uint, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildStructGEP2(B: LLVMtype.LLVMBuilderRef, Ty: LLVMtype.LLVMTypeRef, Pointer: LLVMtype.LLVMValueRef, Idx: c_uint, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildGlobalString(B: LLVMtype.LLVMBuilderRef, Str: [*:0]const u8, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildGlobalStringPtr(B: LLVMtype.LLVMBuilderRef, Str: [*:0]const u8, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetVolatile(MemoryAccessInst: LLVMtype.LLVMValueRef) LLVMtype.LLVMBool;
pub extern fn LLVMSetVolatile(MemoryAccessInst: LLVMtype.LLVMValueRef, IsVolatile: LLVMtype.LLVMBool) void;
pub extern fn LLVMGetWeak(CmpXchgInst: LLVMtype.LLVMValueRef) LLVMtype.LLVMBool;
pub extern fn LLVMSetWeak(CmpXchgInst: LLVMtype.LLVMValueRef, IsWeak: LLVMtype.LLVMBool) void;
pub extern fn LLVMGetOrdering(MemoryAccessInst: LLVMtype.LLVMValueRef) LLVMtype.LLVMAtomicOrdering;
pub extern fn LLVMSetOrdering(MemoryAccessInst: LLVMtype.LLVMValueRef, Ordering: LLVMtype.LLVMAtomicOrdering) void;
pub extern fn LLVMGetAtomicRMWBinOp(AtomicRMWInst: LLVMtype.LLVMValueRef) LLVMtype.LLVMAtomicRMWBinOp;
pub extern fn LLVMSetAtomicRMWBinOp(AtomicRMWInst: LLVMtype.LLVMValueRef, BinOp: LLVMtype.LLVMAtomicRMWBinOp) void;
pub extern fn LLVMBuildTrunc(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, DestTy: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildZExt(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, DestTy: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildSExt(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, DestTy: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildFPToUI(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, DestTy: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildFPToSI(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, DestTy: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildUIToFP(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, DestTy: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildSIToFP(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, DestTy: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildFPTrunc(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, DestTy: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildFPExt(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, DestTy: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildPtrToInt(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, DestTy: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildIntToPtr(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, DestTy: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildBitCast(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, DestTy: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildAddrSpaceCast(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, DestTy: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildZExtOrBitCast(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, DestTy: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildSExtOrBitCast(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, DestTy: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildTruncOrBitCast(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, DestTy: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildCast(B: LLVMtype.LLVMBuilderRef, Op: LLVMtype.LLVMOpcode, Val: LLVMtype.LLVMValueRef, DestTy: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildPointerCast(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, DestTy: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildIntCast2(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, DestTy: LLVMtype.LLVMTypeRef, IsSigned: LLVMtype.LLVMBool, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildFPCast(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, DestTy: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildIntCast(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, DestTy: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetCastOpcode(Src: LLVMtype.LLVMValueRef, SrcIsSigned: LLVMtype.LLVMBool, DestTy: LLVMtype.LLVMTypeRef, DestIsSigned: LLVMtype.LLVMBool) LLVMtype.LLVMOpcode;
pub extern fn LLVMBuildICmp(LLVMtype.LLVMBuilderRef, Op: LLVMtype.LLVMIntPredicate, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildFCmp(LLVMtype.LLVMBuilderRef, Op: LLVMtype.LLVMRealPredicate, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildPhi(LLVMtype.LLVMBuilderRef, Ty: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildCall2(LLVMtype.LLVMBuilderRef, LLVMtype.LLVMTypeRef, Fn: LLVMtype.LLVMValueRef, Args: [*c]LLVMtype.LLVMValueRef, NumArgs: c_uint, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildSelect(LLVMtype.LLVMBuilderRef, If: LLVMtype.LLVMValueRef, Then: LLVMtype.LLVMValueRef, Else: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildVAArg(LLVMtype.LLVMBuilderRef, List: LLVMtype.LLVMValueRef, Ty: LLVMtype.LLVMTypeRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildExtractElement(LLVMtype.LLVMBuilderRef, VecVal: LLVMtype.LLVMValueRef, Index: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildInsertElement(LLVMtype.LLVMBuilderRef, VecVal: LLVMtype.LLVMValueRef, EltVal: LLVMtype.LLVMValueRef, Index: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildShuffleVector(LLVMtype.LLVMBuilderRef, V1: LLVMtype.LLVMValueRef, V2: LLVMtype.LLVMValueRef, Mask: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildExtractValue(LLVMtype.LLVMBuilderRef, AggVal: LLVMtype.LLVMValueRef, Index: c_uint, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildInsertValue(LLVMtype.LLVMBuilderRef, AggVal: LLVMtype.LLVMValueRef, EltVal: LLVMtype.LLVMValueRef, Index: c_uint, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildFreeze(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildIsNull(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildIsNotNull(LLVMtype.LLVMBuilderRef, Val: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildPtrDiff2(LLVMtype.LLVMBuilderRef, ElemTy: LLVMtype.LLVMTypeRef, LHS: LLVMtype.LLVMValueRef, RHS: LLVMtype.LLVMValueRef, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildFence(B: LLVMtype.LLVMBuilderRef, ordering: LLVMtype.LLVMAtomicOrdering, singleThread: LLVMtype.LLVMBool, Name: [*:0]const u8) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildAtomicRMW(B: LLVMtype.LLVMBuilderRef, op: LLVMtype.LLVMAtomicRMWBinOp, PTR: LLVMtype.LLVMValueRef, Val: LLVMtype.LLVMValueRef, ordering: LLVMtype.LLVMAtomicOrdering, singleThread: LLVMtype.LLVMBool) LLVMtype.LLVMValueRef;
pub extern fn LLVMBuildAtomicCmpXchg(B: LLVMtype.LLVMBuilderRef, Ptr: LLVMtype.LLVMValueRef, Cmp: LLVMtype.LLVMValueRef, New: LLVMtype.LLVMValueRef, SuccessOrdering: LLVMtype.LLVMAtomicOrdering, FailureOrdering: LLVMtype.LLVMAtomicOrdering, SingleThread: LLVMtype.LLVMBool) LLVMtype.LLVMValueRef;
pub extern fn LLVMGetNumMaskElements(ShuffleVectorInst: LLVMtype.LLVMValueRef) c_uint;
pub extern fn LLVMGetUndefMaskElem() c_int;
pub extern fn LLVMGetMaskValue(ShuffleVectorInst: LLVMtype.LLVMValueRef, Elt: c_uint) c_int;
pub extern fn LLVMIsAtomicSingleThread(AtomicInst: LLVMtype.LLVMValueRef) LLVMtype.LLVMBool;
pub extern fn LLVMSetAtomicSingleThread(AtomicInst: LLVMtype.LLVMValueRef, SingleThread: LLVMtype.LLVMBool) void;
pub extern fn LLVMGetCmpXchgSuccessOrdering(CmpXchgInst: LLVMtype.LLVMValueRef) LLVMtype.LLVMAtomicOrdering;
pub extern fn LLVMSetCmpXchgSuccessOrdering(CmpXchgInst: LLVMtype.LLVMValueRef, Ordering: LLVMtype.LLVMAtomicOrdering) void;
pub extern fn LLVMGetCmpXchgFailureOrdering(CmpXchgInst: LLVMtype.LLVMValueRef) LLVMtype.LLVMAtomicOrdering;
pub extern fn LLVMSetCmpXchgFailureOrdering(CmpXchgInst: LLVMtype.LLVMValueRef, Ordering: LLVMtype.LLVMAtomicOrdering) void;
pub extern fn LLVMCreateModuleProviderForExistingModule(M: LLVMtype.LLVMModuleRef) LLVMtype.LLVMModuleProviderRef;
pub extern fn LLVMDisposeModuleProvider(M: LLVMtype.LLVMModuleProviderRef) void;
pub extern fn LLVMCreateMemoryBufferWithContentsOfFile(Path: [*:0]const u8, OutMemBuf: [*c]LLVMtype.LLVMMemoryBufferRef, OutMessage: [*c][*c]u8) LLVMtype.LLVMBool;
pub extern fn LLVMCreateMemoryBufferWithSTDIN(OutMemBuf: [*c]LLVMtype.LLVMMemoryBufferRef, OutMessage: [*c][*c]u8) LLVMtype.LLVMBool;
pub extern fn LLVMCreateMemoryBufferWithMemoryRange(InputData: [*:0]const u8, InputDataLength: usize, BufferName: [*:0]const u8, RequiresNullTerminator: LLVMtype.LLVMBool) LLVMtype.LLVMMemoryBufferRef;
pub extern fn LLVMCreateMemoryBufferWithMemoryRangeCopy(InputData: [*:0]const u8, InputDataLength: usize, BufferName: [*:0]const u8) LLVMtype.LLVMMemoryBufferRef;
pub extern fn LLVMGetBufferStart(MemBuf: LLVMtype.LLVMMemoryBufferRef) [*:0]const u8;
pub extern fn LLVMGetBufferSize(MemBuf: LLVMtype.LLVMMemoryBufferRef) usize;
pub extern fn LLVMDisposeMemoryBuffer(MemBuf: LLVMtype.LLVMMemoryBufferRef) void;
pub extern fn LLVMGetGlobalPassRegistry() LLVMtype.LLVMPassRegistryRef;
pub extern fn LLVMCreatePassManager() LLVMtype.LLVMPassManagerRef;
pub extern fn LLVMCreateFunctionPassManagerForModule(M: LLVMtype.LLVMModuleRef) LLVMtype.LLVMPassManagerRef;
pub extern fn LLVMCreateFunctionPassManager(MP: LLVMtype.LLVMModuleProviderRef) LLVMtype.LLVMPassManagerRef;
pub extern fn LLVMRunPassManager(PM: LLVMtype.LLVMPassManagerRef, M: LLVMtype.LLVMModuleRef) LLVMtype.LLVMBool;
pub extern fn LLVMInitializeFunctionPassManager(FPM: LLVMtype.LLVMPassManagerRef) LLVMtype.LLVMBool;
pub extern fn LLVMRunFunctionPassManager(FPM: LLVMtype.LLVMPassManagerRef, F: LLVMtype.LLVMValueRef) LLVMtype.LLVMBool;
pub extern fn LLVMFinalizeFunctionPassManager(FPM: LLVMtype.LLVMPassManagerRef) LLVMtype.LLVMBool;
pub extern fn LLVMDisposePassManager(PM: LLVMtype.LLVMPassManagerRef) void;
pub extern fn LLVMStartMultithreaded() LLVMtype.LLVMBool;
pub extern fn LLVMStopMultithreaded() void;
pub extern fn LLVMIsMultithreaded() LLVMtype.LLVMBool;