File indexing completed on 2026-05-10 08:43:01
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #ifndef LLVM_C_CORE_H
0016 #define LLVM_C_CORE_H
0017
0018 #include "llvm-c/Deprecated.h"
0019 #include "llvm-c/ErrorHandling.h"
0020 #include "llvm-c/ExternC.h"
0021
0022 #include "llvm-c/Types.h"
0023
0024 LLVM_C_EXTERN_C_BEGIN
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060 typedef enum {
0061
0062 LLVMRet = 1,
0063 LLVMBr = 2,
0064 LLVMSwitch = 3,
0065 LLVMIndirectBr = 4,
0066 LLVMInvoke = 5,
0067
0068 LLVMUnreachable = 7,
0069 LLVMCallBr = 67,
0070
0071
0072 LLVMFNeg = 66,
0073
0074
0075 LLVMAdd = 8,
0076 LLVMFAdd = 9,
0077 LLVMSub = 10,
0078 LLVMFSub = 11,
0079 LLVMMul = 12,
0080 LLVMFMul = 13,
0081 LLVMUDiv = 14,
0082 LLVMSDiv = 15,
0083 LLVMFDiv = 16,
0084 LLVMURem = 17,
0085 LLVMSRem = 18,
0086 LLVMFRem = 19,
0087
0088
0089 LLVMShl = 20,
0090 LLVMLShr = 21,
0091 LLVMAShr = 22,
0092 LLVMAnd = 23,
0093 LLVMOr = 24,
0094 LLVMXor = 25,
0095
0096
0097 LLVMAlloca = 26,
0098 LLVMLoad = 27,
0099 LLVMStore = 28,
0100 LLVMGetElementPtr = 29,
0101
0102
0103 LLVMTrunc = 30,
0104 LLVMZExt = 31,
0105 LLVMSExt = 32,
0106 LLVMFPToUI = 33,
0107 LLVMFPToSI = 34,
0108 LLVMUIToFP = 35,
0109 LLVMSIToFP = 36,
0110 LLVMFPTrunc = 37,
0111 LLVMFPExt = 38,
0112 LLVMPtrToInt = 39,
0113 LLVMIntToPtr = 40,
0114 LLVMBitCast = 41,
0115 LLVMAddrSpaceCast = 60,
0116
0117
0118 LLVMICmp = 42,
0119 LLVMFCmp = 43,
0120 LLVMPHI = 44,
0121 LLVMCall = 45,
0122 LLVMSelect = 46,
0123 LLVMUserOp1 = 47,
0124 LLVMUserOp2 = 48,
0125 LLVMVAArg = 49,
0126 LLVMExtractElement = 50,
0127 LLVMInsertElement = 51,
0128 LLVMShuffleVector = 52,
0129 LLVMExtractValue = 53,
0130 LLVMInsertValue = 54,
0131 LLVMFreeze = 68,
0132
0133
0134 LLVMFence = 55,
0135 LLVMAtomicCmpXchg = 56,
0136 LLVMAtomicRMW = 57,
0137
0138
0139 LLVMResume = 58,
0140 LLVMLandingPad = 59,
0141 LLVMCleanupRet = 61,
0142 LLVMCatchRet = 62,
0143 LLVMCatchPad = 63,
0144 LLVMCleanupPad = 64,
0145 LLVMCatchSwitch = 65
0146 } LLVMOpcode;
0147
0148 typedef enum {
0149 LLVMVoidTypeKind = 0,
0150 LLVMHalfTypeKind = 1,
0151 LLVMFloatTypeKind = 2,
0152 LLVMDoubleTypeKind = 3,
0153 LLVMX86_FP80TypeKind = 4,
0154 LLVMFP128TypeKind = 5,
0155 LLVMPPC_FP128TypeKind = 6,
0156 LLVMLabelTypeKind = 7,
0157 LLVMIntegerTypeKind = 8,
0158 LLVMFunctionTypeKind = 9,
0159 LLVMStructTypeKind = 10,
0160 LLVMArrayTypeKind = 11,
0161 LLVMPointerTypeKind = 12,
0162 LLVMVectorTypeKind = 13,
0163 LLVMMetadataTypeKind = 14,
0164
0165 LLVMTokenTypeKind = 16,
0166 LLVMScalableVectorTypeKind = 17,
0167 LLVMBFloatTypeKind = 18,
0168 LLVMX86_AMXTypeKind = 19,
0169 LLVMTargetExtTypeKind = 20,
0170 } LLVMTypeKind;
0171
0172 typedef enum {
0173 LLVMExternalLinkage,
0174 LLVMAvailableExternallyLinkage,
0175 LLVMLinkOnceAnyLinkage,
0176 LLVMLinkOnceODRLinkage,
0177
0178 LLVMLinkOnceODRAutoHideLinkage,
0179 LLVMWeakAnyLinkage,
0180 LLVMWeakODRLinkage,
0181
0182 LLVMAppendingLinkage,
0183 LLVMInternalLinkage,
0184
0185 LLVMPrivateLinkage,
0186 LLVMDLLImportLinkage,
0187 LLVMDLLExportLinkage,
0188 LLVMExternalWeakLinkage,
0189 LLVMGhostLinkage,
0190 LLVMCommonLinkage,
0191 LLVMLinkerPrivateLinkage,
0192 LLVMLinkerPrivateWeakLinkage
0193 } LLVMLinkage;
0194
0195 typedef enum {
0196 LLVMDefaultVisibility,
0197 LLVMHiddenVisibility,
0198 LLVMProtectedVisibility
0199 } LLVMVisibility;
0200
0201 typedef enum {
0202 LLVMNoUnnamedAddr,
0203 LLVMLocalUnnamedAddr,
0204 LLVMGlobalUnnamedAddr
0205 } LLVMUnnamedAddr;
0206
0207 typedef enum {
0208 LLVMDefaultStorageClass = 0,
0209 LLVMDLLImportStorageClass = 1,
0210 LLVMDLLExportStorageClass = 2
0211 } LLVMDLLStorageClass;
0212
0213 typedef enum {
0214 LLVMCCallConv = 0,
0215 LLVMFastCallConv = 8,
0216 LLVMColdCallConv = 9,
0217 LLVMGHCCallConv = 10,
0218 LLVMHiPECallConv = 11,
0219 LLVMAnyRegCallConv = 13,
0220 LLVMPreserveMostCallConv = 14,
0221 LLVMPreserveAllCallConv = 15,
0222 LLVMSwiftCallConv = 16,
0223 LLVMCXXFASTTLSCallConv = 17,
0224 LLVMX86StdcallCallConv = 64,
0225 LLVMX86FastcallCallConv = 65,
0226 LLVMARMAPCSCallConv = 66,
0227 LLVMARMAAPCSCallConv = 67,
0228 LLVMARMAAPCSVFPCallConv = 68,
0229 LLVMMSP430INTRCallConv = 69,
0230 LLVMX86ThisCallCallConv = 70,
0231 LLVMPTXKernelCallConv = 71,
0232 LLVMPTXDeviceCallConv = 72,
0233 LLVMSPIRFUNCCallConv = 75,
0234 LLVMSPIRKERNELCallConv = 76,
0235 LLVMIntelOCLBICallConv = 77,
0236 LLVMX8664SysVCallConv = 78,
0237 LLVMWin64CallConv = 79,
0238 LLVMX86VectorCallCallConv = 80,
0239 LLVMHHVMCallConv = 81,
0240 LLVMHHVMCCallConv = 82,
0241 LLVMX86INTRCallConv = 83,
0242 LLVMAVRINTRCallConv = 84,
0243 LLVMAVRSIGNALCallConv = 85,
0244 LLVMAVRBUILTINCallConv = 86,
0245 LLVMAMDGPUVSCallConv = 87,
0246 LLVMAMDGPUGSCallConv = 88,
0247 LLVMAMDGPUPSCallConv = 89,
0248 LLVMAMDGPUCSCallConv = 90,
0249 LLVMAMDGPUKERNELCallConv = 91,
0250 LLVMX86RegCallCallConv = 92,
0251 LLVMAMDGPUHSCallConv = 93,
0252 LLVMMSP430BUILTINCallConv = 94,
0253 LLVMAMDGPULSCallConv = 95,
0254 LLVMAMDGPUESCallConv = 96
0255 } LLVMCallConv;
0256
0257 typedef enum {
0258 LLVMArgumentValueKind,
0259 LLVMBasicBlockValueKind,
0260 LLVMMemoryUseValueKind,
0261 LLVMMemoryDefValueKind,
0262 LLVMMemoryPhiValueKind,
0263
0264 LLVMFunctionValueKind,
0265 LLVMGlobalAliasValueKind,
0266 LLVMGlobalIFuncValueKind,
0267 LLVMGlobalVariableValueKind,
0268 LLVMBlockAddressValueKind,
0269 LLVMConstantExprValueKind,
0270 LLVMConstantArrayValueKind,
0271 LLVMConstantStructValueKind,
0272 LLVMConstantVectorValueKind,
0273
0274 LLVMUndefValueValueKind,
0275 LLVMConstantAggregateZeroValueKind,
0276 LLVMConstantDataArrayValueKind,
0277 LLVMConstantDataVectorValueKind,
0278 LLVMConstantIntValueKind,
0279 LLVMConstantFPValueKind,
0280 LLVMConstantPointerNullValueKind,
0281 LLVMConstantTokenNoneValueKind,
0282
0283 LLVMMetadataAsValueValueKind,
0284 LLVMInlineAsmValueKind,
0285
0286 LLVMInstructionValueKind,
0287 LLVMPoisonValueValueKind,
0288 LLVMConstantTargetNoneValueKind,
0289 LLVMConstantPtrAuthValueKind,
0290 } LLVMValueKind;
0291
0292 typedef enum {
0293 LLVMIntEQ = 32,
0294 LLVMIntNE,
0295 LLVMIntUGT,
0296 LLVMIntUGE,
0297 LLVMIntULT,
0298 LLVMIntULE,
0299 LLVMIntSGT,
0300 LLVMIntSGE,
0301 LLVMIntSLT,
0302 LLVMIntSLE
0303 } LLVMIntPredicate;
0304
0305 typedef enum {
0306 LLVMRealPredicateFalse,
0307 LLVMRealOEQ,
0308 LLVMRealOGT,
0309 LLVMRealOGE,
0310 LLVMRealOLT,
0311 LLVMRealOLE,
0312 LLVMRealONE,
0313 LLVMRealORD,
0314 LLVMRealUNO,
0315 LLVMRealUEQ,
0316 LLVMRealUGT,
0317 LLVMRealUGE,
0318 LLVMRealULT,
0319 LLVMRealULE,
0320 LLVMRealUNE,
0321 LLVMRealPredicateTrue
0322 } LLVMRealPredicate;
0323
0324 typedef enum {
0325 LLVMLandingPadCatch,
0326 LLVMLandingPadFilter
0327 } LLVMLandingPadClauseTy;
0328
0329 typedef enum {
0330 LLVMNotThreadLocal = 0,
0331 LLVMGeneralDynamicTLSModel,
0332 LLVMLocalDynamicTLSModel,
0333 LLVMInitialExecTLSModel,
0334 LLVMLocalExecTLSModel
0335 } LLVMThreadLocalMode;
0336
0337 typedef enum {
0338 LLVMAtomicOrderingNotAtomic = 0,
0339 LLVMAtomicOrderingUnordered = 1,
0340
0341 LLVMAtomicOrderingMonotonic = 2,
0342
0343
0344 LLVMAtomicOrderingAcquire = 4,
0345
0346
0347 LLVMAtomicOrderingRelease = 5,
0348
0349
0350 LLVMAtomicOrderingAcquireRelease = 6,
0351
0352
0353
0354 LLVMAtomicOrderingSequentiallyConsistent = 7
0355
0356
0357
0358
0359
0360
0361
0362 } LLVMAtomicOrdering;
0363
0364 typedef enum {
0365 LLVMAtomicRMWBinOpXchg,
0366 LLVMAtomicRMWBinOpAdd,
0367 LLVMAtomicRMWBinOpSub,
0368 LLVMAtomicRMWBinOpAnd,
0369 LLVMAtomicRMWBinOpNand,
0370 LLVMAtomicRMWBinOpOr,
0371 LLVMAtomicRMWBinOpXor,
0372 LLVMAtomicRMWBinOpMax,
0373
0374
0375 LLVMAtomicRMWBinOpMin,
0376
0377
0378 LLVMAtomicRMWBinOpUMax,
0379
0380
0381 LLVMAtomicRMWBinOpUMin,
0382
0383
0384 LLVMAtomicRMWBinOpFAdd,
0385
0386 LLVMAtomicRMWBinOpFSub,
0387
0388 LLVMAtomicRMWBinOpFMax,
0389
0390
0391 LLVMAtomicRMWBinOpFMin,
0392
0393
0394 LLVMAtomicRMWBinOpUIncWrap,
0395
0396 LLVMAtomicRMWBinOpUDecWrap,
0397
0398 LLVMAtomicRMWBinOpUSubCond,
0399
0400 LLVMAtomicRMWBinOpUSubSat,
0401 } LLVMAtomicRMWBinOp;
0402
0403 typedef enum {
0404 LLVMDSError,
0405 LLVMDSWarning,
0406 LLVMDSRemark,
0407 LLVMDSNote
0408 } LLVMDiagnosticSeverity;
0409
0410 typedef enum {
0411 LLVMInlineAsmDialectATT,
0412 LLVMInlineAsmDialectIntel
0413 } LLVMInlineAsmDialect;
0414
0415 typedef enum {
0416
0417
0418
0419
0420
0421
0422 LLVMModuleFlagBehaviorError,
0423
0424
0425
0426
0427
0428
0429 LLVMModuleFlagBehaviorWarning,
0430
0431
0432
0433
0434
0435
0436
0437
0438
0439
0440
0441 LLVMModuleFlagBehaviorRequire,
0442
0443
0444
0445
0446
0447
0448
0449 LLVMModuleFlagBehaviorOverride,
0450
0451
0452
0453
0454
0455 LLVMModuleFlagBehaviorAppend,
0456
0457
0458
0459
0460
0461
0462
0463 LLVMModuleFlagBehaviorAppendUnique,
0464 } LLVMModuleFlagBehavior;
0465
0466
0467
0468
0469
0470 enum {
0471 LLVMAttributeReturnIndex = 0U,
0472
0473
0474
0475 LLVMAttributeFunctionIndex = -1,
0476 };
0477
0478 typedef unsigned LLVMAttributeIndex;
0479
0480
0481
0482
0483
0484
0485
0486
0487 typedef enum {
0488 LLVMTailCallKindNone = 0,
0489 LLVMTailCallKindTail = 1,
0490 LLVMTailCallKindMustTail = 2,
0491 LLVMTailCallKindNoTail = 3,
0492 } LLVMTailCallKind;
0493
0494 enum {
0495 LLVMFastMathAllowReassoc = (1 << 0),
0496 LLVMFastMathNoNaNs = (1 << 1),
0497 LLVMFastMathNoInfs = (1 << 2),
0498 LLVMFastMathNoSignedZeros = (1 << 3),
0499 LLVMFastMathAllowReciprocal = (1 << 4),
0500 LLVMFastMathAllowContract = (1 << 5),
0501 LLVMFastMathApproxFunc = (1 << 6),
0502 LLVMFastMathNone = 0,
0503 LLVMFastMathAll = LLVMFastMathAllowReassoc | LLVMFastMathNoNaNs |
0504 LLVMFastMathNoInfs | LLVMFastMathNoSignedZeros |
0505 LLVMFastMathAllowReciprocal | LLVMFastMathAllowContract |
0506 LLVMFastMathApproxFunc,
0507 };
0508
0509
0510
0511
0512
0513
0514
0515 typedef unsigned LLVMFastMathFlags;
0516
0517 enum {
0518 LLVMGEPFlagInBounds = (1 << 0),
0519 LLVMGEPFlagNUSW = (1 << 1),
0520 LLVMGEPFlagNUW = (1 << 2),
0521 };
0522
0523
0524
0525
0526
0527
0528
0529 typedef unsigned LLVMGEPNoWrapFlags;
0530
0531
0532
0533
0534
0535
0536
0537
0538 void LLVMShutdown(void);
0539
0540
0541
0542
0543
0544
0545
0546
0547
0548 void LLVMGetVersion(unsigned *Major, unsigned *Minor, unsigned *Patch);
0549
0550
0551
0552 char *LLVMCreateMessage(const char *Message);
0553 void LLVMDisposeMessage(char *Message);
0554
0555
0556
0557
0558
0559
0560
0561
0562
0563
0564
0565
0566
0567 typedef void (*LLVMDiagnosticHandler)(LLVMDiagnosticInfoRef, void *);
0568 typedef void (*LLVMYieldCallback)(LLVMContextRef, void *);
0569
0570
0571
0572
0573
0574
0575
0576 LLVMContextRef LLVMContextCreate(void);
0577
0578
0579
0580
0581 LLVMContextRef LLVMGetGlobalContext(void);
0582
0583
0584
0585
0586 void LLVMContextSetDiagnosticHandler(LLVMContextRef C,
0587 LLVMDiagnosticHandler Handler,
0588 void *DiagnosticContext);
0589
0590
0591
0592
0593 LLVMDiagnosticHandler LLVMContextGetDiagnosticHandler(LLVMContextRef C);
0594
0595
0596
0597
0598 void *LLVMContextGetDiagnosticContext(LLVMContextRef C);
0599
0600
0601
0602
0603
0604
0605 void LLVMContextSetYieldCallback(LLVMContextRef C, LLVMYieldCallback Callback,
0606 void *OpaqueHandle);
0607
0608
0609
0610
0611
0612
0613 LLVMBool LLVMContextShouldDiscardValueNames(LLVMContextRef C);
0614
0615
0616
0617
0618
0619
0620
0621
0622
0623 void LLVMContextSetDiscardValueNames(LLVMContextRef C, LLVMBool Discard);
0624
0625
0626
0627
0628
0629
0630
0631 void LLVMContextDispose(LLVMContextRef C);
0632
0633
0634
0635
0636
0637
0638
0639 char *LLVMGetDiagInfoDescription(LLVMDiagnosticInfoRef DI);
0640
0641
0642
0643
0644
0645
0646 LLVMDiagnosticSeverity LLVMGetDiagInfoSeverity(LLVMDiagnosticInfoRef DI);
0647
0648 unsigned LLVMGetMDKindIDInContext(LLVMContextRef C, const char *Name,
0649 unsigned SLen);
0650 unsigned LLVMGetMDKindID(const char *Name, unsigned SLen);
0651
0652
0653
0654
0655 unsigned LLVMGetSyncScopeID(LLVMContextRef C, const char *Name, size_t SLen);
0656
0657
0658
0659
0660
0661
0662
0663
0664
0665
0666
0667
0668 unsigned LLVMGetEnumAttributeKindForName(const char *Name, size_t SLen);
0669 unsigned LLVMGetLastEnumAttributeKind(void);
0670
0671
0672
0673
0674 LLVMAttributeRef LLVMCreateEnumAttribute(LLVMContextRef C, unsigned KindID,
0675 uint64_t Val);
0676
0677
0678
0679
0680
0681 unsigned LLVMGetEnumAttributeKind(LLVMAttributeRef A);
0682
0683
0684
0685
0686 uint64_t LLVMGetEnumAttributeValue(LLVMAttributeRef A);
0687
0688
0689
0690
0691 LLVMAttributeRef LLVMCreateTypeAttribute(LLVMContextRef C, unsigned KindID,
0692 LLVMTypeRef type_ref);
0693
0694
0695
0696
0697 LLVMTypeRef LLVMGetTypeAttributeValue(LLVMAttributeRef A);
0698
0699
0700
0701
0702
0703
0704
0705 LLVMAttributeRef LLVMCreateConstantRangeAttribute(LLVMContextRef C,
0706 unsigned KindID,
0707 unsigned NumBits,
0708 const uint64_t LowerWords[],
0709 const uint64_t UpperWords[]);
0710
0711
0712
0713
0714 LLVMAttributeRef LLVMCreateStringAttribute(LLVMContextRef C,
0715 const char *K, unsigned KLength,
0716 const char *V, unsigned VLength);
0717
0718
0719
0720
0721 const char *LLVMGetStringAttributeKind(LLVMAttributeRef A, unsigned *Length);
0722
0723
0724
0725
0726 const char *LLVMGetStringAttributeValue(LLVMAttributeRef A, unsigned *Length);
0727
0728
0729
0730
0731 LLVMBool LLVMIsEnumAttribute(LLVMAttributeRef A);
0732 LLVMBool LLVMIsStringAttribute(LLVMAttributeRef A);
0733 LLVMBool LLVMIsTypeAttribute(LLVMAttributeRef A);
0734
0735
0736
0737
0738 LLVMTypeRef LLVMGetTypeByName2(LLVMContextRef C, const char *Name);
0739
0740
0741
0742
0743
0744
0745
0746
0747
0748
0749
0750
0751
0752
0753
0754
0755
0756
0757
0758
0759
0760
0761
0762
0763 LLVMModuleRef LLVMModuleCreateWithName(const char *ModuleID);
0764
0765
0766
0767
0768
0769
0770
0771 LLVMModuleRef LLVMModuleCreateWithNameInContext(const char *ModuleID,
0772 LLVMContextRef C);
0773
0774
0775
0776 LLVMModuleRef LLVMCloneModule(LLVMModuleRef M);
0777
0778
0779
0780
0781
0782
0783
0784 void LLVMDisposeModule(LLVMModuleRef M);
0785
0786
0787
0788
0789
0790
0791
0792
0793
0794 LLVMBool LLVMIsNewDbgInfoFormat(LLVMModuleRef M);
0795
0796
0797
0798
0799
0800
0801
0802 void LLVMSetIsNewDbgInfoFormat(LLVMModuleRef M, LLVMBool UseNewFormat);
0803
0804
0805
0806
0807
0808
0809
0810
0811
0812 const char *LLVMGetModuleIdentifier(LLVMModuleRef M, size_t *Len);
0813
0814
0815
0816
0817
0818
0819
0820
0821
0822 void LLVMSetModuleIdentifier(LLVMModuleRef M, const char *Ident, size_t Len);
0823
0824
0825
0826
0827
0828
0829
0830
0831
0832 const char *LLVMGetSourceFileName(LLVMModuleRef M, size_t *Len);
0833
0834
0835
0836
0837
0838
0839
0840
0841
0842
0843 void LLVMSetSourceFileName(LLVMModuleRef M, const char *Name, size_t Len);
0844
0845
0846
0847
0848
0849
0850
0851
0852
0853
0854 const char *LLVMGetDataLayoutStr(LLVMModuleRef M);
0855 const char *LLVMGetDataLayout(LLVMModuleRef M);
0856
0857
0858
0859
0860
0861
0862 void LLVMSetDataLayout(LLVMModuleRef M, const char *DataLayoutStr);
0863
0864
0865
0866
0867
0868
0869 const char *LLVMGetTarget(LLVMModuleRef M);
0870
0871
0872
0873
0874
0875
0876 void LLVMSetTarget(LLVMModuleRef M, const char *Triple);
0877
0878
0879
0880
0881
0882
0883
0884
0885 LLVMModuleFlagEntry *LLVMCopyModuleFlagsMetadata(LLVMModuleRef M, size_t *Len);
0886
0887
0888
0889
0890 void LLVMDisposeModuleFlagsMetadata(LLVMModuleFlagEntry *Entries);
0891
0892
0893
0894
0895
0896
0897 LLVMModuleFlagBehavior
0898 LLVMModuleFlagEntriesGetFlagBehavior(LLVMModuleFlagEntry *Entries,
0899 unsigned Index);
0900
0901
0902
0903
0904
0905
0906 const char *LLVMModuleFlagEntriesGetKey(LLVMModuleFlagEntry *Entries,
0907 unsigned Index, size_t *Len);
0908
0909
0910
0911
0912
0913
0914 LLVMMetadataRef LLVMModuleFlagEntriesGetMetadata(LLVMModuleFlagEntry *Entries,
0915 unsigned Index);
0916
0917
0918
0919
0920
0921
0922
0923 LLVMMetadataRef LLVMGetModuleFlag(LLVMModuleRef M,
0924 const char *Key, size_t KeyLen);
0925
0926
0927
0928
0929
0930
0931
0932 void LLVMAddModuleFlag(LLVMModuleRef M, LLVMModuleFlagBehavior Behavior,
0933 const char *Key, size_t KeyLen,
0934 LLVMMetadataRef Val);
0935
0936
0937
0938
0939
0940
0941 void LLVMDumpModule(LLVMModuleRef M);
0942
0943
0944
0945
0946
0947
0948
0949 LLVMBool LLVMPrintModuleToFile(LLVMModuleRef M, const char *Filename,
0950 char **ErrorMessage);
0951
0952
0953
0954
0955
0956
0957
0958 char *LLVMPrintModuleToString(LLVMModuleRef M);
0959
0960
0961
0962
0963
0964
0965 const char *LLVMGetModuleInlineAsm(LLVMModuleRef M, size_t *Len);
0966
0967
0968
0969
0970
0971
0972 void LLVMSetModuleInlineAsm2(LLVMModuleRef M, const char *Asm, size_t Len);
0973
0974
0975
0976
0977
0978
0979 void LLVMAppendModuleInlineAsm(LLVMModuleRef M, const char *Asm, size_t Len);
0980
0981
0982
0983
0984
0985
0986 LLVMValueRef LLVMGetInlineAsm(LLVMTypeRef Ty, const char *AsmString,
0987 size_t AsmStringSize, const char *Constraints,
0988 size_t ConstraintsSize, LLVMBool HasSideEffects,
0989 LLVMBool IsAlignStack,
0990 LLVMInlineAsmDialect Dialect, LLVMBool CanThrow);
0991
0992
0993
0994
0995
0996 const char *LLVMGetInlineAsmAsmString(LLVMValueRef InlineAsmVal, size_t *Len);
0997
0998
0999
1000
1001
1002 const char *LLVMGetInlineAsmConstraintString(LLVMValueRef InlineAsmVal,
1003 size_t *Len);
1004
1005
1006
1007
1008
1009 LLVMInlineAsmDialect LLVMGetInlineAsmDialect(LLVMValueRef InlineAsmVal);
1010
1011
1012
1013
1014
1015
1016
1017
1018 LLVMTypeRef LLVMGetInlineAsmFunctionType(LLVMValueRef InlineAsmVal);
1019
1020
1021
1022
1023
1024 LLVMBool LLVMGetInlineAsmHasSideEffects(LLVMValueRef InlineAsmVal);
1025
1026
1027
1028
1029
1030 LLVMBool LLVMGetInlineAsmNeedsAlignedStack(LLVMValueRef InlineAsmVal);
1031
1032
1033
1034
1035
1036 LLVMBool LLVMGetInlineAsmCanUnwind(LLVMValueRef InlineAsmVal);
1037
1038
1039
1040
1041
1042
1043 LLVMContextRef LLVMGetModuleContext(LLVMModuleRef M);
1044
1045
1046 LLVMTypeRef LLVMGetTypeByName(LLVMModuleRef M, const char *Name);
1047
1048
1049
1050
1051
1052
1053 LLVMNamedMDNodeRef LLVMGetFirstNamedMetadata(LLVMModuleRef M);
1054
1055
1056
1057
1058
1059
1060 LLVMNamedMDNodeRef LLVMGetLastNamedMetadata(LLVMModuleRef M);
1061
1062
1063
1064
1065
1066
1067
1068 LLVMNamedMDNodeRef LLVMGetNextNamedMetadata(LLVMNamedMDNodeRef NamedMDNode);
1069
1070
1071
1072
1073
1074
1075
1076 LLVMNamedMDNodeRef LLVMGetPreviousNamedMetadata(LLVMNamedMDNodeRef NamedMDNode);
1077
1078
1079
1080
1081
1082
1083
1084 LLVMNamedMDNodeRef LLVMGetNamedMetadata(LLVMModuleRef M,
1085 const char *Name, size_t NameLen);
1086
1087
1088
1089
1090
1091
1092
1093 LLVMNamedMDNodeRef LLVMGetOrInsertNamedMetadata(LLVMModuleRef M,
1094 const char *Name,
1095 size_t NameLen);
1096
1097
1098
1099
1100
1101
1102 const char *LLVMGetNamedMetadataName(LLVMNamedMDNodeRef NamedMD,
1103 size_t *NameLen);
1104
1105
1106
1107
1108
1109
1110 unsigned LLVMGetNamedMetadataNumOperands(LLVMModuleRef M, const char *Name);
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123 void LLVMGetNamedMetadataOperands(LLVMModuleRef M, const char *Name,
1124 LLVMValueRef *Dest);
1125
1126
1127
1128
1129
1130
1131
1132 void LLVMAddNamedMetadataOperand(LLVMModuleRef M, const char *Name,
1133 LLVMValueRef Val);
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143 const char *LLVMGetDebugLocDirectory(LLVMValueRef Val, unsigned *Length);
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153 const char *LLVMGetDebugLocFilename(LLVMValueRef Val, unsigned *Length);
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163 unsigned LLVMGetDebugLocLine(LLVMValueRef Val);
1164
1165
1166
1167
1168
1169
1170
1171 unsigned LLVMGetDebugLocColumn(LLVMValueRef Val);
1172
1173
1174
1175
1176
1177
1178 LLVMValueRef LLVMAddFunction(LLVMModuleRef M, const char *Name,
1179 LLVMTypeRef FunctionTy);
1180
1181
1182
1183
1184
1185
1186
1187
1188 LLVMValueRef LLVMGetNamedFunction(LLVMModuleRef M, const char *Name);
1189
1190
1191
1192
1193
1194
1195
1196
1197 LLVMValueRef LLVMGetNamedFunctionWithLength(LLVMModuleRef M, const char *Name,
1198 size_t Length);
1199
1200
1201
1202
1203
1204
1205 LLVMValueRef LLVMGetFirstFunction(LLVMModuleRef M);
1206
1207
1208
1209
1210
1211
1212 LLVMValueRef LLVMGetLastFunction(LLVMModuleRef M);
1213
1214
1215
1216
1217
1218
1219
1220 LLVMValueRef LLVMGetNextFunction(LLVMValueRef Fn);
1221
1222
1223
1224
1225
1226
1227
1228 LLVMValueRef LLVMGetPreviousFunction(LLVMValueRef Fn);
1229
1230
1231 void LLVMSetModuleInlineAsm(LLVMModuleRef M, const char *Asm);
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271 LLVMTypeKind LLVMGetTypeKind(LLVMTypeRef Ty);
1272
1273
1274
1275
1276
1277
1278
1279
1280 LLVMBool LLVMTypeIsSized(LLVMTypeRef Ty);
1281
1282
1283
1284
1285
1286
1287 LLVMContextRef LLVMGetTypeContext(LLVMTypeRef Ty);
1288
1289
1290
1291
1292
1293
1294 void LLVMDumpType(LLVMTypeRef Val);
1295
1296
1297
1298
1299
1300
1301
1302 char *LLVMPrintTypeToString(LLVMTypeRef Val);
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315 LLVMTypeRef LLVMInt1TypeInContext(LLVMContextRef C);
1316 LLVMTypeRef LLVMInt8TypeInContext(LLVMContextRef C);
1317 LLVMTypeRef LLVMInt16TypeInContext(LLVMContextRef C);
1318 LLVMTypeRef LLVMInt32TypeInContext(LLVMContextRef C);
1319 LLVMTypeRef LLVMInt64TypeInContext(LLVMContextRef C);
1320 LLVMTypeRef LLVMInt128TypeInContext(LLVMContextRef C);
1321 LLVMTypeRef LLVMIntTypeInContext(LLVMContextRef C, unsigned NumBits);
1322
1323
1324
1325
1326
1327 LLVMTypeRef LLVMInt1Type(void);
1328 LLVMTypeRef LLVMInt8Type(void);
1329 LLVMTypeRef LLVMInt16Type(void);
1330 LLVMTypeRef LLVMInt32Type(void);
1331 LLVMTypeRef LLVMInt64Type(void);
1332 LLVMTypeRef LLVMInt128Type(void);
1333 LLVMTypeRef LLVMIntType(unsigned NumBits);
1334 unsigned LLVMGetIntTypeWidth(LLVMTypeRef IntegerTy);
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349 LLVMTypeRef LLVMHalfTypeInContext(LLVMContextRef C);
1350
1351
1352
1353
1354 LLVMTypeRef LLVMBFloatTypeInContext(LLVMContextRef C);
1355
1356
1357
1358
1359 LLVMTypeRef LLVMFloatTypeInContext(LLVMContextRef C);
1360
1361
1362
1363
1364 LLVMTypeRef LLVMDoubleTypeInContext(LLVMContextRef C);
1365
1366
1367
1368
1369 LLVMTypeRef LLVMX86FP80TypeInContext(LLVMContextRef C);
1370
1371
1372
1373
1374
1375 LLVMTypeRef LLVMFP128TypeInContext(LLVMContextRef C);
1376
1377
1378
1379
1380 LLVMTypeRef LLVMPPCFP128TypeInContext(LLVMContextRef C);
1381
1382
1383
1384
1385
1386
1387 LLVMTypeRef LLVMHalfType(void);
1388 LLVMTypeRef LLVMBFloatType(void);
1389 LLVMTypeRef LLVMFloatType(void);
1390 LLVMTypeRef LLVMDoubleType(void);
1391 LLVMTypeRef LLVMX86FP80Type(void);
1392 LLVMTypeRef LLVMFP128Type(void);
1393 LLVMTypeRef LLVMPPCFP128Type(void);
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411 LLVMTypeRef LLVMFunctionType(LLVMTypeRef ReturnType,
1412 LLVMTypeRef *ParamTypes, unsigned ParamCount,
1413 LLVMBool IsVarArg);
1414
1415
1416
1417
1418 LLVMBool LLVMIsFunctionVarArg(LLVMTypeRef FunctionTy);
1419
1420
1421
1422
1423 LLVMTypeRef LLVMGetReturnType(LLVMTypeRef FunctionTy);
1424
1425
1426
1427
1428 unsigned LLVMCountParamTypes(LLVMTypeRef FunctionTy);
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441 void LLVMGetParamTypes(LLVMTypeRef FunctionTy, LLVMTypeRef *Dest);
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465 LLVMTypeRef LLVMStructTypeInContext(LLVMContextRef C, LLVMTypeRef *ElementTypes,
1466 unsigned ElementCount, LLVMBool Packed);
1467
1468
1469
1470
1471
1472
1473 LLVMTypeRef LLVMStructType(LLVMTypeRef *ElementTypes, unsigned ElementCount,
1474 LLVMBool Packed);
1475
1476
1477
1478
1479
1480
1481 LLVMTypeRef LLVMStructCreateNamed(LLVMContextRef C, const char *Name);
1482
1483
1484
1485
1486
1487
1488 const char *LLVMGetStructName(LLVMTypeRef Ty);
1489
1490
1491
1492
1493
1494
1495 void LLVMStructSetBody(LLVMTypeRef StructTy, LLVMTypeRef *ElementTypes,
1496 unsigned ElementCount, LLVMBool Packed);
1497
1498
1499
1500
1501
1502
1503 unsigned LLVMCountStructElementTypes(LLVMTypeRef StructTy);
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515 void LLVMGetStructElementTypes(LLVMTypeRef StructTy, LLVMTypeRef *Dest);
1516
1517
1518
1519
1520
1521
1522 LLVMTypeRef LLVMStructGetTypeAtIndex(LLVMTypeRef StructTy, unsigned i);
1523
1524
1525
1526
1527
1528
1529 LLVMBool LLVMIsPackedStruct(LLVMTypeRef StructTy);
1530
1531
1532
1533
1534
1535
1536 LLVMBool LLVMIsOpaqueStruct(LLVMTypeRef StructTy);
1537
1538
1539
1540
1541
1542
1543 LLVMBool LLVMIsLiteralStruct(LLVMTypeRef StructTy);
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563 LLVMTypeRef LLVMGetElementType(LLVMTypeRef Ty);
1564
1565
1566
1567
1568
1569
1570 void LLVMGetSubtypes(LLVMTypeRef Tp, LLVMTypeRef *Arr);
1571
1572
1573
1574
1575
1576
1577 unsigned LLVMGetNumContainedTypes(LLVMTypeRef Tp);
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589 LLVMTypeRef LLVMArrayType(LLVMTypeRef ElementType, unsigned ElementCount);
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599 LLVMTypeRef LLVMArrayType2(LLVMTypeRef ElementType, uint64_t ElementCount);
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610 unsigned LLVMGetArrayLength(LLVMTypeRef ArrayTy);
1611
1612
1613
1614
1615
1616
1617
1618
1619 uint64_t LLVMGetArrayLength2(LLVMTypeRef ArrayTy);
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629 LLVMTypeRef LLVMPointerType(LLVMTypeRef ElementType, unsigned AddressSpace);
1630
1631
1632
1633
1634
1635
1636
1637
1638 LLVMBool LLVMPointerTypeIsOpaque(LLVMTypeRef Ty);
1639
1640
1641
1642
1643
1644
1645 LLVMTypeRef LLVMPointerTypeInContext(LLVMContextRef C, unsigned AddressSpace);
1646
1647
1648
1649
1650
1651
1652
1653
1654 unsigned LLVMGetPointerAddressSpace(LLVMTypeRef PointerTy);
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665 LLVMTypeRef LLVMVectorType(LLVMTypeRef ElementType, unsigned ElementCount);
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676 LLVMTypeRef LLVMScalableVectorType(LLVMTypeRef ElementType,
1677 unsigned ElementCount);
1678
1679
1680
1681
1682
1683
1684
1685
1686 unsigned LLVMGetVectorSize(LLVMTypeRef VectorTy);
1687
1688
1689
1690
1691
1692
1693 LLVMValueRef LLVMGetConstantPtrAuthPointer(LLVMValueRef PtrAuth);
1694
1695
1696
1697
1698
1699
1700 LLVMValueRef LLVMGetConstantPtrAuthKey(LLVMValueRef PtrAuth);
1701
1702
1703
1704
1705
1706
1707 LLVMValueRef LLVMGetConstantPtrAuthDiscriminator(LLVMValueRef PtrAuth);
1708
1709
1710
1711
1712
1713
1714
1715 LLVMValueRef LLVMGetConstantPtrAuthAddrDiscriminator(LLVMValueRef PtrAuth);
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730 LLVMTypeRef LLVMVoidTypeInContext(LLVMContextRef C);
1731
1732
1733
1734
1735 LLVMTypeRef LLVMLabelTypeInContext(LLVMContextRef C);
1736
1737
1738
1739
1740 LLVMTypeRef LLVMX86AMXTypeInContext(LLVMContextRef C);
1741
1742
1743
1744
1745 LLVMTypeRef LLVMTokenTypeInContext(LLVMContextRef C);
1746
1747
1748
1749
1750 LLVMTypeRef LLVMMetadataTypeInContext(LLVMContextRef C);
1751
1752
1753
1754
1755
1756 LLVMTypeRef LLVMVoidType(void);
1757 LLVMTypeRef LLVMLabelType(void);
1758 LLVMTypeRef LLVMX86AMXType(void);
1759
1760
1761
1762
1763 LLVMTypeRef LLVMTargetExtTypeInContext(LLVMContextRef C, const char *Name,
1764 LLVMTypeRef *TypeParams,
1765 unsigned TypeParamCount,
1766 unsigned *IntParams,
1767 unsigned IntParamCount);
1768
1769
1770
1771
1772
1773
1774 const char *LLVMGetTargetExtTypeName(LLVMTypeRef TargetExtTy);
1775
1776
1777
1778
1779
1780
1781 unsigned LLVMGetTargetExtTypeNumTypeParams(LLVMTypeRef TargetExtTy);
1782
1783
1784
1785
1786
1787
1788 LLVMTypeRef LLVMGetTargetExtTypeTypeParam(LLVMTypeRef TargetExtTy,
1789 unsigned Idx);
1790
1791
1792
1793
1794
1795
1796 unsigned LLVMGetTargetExtTypeNumIntParams(LLVMTypeRef TargetExtTy);
1797
1798
1799
1800
1801
1802
1803 unsigned LLVMGetTargetExtTypeIntParam(LLVMTypeRef TargetExtTy, unsigned Idx);
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838 #define LLVM_FOR_EACH_VALUE_SUBCLASS(macro) \
1839 macro(Argument) \
1840 macro(BasicBlock) \
1841 macro(InlineAsm) \
1842 macro(User) \
1843 macro(Constant) \
1844 macro(BlockAddress) \
1845 macro(ConstantAggregateZero) \
1846 macro(ConstantArray) \
1847 macro(ConstantDataSequential) \
1848 macro(ConstantDataArray) \
1849 macro(ConstantDataVector) \
1850 macro(ConstantExpr) \
1851 macro(ConstantFP) \
1852 macro(ConstantInt) \
1853 macro(ConstantPointerNull) \
1854 macro(ConstantStruct) \
1855 macro(ConstantTokenNone) \
1856 macro(ConstantVector) \
1857 macro(ConstantPtrAuth) \
1858 macro(GlobalValue) \
1859 macro(GlobalAlias) \
1860 macro(GlobalObject) \
1861 macro(Function) \
1862 macro(GlobalVariable) \
1863 macro(GlobalIFunc) \
1864 macro(UndefValue) \
1865 macro(PoisonValue) \
1866 macro(Instruction) \
1867 macro(UnaryOperator) \
1868 macro(BinaryOperator) \
1869 macro(CallInst) \
1870 macro(IntrinsicInst) \
1871 macro(DbgInfoIntrinsic) \
1872 macro(DbgVariableIntrinsic) \
1873 macro(DbgDeclareInst) \
1874 macro(DbgLabelInst) \
1875 macro(MemIntrinsic) \
1876 macro(MemCpyInst) \
1877 macro(MemMoveInst) \
1878 macro(MemSetInst) \
1879 macro(CmpInst) \
1880 macro(FCmpInst) \
1881 macro(ICmpInst) \
1882 macro(ExtractElementInst) \
1883 macro(GetElementPtrInst) \
1884 macro(InsertElementInst) \
1885 macro(InsertValueInst) \
1886 macro(LandingPadInst) \
1887 macro(PHINode) \
1888 macro(SelectInst) \
1889 macro(ShuffleVectorInst) \
1890 macro(StoreInst) \
1891 macro(BranchInst) \
1892 macro(IndirectBrInst) \
1893 macro(InvokeInst) \
1894 macro(ReturnInst) \
1895 macro(SwitchInst) \
1896 macro(UnreachableInst) \
1897 macro(ResumeInst) \
1898 macro(CleanupReturnInst) \
1899 macro(CatchReturnInst) \
1900 macro(CatchSwitchInst) \
1901 macro(CallBrInst) \
1902 macro(FuncletPadInst) \
1903 macro(CatchPadInst) \
1904 macro(CleanupPadInst) \
1905 macro(UnaryInstruction) \
1906 macro(AllocaInst) \
1907 macro(CastInst) \
1908 macro(AddrSpaceCastInst) \
1909 macro(BitCastInst) \
1910 macro(FPExtInst) \
1911 macro(FPToSIInst) \
1912 macro(FPToUIInst) \
1913 macro(FPTruncInst) \
1914 macro(IntToPtrInst) \
1915 macro(PtrToIntInst) \
1916 macro(SExtInst) \
1917 macro(SIToFPInst) \
1918 macro(TruncInst) \
1919 macro(UIToFPInst) \
1920 macro(ZExtInst) \
1921 macro(ExtractValueInst) \
1922 macro(LoadInst) \
1923 macro(VAArgInst) \
1924 macro(FreezeInst) \
1925 macro(AtomicCmpXchgInst) \
1926 macro(AtomicRMWInst) \
1927 macro(FenceInst)
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946 LLVMTypeRef LLVMTypeOf(LLVMValueRef Val);
1947
1948
1949
1950
1951
1952
1953 LLVMValueKind LLVMGetValueKind(LLVMValueRef Val);
1954
1955
1956
1957
1958
1959
1960 const char *LLVMGetValueName2(LLVMValueRef Val, size_t *Length);
1961
1962
1963
1964
1965
1966
1967 void LLVMSetValueName2(LLVMValueRef Val, const char *Name, size_t NameLen);
1968
1969
1970
1971
1972
1973
1974 void LLVMDumpValue(LLVMValueRef Val);
1975
1976
1977
1978
1979
1980
1981
1982 char *LLVMPrintValueToString(LLVMValueRef Val);
1983
1984
1985
1986
1987
1988
1989 LLVMContextRef LLVMGetValueContext(LLVMValueRef Val);
1990
1991
1992
1993
1994
1995
1996
1997 char *LLVMPrintDbgRecordToString(LLVMDbgRecordRef Record);
1998
1999
2000
2001
2002
2003
2004 void LLVMReplaceAllUsesWith(LLVMValueRef OldVal, LLVMValueRef NewVal);
2005
2006
2007
2008
2009 LLVMBool LLVMIsConstant(LLVMValueRef Val);
2010
2011
2012
2013
2014 LLVMBool LLVMIsUndef(LLVMValueRef Val);
2015
2016
2017
2018
2019 LLVMBool LLVMIsPoison(LLVMValueRef Val);
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032 #define LLVM_DECLARE_VALUE_CAST(name) \
2033 LLVMValueRef LLVMIsA##name(LLVMValueRef Val);
2034 LLVM_FOR_EACH_VALUE_SUBCLASS(LLVM_DECLARE_VALUE_CAST)
2035
2036 LLVMValueRef LLVMIsAMDNode(LLVMValueRef Val);
2037 LLVMValueRef LLVMIsAValueAsMetadata(LLVMValueRef Val);
2038 LLVMValueRef LLVMIsAMDString(LLVMValueRef Val);
2039
2040
2041 const char *LLVMGetValueName(LLVMValueRef Val);
2042
2043 void LLVMSetValueName(LLVMValueRef Val, const char *Name);
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072 LLVMUseRef LLVMGetFirstUse(LLVMValueRef Val);
2073
2074
2075
2076
2077
2078
2079
2080 LLVMUseRef LLVMGetNextUse(LLVMUseRef U);
2081
2082
2083
2084
2085
2086
2087
2088
2089 LLVMValueRef LLVMGetUser(LLVMUseRef U);
2090
2091
2092
2093
2094
2095
2096 LLVMValueRef LLVMGetUsedValue(LLVMUseRef U);
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117 LLVMValueRef LLVMGetOperand(LLVMValueRef Val, unsigned Index);
2118
2119
2120
2121
2122
2123
2124 LLVMUseRef LLVMGetOperandUse(LLVMValueRef Val, unsigned Index);
2125
2126
2127
2128
2129
2130
2131 void LLVMSetOperand(LLVMValueRef User, unsigned Index, LLVMValueRef Val);
2132
2133
2134
2135
2136
2137
2138 int LLVMGetNumOperands(LLVMValueRef Val);
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161 LLVMValueRef LLVMConstNull(LLVMTypeRef Ty);
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171 LLVMValueRef LLVMConstAllOnes(LLVMTypeRef Ty);
2172
2173
2174
2175
2176
2177
2178 LLVMValueRef LLVMGetUndef(LLVMTypeRef Ty);
2179
2180
2181
2182
2183
2184
2185 LLVMValueRef LLVMGetPoison(LLVMTypeRef Ty);
2186
2187
2188
2189
2190
2191
2192 LLVMBool LLVMIsNull(LLVMValueRef Val);
2193
2194
2195
2196
2197
2198 LLVMValueRef LLVMConstPointerNull(LLVMTypeRef Ty);
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227 LLVMValueRef LLVMConstInt(LLVMTypeRef IntTy, unsigned long long N,
2228 LLVMBool SignExtend);
2229
2230
2231
2232
2233
2234
2235 LLVMValueRef LLVMConstIntOfArbitraryPrecision(LLVMTypeRef IntTy,
2236 unsigned NumWords,
2237 const uint64_t Words[]);
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248 LLVMValueRef LLVMConstIntOfString(LLVMTypeRef IntTy, const char *Text,
2249 uint8_t Radix);
2250
2251
2252
2253
2254
2255
2256
2257 LLVMValueRef LLVMConstIntOfStringAndSize(LLVMTypeRef IntTy, const char *Text,
2258 unsigned SLen, uint8_t Radix);
2259
2260
2261
2262
2263 LLVMValueRef LLVMConstReal(LLVMTypeRef RealTy, double N);
2264
2265
2266
2267
2268
2269
2270
2271 LLVMValueRef LLVMConstRealOfString(LLVMTypeRef RealTy, const char *Text);
2272
2273
2274
2275
2276 LLVMValueRef LLVMConstRealOfStringAndSize(LLVMTypeRef RealTy, const char *Text,
2277 unsigned SLen);
2278
2279
2280
2281
2282
2283
2284 unsigned long long LLVMConstIntGetZExtValue(LLVMValueRef ConstantVal);
2285
2286
2287
2288
2289
2290
2291 long long LLVMConstIntGetSExtValue(LLVMValueRef ConstantVal);
2292
2293
2294
2295
2296
2297
2298
2299 double LLVMConstRealGetDouble(LLVMValueRef ConstantVal, LLVMBool *losesInfo);
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320 LLVMValueRef LLVMConstStringInContext(LLVMContextRef C, const char *Str,
2321 unsigned Length, LLVMBool DontNullTerminate);
2322
2323
2324
2325
2326
2327
2328 LLVMValueRef LLVMConstStringInContext2(LLVMContextRef C, const char *Str,
2329 size_t Length,
2330 LLVMBool DontNullTerminate);
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341 LLVMValueRef LLVMConstString(const char *Str, unsigned Length,
2342 LLVMBool DontNullTerminate);
2343
2344
2345
2346
2347
2348
2349 LLVMBool LLVMIsConstantString(LLVMValueRef c);
2350
2351
2352
2353
2354
2355
2356 const char *LLVMGetAsString(LLVMValueRef c, size_t *Length);
2357
2358
2359
2360
2361
2362
2363 LLVMValueRef LLVMConstStructInContext(LLVMContextRef C,
2364 LLVMValueRef *ConstantVals,
2365 unsigned Count, LLVMBool Packed);
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375 LLVMValueRef LLVMConstStruct(LLVMValueRef *ConstantVals, unsigned Count,
2376 LLVMBool Packed);
2377
2378
2379
2380
2381
2382
2383
2384
2385 LLVMValueRef LLVMConstArray(LLVMTypeRef ElementTy,
2386 LLVMValueRef *ConstantVals, unsigned Length);
2387
2388
2389
2390
2391
2392
2393 LLVMValueRef LLVMConstArray2(LLVMTypeRef ElementTy, LLVMValueRef *ConstantVals,
2394 uint64_t Length);
2395
2396
2397
2398
2399
2400
2401 LLVMValueRef LLVMConstNamedStruct(LLVMTypeRef StructTy,
2402 LLVMValueRef *ConstantVals,
2403 unsigned Count);
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413 LLVMValueRef LLVMGetAggregateElement(LLVMValueRef C, unsigned Idx);
2414
2415
2416
2417
2418
2419
2420 LLVM_ATTRIBUTE_C_DEPRECATED(
2421 LLVMValueRef LLVMGetElementAsConstant(LLVMValueRef C, unsigned idx),
2422 "Use LLVMGetAggregateElement instead");
2423
2424
2425
2426
2427
2428
2429 LLVMValueRef LLVMConstVector(LLVMValueRef *ScalarConstantVals, unsigned Size);
2430
2431
2432
2433
2434
2435
2436 LLVMValueRef LLVMConstantPtrAuth(LLVMValueRef Ptr, LLVMValueRef Key,
2437 LLVMValueRef Disc, LLVMValueRef AddrDisc);
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452 LLVMOpcode LLVMGetConstOpcode(LLVMValueRef ConstantVal);
2453 LLVMValueRef LLVMAlignOf(LLVMTypeRef Ty);
2454 LLVMValueRef LLVMSizeOf(LLVMTypeRef Ty);
2455 LLVMValueRef LLVMConstNeg(LLVMValueRef ConstantVal);
2456 LLVMValueRef LLVMConstNSWNeg(LLVMValueRef ConstantVal);
2457 LLVM_ATTRIBUTE_C_DEPRECATED(
2458 LLVMValueRef LLVMConstNUWNeg(LLVMValueRef ConstantVal),
2459 "Use LLVMConstNull instead.");
2460 LLVMValueRef LLVMConstNot(LLVMValueRef ConstantVal);
2461 LLVMValueRef LLVMConstAdd(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
2462 LLVMValueRef LLVMConstNSWAdd(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
2463 LLVMValueRef LLVMConstNUWAdd(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
2464 LLVMValueRef LLVMConstSub(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
2465 LLVMValueRef LLVMConstNSWSub(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
2466 LLVMValueRef LLVMConstNUWSub(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
2467 LLVMValueRef LLVMConstMul(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
2468 LLVMValueRef LLVMConstNSWMul(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
2469 LLVMValueRef LLVMConstNUWMul(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
2470 LLVMValueRef LLVMConstXor(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
2471 LLVMValueRef LLVMConstGEP2(LLVMTypeRef Ty, LLVMValueRef ConstantVal,
2472 LLVMValueRef *ConstantIndices, unsigned NumIndices);
2473 LLVMValueRef LLVMConstInBoundsGEP2(LLVMTypeRef Ty, LLVMValueRef ConstantVal,
2474 LLVMValueRef *ConstantIndices,
2475 unsigned NumIndices);
2476
2477
2478
2479
2480
2481
2482 LLVMValueRef LLVMConstGEPWithNoWrapFlags(LLVMTypeRef Ty,
2483 LLVMValueRef ConstantVal,
2484 LLVMValueRef *ConstantIndices,
2485 unsigned NumIndices,
2486 LLVMGEPNoWrapFlags NoWrapFlags);
2487 LLVMValueRef LLVMConstTrunc(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
2488 LLVMValueRef LLVMConstPtrToInt(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
2489 LLVMValueRef LLVMConstIntToPtr(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
2490 LLVMValueRef LLVMConstBitCast(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
2491 LLVMValueRef LLVMConstAddrSpaceCast(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
2492 LLVMValueRef LLVMConstTruncOrBitCast(LLVMValueRef ConstantVal,
2493 LLVMTypeRef ToType);
2494 LLVMValueRef LLVMConstPointerCast(LLVMValueRef ConstantVal,
2495 LLVMTypeRef ToType);
2496 LLVMValueRef LLVMConstExtractElement(LLVMValueRef VectorConstant,
2497 LLVMValueRef IndexConstant);
2498 LLVMValueRef LLVMConstInsertElement(LLVMValueRef VectorConstant,
2499 LLVMValueRef ElementValueConstant,
2500 LLVMValueRef IndexConstant);
2501 LLVMValueRef LLVMConstShuffleVector(LLVMValueRef VectorAConstant,
2502 LLVMValueRef VectorBConstant,
2503 LLVMValueRef MaskConstant);
2504 LLVMValueRef LLVMBlockAddress(LLVMValueRef F, LLVMBasicBlockRef BB);
2505
2506
2507
2508
2509 LLVMValueRef LLVMGetBlockAddressFunction(LLVMValueRef BlockAddr);
2510
2511
2512
2513
2514 LLVMBasicBlockRef LLVMGetBlockAddressBasicBlock(LLVMValueRef BlockAddr);
2515
2516
2517 LLVMValueRef LLVMConstInlineAsm(LLVMTypeRef Ty,
2518 const char *AsmString, const char *Constraints,
2519 LLVMBool HasSideEffects, LLVMBool IsAlignStack);
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536 LLVMModuleRef LLVMGetGlobalParent(LLVMValueRef Global);
2537 LLVMBool LLVMIsDeclaration(LLVMValueRef Global);
2538 LLVMLinkage LLVMGetLinkage(LLVMValueRef Global);
2539 void LLVMSetLinkage(LLVMValueRef Global, LLVMLinkage Linkage);
2540 const char *LLVMGetSection(LLVMValueRef Global);
2541 void LLVMSetSection(LLVMValueRef Global, const char *Section);
2542 LLVMVisibility LLVMGetVisibility(LLVMValueRef Global);
2543 void LLVMSetVisibility(LLVMValueRef Global, LLVMVisibility Viz);
2544 LLVMDLLStorageClass LLVMGetDLLStorageClass(LLVMValueRef Global);
2545 void LLVMSetDLLStorageClass(LLVMValueRef Global, LLVMDLLStorageClass Class);
2546 LLVMUnnamedAddr LLVMGetUnnamedAddress(LLVMValueRef Global);
2547 void LLVMSetUnnamedAddress(LLVMValueRef Global, LLVMUnnamedAddr UnnamedAddr);
2548
2549
2550
2551
2552
2553
2554
2555 LLVMTypeRef LLVMGlobalGetValueType(LLVMValueRef Global);
2556
2557
2558 LLVMBool LLVMHasUnnamedAddr(LLVMValueRef Global);
2559
2560 void LLVMSetUnnamedAddr(LLVMValueRef Global, LLVMBool HasUnnamedAddr);
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578 unsigned LLVMGetAlignment(LLVMValueRef V);
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589 void LLVMSetAlignment(LLVMValueRef V, unsigned Bytes);
2590
2591
2592
2593
2594
2595
2596
2597 void LLVMGlobalSetMetadata(LLVMValueRef Global, unsigned Kind,
2598 LLVMMetadataRef MD);
2599
2600
2601
2602
2603
2604
2605 void LLVMGlobalEraseMetadata(LLVMValueRef Global, unsigned Kind);
2606
2607
2608
2609
2610
2611
2612 void LLVMGlobalClearMetadata(LLVMValueRef Global);
2613
2614
2615
2616
2617
2618
2619
2620
2621 LLVMValueMetadataEntry *LLVMGlobalCopyAllMetadata(LLVMValueRef Value,
2622 size_t *NumEntries);
2623
2624
2625
2626
2627 void LLVMDisposeValueMetadataEntries(LLVMValueMetadataEntry *Entries);
2628
2629
2630
2631
2632 unsigned LLVMValueMetadataEntriesGetKind(LLVMValueMetadataEntry *Entries,
2633 unsigned Index);
2634
2635
2636
2637
2638
2639 LLVMMetadataRef
2640 LLVMValueMetadataEntriesGetMetadata(LLVMValueMetadataEntry *Entries,
2641 unsigned Index);
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656 LLVMValueRef LLVMAddGlobal(LLVMModuleRef M, LLVMTypeRef Ty, const char *Name);
2657 LLVMValueRef LLVMAddGlobalInAddressSpace(LLVMModuleRef M, LLVMTypeRef Ty,
2658 const char *Name,
2659 unsigned AddressSpace);
2660 LLVMValueRef LLVMGetNamedGlobal(LLVMModuleRef M, const char *Name);
2661 LLVMValueRef LLVMGetNamedGlobalWithLength(LLVMModuleRef M, const char *Name,
2662 size_t Length);
2663 LLVMValueRef LLVMGetFirstGlobal(LLVMModuleRef M);
2664 LLVMValueRef LLVMGetLastGlobal(LLVMModuleRef M);
2665 LLVMValueRef LLVMGetNextGlobal(LLVMValueRef GlobalVar);
2666 LLVMValueRef LLVMGetPreviousGlobal(LLVMValueRef GlobalVar);
2667 void LLVMDeleteGlobal(LLVMValueRef GlobalVar);
2668 LLVMValueRef LLVMGetInitializer(LLVMValueRef GlobalVar);
2669 void LLVMSetInitializer(LLVMValueRef GlobalVar, LLVMValueRef ConstantVal);
2670 LLVMBool LLVMIsThreadLocal(LLVMValueRef GlobalVar);
2671 void LLVMSetThreadLocal(LLVMValueRef GlobalVar, LLVMBool IsThreadLocal);
2672 LLVMBool LLVMIsGlobalConstant(LLVMValueRef GlobalVar);
2673 void LLVMSetGlobalConstant(LLVMValueRef GlobalVar, LLVMBool IsConstant);
2674 LLVMThreadLocalMode LLVMGetThreadLocalMode(LLVMValueRef GlobalVar);
2675 void LLVMSetThreadLocalMode(LLVMValueRef GlobalVar, LLVMThreadLocalMode Mode);
2676 LLVMBool LLVMIsExternallyInitialized(LLVMValueRef GlobalVar);
2677 void LLVMSetExternallyInitialized(LLVMValueRef GlobalVar, LLVMBool IsExtInit);
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698 LLVMValueRef LLVMAddAlias2(LLVMModuleRef M, LLVMTypeRef ValueTy,
2699 unsigned AddrSpace, LLVMValueRef Aliasee,
2700 const char *Name);
2701
2702
2703
2704
2705
2706
2707
2708
2709 LLVMValueRef LLVMGetNamedGlobalAlias(LLVMModuleRef M,
2710 const char *Name, size_t NameLen);
2711
2712
2713
2714
2715
2716
2717 LLVMValueRef LLVMGetFirstGlobalAlias(LLVMModuleRef M);
2718
2719
2720
2721
2722
2723
2724 LLVMValueRef LLVMGetLastGlobalAlias(LLVMModuleRef M);
2725
2726
2727
2728
2729
2730
2731
2732 LLVMValueRef LLVMGetNextGlobalAlias(LLVMValueRef GA);
2733
2734
2735
2736
2737
2738
2739
2740 LLVMValueRef LLVMGetPreviousGlobalAlias(LLVMValueRef GA);
2741
2742
2743
2744
2745 LLVMValueRef LLVMAliasGetAliasee(LLVMValueRef Alias);
2746
2747
2748
2749
2750 void LLVMAliasSetAliasee(LLVMValueRef Alias, LLVMValueRef Aliasee);
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772 void LLVMDeleteFunction(LLVMValueRef Fn);
2773
2774
2775
2776
2777
2778
2779 LLVMBool LLVMHasPersonalityFn(LLVMValueRef Fn);
2780
2781
2782
2783
2784
2785
2786 LLVMValueRef LLVMGetPersonalityFn(LLVMValueRef Fn);
2787
2788
2789
2790
2791
2792
2793 void LLVMSetPersonalityFn(LLVMValueRef Fn, LLVMValueRef PersonalityFn);
2794
2795
2796
2797
2798
2799
2800 unsigned LLVMLookupIntrinsicID(const char *Name, size_t NameLen);
2801
2802
2803
2804
2805
2806
2807 unsigned LLVMGetIntrinsicID(LLVMValueRef Fn);
2808
2809
2810
2811
2812
2813
2814
2815 LLVMValueRef LLVMGetIntrinsicDeclaration(LLVMModuleRef Mod,
2816 unsigned ID,
2817 LLVMTypeRef *ParamTypes,
2818 size_t ParamCount);
2819
2820
2821
2822
2823
2824
2825
2826 LLVMTypeRef LLVMIntrinsicGetType(LLVMContextRef Ctx, unsigned ID,
2827 LLVMTypeRef *ParamTypes, size_t ParamCount);
2828
2829
2830
2831
2832
2833
2834 const char *LLVMIntrinsicGetName(unsigned ID, size_t *NameLength);
2835
2836
2837 char *LLVMIntrinsicCopyOverloadedName(unsigned ID, LLVMTypeRef *ParamTypes,
2838 size_t ParamCount, size_t *NameLength);
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851 char *LLVMIntrinsicCopyOverloadedName2(LLVMModuleRef Mod, unsigned ID,
2852 LLVMTypeRef *ParamTypes,
2853 size_t ParamCount, size_t *NameLength);
2854
2855
2856
2857
2858
2859
2860 LLVMBool LLVMIntrinsicIsOverloaded(unsigned ID);
2861
2862
2863
2864
2865
2866
2867
2868
2869 unsigned LLVMGetFunctionCallConv(LLVMValueRef Fn);
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879 void LLVMSetFunctionCallConv(LLVMValueRef Fn, unsigned CC);
2880
2881
2882
2883
2884
2885
2886
2887 const char *LLVMGetGC(LLVMValueRef Fn);
2888
2889
2890
2891
2892
2893
2894 void LLVMSetGC(LLVMValueRef Fn, const char *Name);
2895
2896
2897
2898
2899
2900
2901 LLVMValueRef LLVMGetPrefixData(LLVMValueRef Fn);
2902
2903
2904
2905
2906
2907 LLVMBool LLVMHasPrefixData(LLVMValueRef Fn);
2908
2909
2910
2911
2912
2913 void LLVMSetPrefixData(LLVMValueRef Fn, LLVMValueRef prefixData);
2914
2915
2916
2917
2918
2919
2920 LLVMValueRef LLVMGetPrologueData(LLVMValueRef Fn);
2921
2922
2923
2924
2925
2926 LLVMBool LLVMHasPrologueData(LLVMValueRef Fn);
2927
2928
2929
2930
2931
2932 void LLVMSetPrologueData(LLVMValueRef Fn, LLVMValueRef prologueData);
2933
2934
2935
2936
2937
2938
2939 void LLVMAddAttributeAtIndex(LLVMValueRef F, LLVMAttributeIndex Idx,
2940 LLVMAttributeRef A);
2941 unsigned LLVMGetAttributeCountAtIndex(LLVMValueRef F, LLVMAttributeIndex Idx);
2942 void LLVMGetAttributesAtIndex(LLVMValueRef F, LLVMAttributeIndex Idx,
2943 LLVMAttributeRef *Attrs);
2944 LLVMAttributeRef LLVMGetEnumAttributeAtIndex(LLVMValueRef F,
2945 LLVMAttributeIndex Idx,
2946 unsigned KindID);
2947 LLVMAttributeRef LLVMGetStringAttributeAtIndex(LLVMValueRef F,
2948 LLVMAttributeIndex Idx,
2949 const char *K, unsigned KLen);
2950 void LLVMRemoveEnumAttributeAtIndex(LLVMValueRef F, LLVMAttributeIndex Idx,
2951 unsigned KindID);
2952 void LLVMRemoveStringAttributeAtIndex(LLVMValueRef F, LLVMAttributeIndex Idx,
2953 const char *K, unsigned KLen);
2954
2955
2956
2957
2958
2959 void LLVMAddTargetDependentFunctionAttr(LLVMValueRef Fn, const char *A,
2960 const char *V);
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978 unsigned LLVMCountParams(LLVMValueRef Fn);
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991 void LLVMGetParams(LLVMValueRef Fn, LLVMValueRef *Params);
2992
2993
2994
2995
2996
2997
2998
2999
3000 LLVMValueRef LLVMGetParam(LLVMValueRef Fn, unsigned Index);
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011 LLVMValueRef LLVMGetParamParent(LLVMValueRef Inst);
3012
3013
3014
3015
3016
3017
3018 LLVMValueRef LLVMGetFirstParam(LLVMValueRef Fn);
3019
3020
3021
3022
3023
3024
3025 LLVMValueRef LLVMGetLastParam(LLVMValueRef Fn);
3026
3027
3028
3029
3030
3031
3032
3033
3034 LLVMValueRef LLVMGetNextParam(LLVMValueRef Arg);
3035
3036
3037
3038
3039
3040
3041 LLVMValueRef LLVMGetPreviousParam(LLVMValueRef Arg);
3042
3043
3044
3045
3046
3047
3048
3049 void LLVMSetParamAlignment(LLVMValueRef Arg, unsigned Align);
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071 LLVMValueRef LLVMAddGlobalIFunc(LLVMModuleRef M,
3072 const char *Name, size_t NameLen,
3073 LLVMTypeRef Ty, unsigned AddrSpace,
3074 LLVMValueRef Resolver);
3075
3076
3077
3078
3079
3080
3081
3082
3083 LLVMValueRef LLVMGetNamedGlobalIFunc(LLVMModuleRef M,
3084 const char *Name, size_t NameLen);
3085
3086
3087
3088
3089
3090
3091 LLVMValueRef LLVMGetFirstGlobalIFunc(LLVMModuleRef M);
3092
3093
3094
3095
3096
3097
3098 LLVMValueRef LLVMGetLastGlobalIFunc(LLVMModuleRef M);
3099
3100
3101
3102
3103
3104
3105
3106 LLVMValueRef LLVMGetNextGlobalIFunc(LLVMValueRef IFunc);
3107
3108
3109
3110
3111
3112
3113
3114 LLVMValueRef LLVMGetPreviousGlobalIFunc(LLVMValueRef IFunc);
3115
3116
3117
3118
3119
3120
3121
3122 LLVMValueRef LLVMGetGlobalIFuncResolver(LLVMValueRef IFunc);
3123
3124
3125
3126
3127
3128
3129 void LLVMSetGlobalIFuncResolver(LLVMValueRef IFunc, LLVMValueRef Resolver);
3130
3131
3132
3133
3134
3135
3136 void LLVMEraseGlobalIFunc(LLVMValueRef IFunc);
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146 void LLVMRemoveGlobalIFunc(LLVMValueRef IFunc);
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178 LLVMMetadataRef LLVMMDStringInContext2(LLVMContextRef C, const char *Str,
3179 size_t SLen);
3180
3181
3182
3183
3184
3185
3186 LLVMMetadataRef LLVMMDNodeInContext2(LLVMContextRef C, LLVMMetadataRef *MDs,
3187 size_t Count);
3188
3189
3190
3191
3192 LLVMValueRef LLVMMetadataAsValue(LLVMContextRef C, LLVMMetadataRef MD);
3193
3194
3195
3196
3197 LLVMMetadataRef LLVMValueAsMetadata(LLVMValueRef Val);
3198
3199
3200
3201
3202
3203
3204
3205
3206 const char *LLVMGetMDString(LLVMValueRef V, unsigned *Length);
3207
3208
3209
3210
3211
3212
3213
3214 unsigned LLVMGetMDNodeNumOperands(LLVMValueRef V);
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227 void LLVMGetMDNodeOperands(LLVMValueRef V, LLVMValueRef *Dest);
3228
3229
3230
3231
3232
3233
3234 void LLVMReplaceMDNodeOperandWith(LLVMValueRef V, unsigned Index,
3235 LLVMMetadataRef Replacement);
3236
3237
3238 LLVMValueRef LLVMMDStringInContext(LLVMContextRef C, const char *Str,
3239 unsigned SLen);
3240
3241 LLVMValueRef LLVMMDString(const char *Str, unsigned SLen);
3242
3243 LLVMValueRef LLVMMDNodeInContext(LLVMContextRef C, LLVMValueRef *Vals,
3244 unsigned Count);
3245
3246 LLVMValueRef LLVMMDNode(LLVMValueRef *Vals, unsigned Count);
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274 LLVMOperandBundleRef LLVMCreateOperandBundle(const char *Tag, size_t TagLen,
3275 LLVMValueRef *Args,
3276 unsigned NumArgs);
3277
3278
3279
3280
3281
3282
3283
3284 void LLVMDisposeOperandBundle(LLVMOperandBundleRef Bundle);
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294 const char *LLVMGetOperandBundleTag(LLVMOperandBundleRef Bundle, size_t *Len);
3295
3296
3297
3298
3299
3300
3301
3302
3303 unsigned LLVMGetNumOperandBundleArgs(LLVMOperandBundleRef Bundle);
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313 LLVMValueRef LLVMGetOperandBundleArgAtIndex(LLVMOperandBundleRef Bundle,
3314 unsigned Index);
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340 LLVMValueRef LLVMBasicBlockAsValue(LLVMBasicBlockRef BB);
3341
3342
3343
3344
3345 LLVMBool LLVMValueIsBasicBlock(LLVMValueRef Val);
3346
3347
3348
3349
3350 LLVMBasicBlockRef LLVMValueAsBasicBlock(LLVMValueRef Val);
3351
3352
3353
3354
3355 const char *LLVMGetBasicBlockName(LLVMBasicBlockRef BB);
3356
3357
3358
3359
3360
3361
3362 LLVMValueRef LLVMGetBasicBlockParent(LLVMBasicBlockRef BB);
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374 LLVMValueRef LLVMGetBasicBlockTerminator(LLVMBasicBlockRef BB);
3375
3376
3377
3378
3379
3380
3381 unsigned LLVMCountBasicBlocks(LLVMValueRef Fn);
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391 void LLVMGetBasicBlocks(LLVMValueRef Fn, LLVMBasicBlockRef *BasicBlocks);
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401 LLVMBasicBlockRef LLVMGetFirstBasicBlock(LLVMValueRef Fn);
3402
3403
3404
3405
3406
3407
3408 LLVMBasicBlockRef LLVMGetLastBasicBlock(LLVMValueRef Fn);
3409
3410
3411
3412
3413 LLVMBasicBlockRef LLVMGetNextBasicBlock(LLVMBasicBlockRef BB);
3414
3415
3416
3417
3418 LLVMBasicBlockRef LLVMGetPreviousBasicBlock(LLVMBasicBlockRef BB);
3419
3420
3421
3422
3423
3424
3425
3426 LLVMBasicBlockRef LLVMGetEntryBasicBlock(LLVMValueRef Fn);
3427
3428
3429
3430
3431
3432
3433
3434
3435 void LLVMInsertExistingBasicBlockAfterInsertBlock(LLVMBuilderRef Builder,
3436 LLVMBasicBlockRef BB);
3437
3438
3439
3440
3441
3442
3443 void LLVMAppendExistingBasicBlock(LLVMValueRef Fn,
3444 LLVMBasicBlockRef BB);
3445
3446
3447
3448
3449
3450
3451 LLVMBasicBlockRef LLVMCreateBasicBlockInContext(LLVMContextRef C,
3452 const char *Name);
3453
3454
3455
3456
3457
3458
3459 LLVMBasicBlockRef LLVMAppendBasicBlockInContext(LLVMContextRef C,
3460 LLVMValueRef Fn,
3461 const char *Name);
3462
3463
3464
3465
3466
3467
3468
3469 LLVMBasicBlockRef LLVMAppendBasicBlock(LLVMValueRef Fn, const char *Name);
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479 LLVMBasicBlockRef LLVMInsertBasicBlockInContext(LLVMContextRef C,
3480 LLVMBasicBlockRef BB,
3481 const char *Name);
3482
3483
3484
3485
3486
3487
3488 LLVMBasicBlockRef LLVMInsertBasicBlock(LLVMBasicBlockRef InsertBeforeBB,
3489 const char *Name);
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499 void LLVMDeleteBasicBlock(LLVMBasicBlockRef BB);
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509 void LLVMRemoveBasicBlockFromParent(LLVMBasicBlockRef BB);
3510
3511
3512
3513
3514
3515
3516 void LLVMMoveBasicBlockBefore(LLVMBasicBlockRef BB, LLVMBasicBlockRef MovePos);
3517
3518
3519
3520
3521
3522
3523 void LLVMMoveBasicBlockAfter(LLVMBasicBlockRef BB, LLVMBasicBlockRef MovePos);
3524
3525
3526
3527
3528
3529
3530
3531 LLVMValueRef LLVMGetFirstInstruction(LLVMBasicBlockRef BB);
3532
3533
3534
3535
3536
3537
3538 LLVMValueRef LLVMGetLastInstruction(LLVMBasicBlockRef BB);
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564 int LLVMHasMetadata(LLVMValueRef Val);
3565
3566
3567
3568
3569 LLVMValueRef LLVMGetMetadata(LLVMValueRef Val, unsigned KindID);
3570
3571
3572
3573
3574 void LLVMSetMetadata(LLVMValueRef Val, unsigned KindID, LLVMValueRef Node);
3575
3576
3577
3578
3579
3580
3581
3582 LLVMValueMetadataEntry *
3583 LLVMInstructionGetAllMetadataOtherThanDebugLoc(LLVMValueRef Instr,
3584 size_t *NumEntries);
3585
3586
3587
3588
3589
3590
3591 LLVMBasicBlockRef LLVMGetInstructionParent(LLVMValueRef Inst);
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601 LLVMValueRef LLVMGetNextInstruction(LLVMValueRef Inst);
3602
3603
3604
3605
3606
3607
3608
3609 LLVMValueRef LLVMGetPreviousInstruction(LLVMValueRef Inst);
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619 void LLVMInstructionRemoveFromParent(LLVMValueRef Inst);
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629 void LLVMInstructionEraseFromParent(LLVMValueRef Inst);
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639 void LLVMDeleteInstruction(LLVMValueRef Inst);
3640
3641
3642
3643
3644
3645
3646 LLVMOpcode LLVMGetInstructionOpcode(LLVMValueRef Inst);
3647
3648
3649
3650
3651
3652
3653
3654
3655 LLVMIntPredicate LLVMGetICmpPredicate(LLVMValueRef Inst);
3656
3657
3658
3659
3660
3661
3662
3663
3664 LLVMRealPredicate LLVMGetFCmpPredicate(LLVMValueRef Inst);
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674 LLVMValueRef LLVMInstructionClone(LLVMValueRef Inst);
3675
3676
3677
3678
3679
3680
3681
3682
3683 LLVMValueRef LLVMIsATerminatorInst(LLVMValueRef Inst);
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695 LLVMDbgRecordRef LLVMGetFirstDbgRecord(LLVMValueRef Inst);
3696
3697
3698
3699
3700
3701
3702
3703
3704 LLVMDbgRecordRef LLVMGetLastDbgRecord(LLVMValueRef Inst);
3705
3706
3707
3708
3709
3710
3711 LLVMDbgRecordRef LLVMGetNextDbgRecord(LLVMDbgRecordRef DbgRecord);
3712
3713
3714
3715
3716
3717
3718 LLVMDbgRecordRef LLVMGetPreviousDbgRecord(LLVMDbgRecordRef DbgRecord);
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740 unsigned LLVMGetNumArgOperands(LLVMValueRef Instr);
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751 void LLVMSetInstructionCallConv(LLVMValueRef Instr, unsigned CC);
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761 unsigned LLVMGetInstructionCallConv(LLVMValueRef Instr);
3762
3763 void LLVMSetInstrParamAlignment(LLVMValueRef Instr, LLVMAttributeIndex Idx,
3764 unsigned Align);
3765
3766 void LLVMAddCallSiteAttribute(LLVMValueRef C, LLVMAttributeIndex Idx,
3767 LLVMAttributeRef A);
3768 unsigned LLVMGetCallSiteAttributeCount(LLVMValueRef C, LLVMAttributeIndex Idx);
3769 void LLVMGetCallSiteAttributes(LLVMValueRef C, LLVMAttributeIndex Idx,
3770 LLVMAttributeRef *Attrs);
3771 LLVMAttributeRef LLVMGetCallSiteEnumAttribute(LLVMValueRef C,
3772 LLVMAttributeIndex Idx,
3773 unsigned KindID);
3774 LLVMAttributeRef LLVMGetCallSiteStringAttribute(LLVMValueRef C,
3775 LLVMAttributeIndex Idx,
3776 const char *K, unsigned KLen);
3777 void LLVMRemoveCallSiteEnumAttribute(LLVMValueRef C, LLVMAttributeIndex Idx,
3778 unsigned KindID);
3779 void LLVMRemoveCallSiteStringAttribute(LLVMValueRef C, LLVMAttributeIndex Idx,
3780 const char *K, unsigned KLen);
3781
3782
3783
3784
3785
3786
3787 LLVMTypeRef LLVMGetCalledFunctionType(LLVMValueRef C);
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798 LLVMValueRef LLVMGetCalledValue(LLVMValueRef Instr);
3799
3800
3801
3802
3803
3804
3805
3806
3807 unsigned LLVMGetNumOperandBundles(LLVMValueRef C);
3808
3809
3810
3811
3812
3813
3814
3815 LLVMOperandBundleRef LLVMGetOperandBundleAtIndex(LLVMValueRef C,
3816 unsigned Index);
3817
3818
3819
3820
3821
3822
3823
3824
3825 LLVMBool LLVMIsTailCall(LLVMValueRef CallInst);
3826
3827
3828
3829
3830
3831
3832
3833
3834 void LLVMSetTailCall(LLVMValueRef CallInst, LLVMBool IsTailCall);
3835
3836
3837
3838
3839
3840
3841 LLVMTailCallKind LLVMGetTailCallKind(LLVMValueRef CallInst);
3842
3843
3844
3845
3846
3847
3848 void LLVMSetTailCallKind(LLVMValueRef CallInst, LLVMTailCallKind kind);
3849
3850
3851
3852
3853
3854
3855
3856
3857 LLVMBasicBlockRef LLVMGetNormalDest(LLVMValueRef InvokeInst);
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869 LLVMBasicBlockRef LLVMGetUnwindDest(LLVMValueRef InvokeInst);
3870
3871
3872
3873
3874
3875
3876
3877
3878 void LLVMSetNormalDest(LLVMValueRef InvokeInst, LLVMBasicBlockRef B);
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890 void LLVMSetUnwindDest(LLVMValueRef InvokeInst, LLVMBasicBlockRef B);
3891
3892
3893
3894
3895
3896
3897 LLVMBasicBlockRef LLVMGetCallBrDefaultDest(LLVMValueRef CallBr);
3898
3899
3900
3901
3902
3903
3904
3905 unsigned LLVMGetCallBrNumIndirectDests(LLVMValueRef CallBr);
3906
3907
3908
3909
3910
3911
3912 LLVMBasicBlockRef LLVMGetCallBrIndirectDest(LLVMValueRef CallBr, unsigned Idx);
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932 unsigned LLVMGetNumSuccessors(LLVMValueRef Term);
3933
3934
3935
3936
3937
3938
3939 LLVMBasicBlockRef LLVMGetSuccessor(LLVMValueRef Term, unsigned i);
3940
3941
3942
3943
3944
3945
3946 void LLVMSetSuccessor(LLVMValueRef Term, unsigned i, LLVMBasicBlockRef block);
3947
3948
3949
3950
3951
3952
3953
3954
3955 LLVMBool LLVMIsConditional(LLVMValueRef Branch);
3956
3957
3958
3959
3960
3961
3962
3963
3964 LLVMValueRef LLVMGetCondition(LLVMValueRef Branch);
3965
3966
3967
3968
3969
3970
3971
3972
3973 void LLVMSetCondition(LLVMValueRef Branch, LLVMValueRef Cond);
3974
3975
3976
3977
3978
3979
3980
3981
3982 LLVMBasicBlockRef LLVMGetSwitchDefaultDest(LLVMValueRef SwitchInstr);
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000 LLVMTypeRef LLVMGetAllocatedType(LLVMValueRef Alloca);
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018 LLVMBool LLVMIsInBounds(LLVMValueRef GEP);
4019
4020
4021
4022
4023 void LLVMSetIsInBounds(LLVMValueRef GEP, LLVMBool InBounds);
4024
4025
4026
4027
4028 LLVMTypeRef LLVMGetGEPSourceElementType(LLVMValueRef GEP);
4029
4030
4031
4032
4033
4034
4035 LLVMGEPNoWrapFlags LLVMGEPGetNoWrapFlags(LLVMValueRef GEP);
4036
4037
4038
4039
4040
4041
4042 void LLVMGEPSetNoWrapFlags(LLVMValueRef GEP, LLVMGEPNoWrapFlags NoWrapFlags);
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060 void LLVMAddIncoming(LLVMValueRef PhiNode, LLVMValueRef *IncomingValues,
4061 LLVMBasicBlockRef *IncomingBlocks, unsigned Count);
4062
4063
4064
4065
4066 unsigned LLVMCountIncoming(LLVMValueRef PhiNode);
4067
4068
4069
4070
4071 LLVMValueRef LLVMGetIncomingValue(LLVMValueRef PhiNode, unsigned Index);
4072
4073
4074
4075
4076 LLVMBasicBlockRef LLVMGetIncomingBlock(LLVMValueRef PhiNode, unsigned Index);
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096 unsigned LLVMGetNumIndices(LLVMValueRef Inst);
4097
4098
4099
4100
4101 const unsigned *LLVMGetIndices(LLVMValueRef Inst);
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124 LLVMBuilderRef LLVMCreateBuilderInContext(LLVMContextRef C);
4125 LLVMBuilderRef LLVMCreateBuilder(void);
4126
4127
4128
4129
4130 void LLVMPositionBuilder(LLVMBuilderRef Builder, LLVMBasicBlockRef Block,
4131 LLVMValueRef Instr);
4132
4133
4134
4135
4136 void LLVMPositionBuilderBeforeDbgRecords(LLVMBuilderRef Builder,
4137 LLVMBasicBlockRef Block,
4138 LLVMValueRef Inst);
4139
4140
4141
4142 void LLVMPositionBuilderBefore(LLVMBuilderRef Builder, LLVMValueRef Instr);
4143
4144
4145
4146 void LLVMPositionBuilderBeforeInstrAndDbgRecords(LLVMBuilderRef Builder,
4147 LLVMValueRef Instr);
4148 void LLVMPositionBuilderAtEnd(LLVMBuilderRef Builder, LLVMBasicBlockRef Block);
4149 LLVMBasicBlockRef LLVMGetInsertBlock(LLVMBuilderRef Builder);
4150 void LLVMClearInsertionPosition(LLVMBuilderRef Builder);
4151 void LLVMInsertIntoBuilder(LLVMBuilderRef Builder, LLVMValueRef Instr);
4152 void LLVMInsertIntoBuilderWithName(LLVMBuilderRef Builder, LLVMValueRef Instr,
4153 const char *Name);
4154 void LLVMDisposeBuilder(LLVMBuilderRef Builder);
4155
4156
4157
4158
4159
4160
4161
4162
4163 LLVMMetadataRef LLVMGetCurrentDebugLocation2(LLVMBuilderRef Builder);
4164
4165
4166
4167
4168
4169
4170
4171
4172 void LLVMSetCurrentDebugLocation2(LLVMBuilderRef Builder, LLVMMetadataRef Loc);
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184 void LLVMSetInstDebugLocation(LLVMBuilderRef Builder, LLVMValueRef Inst);
4185
4186
4187
4188
4189
4190
4191 void LLVMAddMetadataToInst(LLVMBuilderRef Builder, LLVMValueRef Inst);
4192
4193
4194
4195
4196
4197
4198 LLVMMetadataRef LLVMBuilderGetDefaultFPMathTag(LLVMBuilderRef Builder);
4199
4200
4201
4202
4203
4204
4205
4206
4207 void LLVMBuilderSetDefaultFPMathTag(LLVMBuilderRef Builder,
4208 LLVMMetadataRef FPMathTag);
4209
4210
4211
4212
4213
4214
4215 LLVMContextRef LLVMGetBuilderContext(LLVMBuilderRef Builder);
4216
4217
4218
4219
4220
4221 void LLVMSetCurrentDebugLocation(LLVMBuilderRef Builder, LLVMValueRef L);
4222
4223
4224
4225
4226 LLVMValueRef LLVMGetCurrentDebugLocation(LLVMBuilderRef Builder);
4227
4228
4229 LLVMValueRef LLVMBuildRetVoid(LLVMBuilderRef);
4230 LLVMValueRef LLVMBuildRet(LLVMBuilderRef, LLVMValueRef V);
4231 LLVMValueRef LLVMBuildAggregateRet(LLVMBuilderRef, LLVMValueRef *RetVals,
4232 unsigned N);
4233 LLVMValueRef LLVMBuildBr(LLVMBuilderRef, LLVMBasicBlockRef Dest);
4234 LLVMValueRef LLVMBuildCondBr(LLVMBuilderRef, LLVMValueRef If,
4235 LLVMBasicBlockRef Then, LLVMBasicBlockRef Else);
4236 LLVMValueRef LLVMBuildSwitch(LLVMBuilderRef, LLVMValueRef V,
4237 LLVMBasicBlockRef Else, unsigned NumCases);
4238 LLVMValueRef LLVMBuildIndirectBr(LLVMBuilderRef B, LLVMValueRef Addr,
4239 unsigned NumDests);
4240 LLVMValueRef LLVMBuildCallBr(LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Fn,
4241 LLVMBasicBlockRef DefaultDest,
4242 LLVMBasicBlockRef *IndirectDests,
4243 unsigned NumIndirectDests, LLVMValueRef *Args,
4244 unsigned NumArgs, LLVMOperandBundleRef *Bundles,
4245 unsigned NumBundles, const char *Name);
4246 LLVMValueRef LLVMBuildInvoke2(LLVMBuilderRef, LLVMTypeRef Ty, LLVMValueRef Fn,
4247 LLVMValueRef *Args, unsigned NumArgs,
4248 LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch,
4249 const char *Name);
4250 LLVMValueRef LLVMBuildInvokeWithOperandBundles(
4251 LLVMBuilderRef, LLVMTypeRef Ty, LLVMValueRef Fn, LLVMValueRef *Args,
4252 unsigned NumArgs, LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch,
4253 LLVMOperandBundleRef *Bundles, unsigned NumBundles, const char *Name);
4254 LLVMValueRef LLVMBuildUnreachable(LLVMBuilderRef);
4255
4256
4257 LLVMValueRef LLVMBuildResume(LLVMBuilderRef B, LLVMValueRef Exn);
4258 LLVMValueRef LLVMBuildLandingPad(LLVMBuilderRef B, LLVMTypeRef Ty,
4259 LLVMValueRef PersFn, unsigned NumClauses,
4260 const char *Name);
4261 LLVMValueRef LLVMBuildCleanupRet(LLVMBuilderRef B, LLVMValueRef CatchPad,
4262 LLVMBasicBlockRef BB);
4263 LLVMValueRef LLVMBuildCatchRet(LLVMBuilderRef B, LLVMValueRef CatchPad,
4264 LLVMBasicBlockRef BB);
4265 LLVMValueRef LLVMBuildCatchPad(LLVMBuilderRef B, LLVMValueRef ParentPad,
4266 LLVMValueRef *Args, unsigned NumArgs,
4267 const char *Name);
4268 LLVMValueRef LLVMBuildCleanupPad(LLVMBuilderRef B, LLVMValueRef ParentPad,
4269 LLVMValueRef *Args, unsigned NumArgs,
4270 const char *Name);
4271 LLVMValueRef LLVMBuildCatchSwitch(LLVMBuilderRef B, LLVMValueRef ParentPad,
4272 LLVMBasicBlockRef UnwindBB,
4273 unsigned NumHandlers, const char *Name);
4274
4275
4276 void LLVMAddCase(LLVMValueRef Switch, LLVMValueRef OnVal,
4277 LLVMBasicBlockRef Dest);
4278
4279
4280 void LLVMAddDestination(LLVMValueRef IndirectBr, LLVMBasicBlockRef Dest);
4281
4282
4283 unsigned LLVMGetNumClauses(LLVMValueRef LandingPad);
4284
4285
4286 LLVMValueRef LLVMGetClause(LLVMValueRef LandingPad, unsigned Idx);
4287
4288
4289 void LLVMAddClause(LLVMValueRef LandingPad, LLVMValueRef ClauseVal);
4290
4291
4292 LLVMBool LLVMIsCleanup(LLVMValueRef LandingPad);
4293
4294
4295 void LLVMSetCleanup(LLVMValueRef LandingPad, LLVMBool Val);
4296
4297
4298 void LLVMAddHandler(LLVMValueRef CatchSwitch, LLVMBasicBlockRef Dest);
4299
4300
4301 unsigned LLVMGetNumHandlers(LLVMValueRef CatchSwitch);
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314 void LLVMGetHandlers(LLVMValueRef CatchSwitch, LLVMBasicBlockRef *Handlers);
4315
4316
4317
4318
4319 LLVMValueRef LLVMGetArgOperand(LLVMValueRef Funclet, unsigned i);
4320
4321
4322 void LLVMSetArgOperand(LLVMValueRef Funclet, unsigned i, LLVMValueRef value);
4323
4324
4325
4326
4327
4328
4329
4330
4331 LLVMValueRef LLVMGetParentCatchSwitch(LLVMValueRef CatchPad);
4332
4333
4334
4335
4336
4337
4338
4339
4340 void LLVMSetParentCatchSwitch(LLVMValueRef CatchPad, LLVMValueRef CatchSwitch);
4341
4342
4343 LLVMValueRef LLVMBuildAdd(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4344 const char *Name);
4345 LLVMValueRef LLVMBuildNSWAdd(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4346 const char *Name);
4347 LLVMValueRef LLVMBuildNUWAdd(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4348 const char *Name);
4349 LLVMValueRef LLVMBuildFAdd(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4350 const char *Name);
4351 LLVMValueRef LLVMBuildSub(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4352 const char *Name);
4353 LLVMValueRef LLVMBuildNSWSub(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4354 const char *Name);
4355 LLVMValueRef LLVMBuildNUWSub(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4356 const char *Name);
4357 LLVMValueRef LLVMBuildFSub(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4358 const char *Name);
4359 LLVMValueRef LLVMBuildMul(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4360 const char *Name);
4361 LLVMValueRef LLVMBuildNSWMul(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4362 const char *Name);
4363 LLVMValueRef LLVMBuildNUWMul(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4364 const char *Name);
4365 LLVMValueRef LLVMBuildFMul(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4366 const char *Name);
4367 LLVMValueRef LLVMBuildUDiv(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4368 const char *Name);
4369 LLVMValueRef LLVMBuildExactUDiv(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4370 const char *Name);
4371 LLVMValueRef LLVMBuildSDiv(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4372 const char *Name);
4373 LLVMValueRef LLVMBuildExactSDiv(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4374 const char *Name);
4375 LLVMValueRef LLVMBuildFDiv(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4376 const char *Name);
4377 LLVMValueRef LLVMBuildURem(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4378 const char *Name);
4379 LLVMValueRef LLVMBuildSRem(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4380 const char *Name);
4381 LLVMValueRef LLVMBuildFRem(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4382 const char *Name);
4383 LLVMValueRef LLVMBuildShl(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4384 const char *Name);
4385 LLVMValueRef LLVMBuildLShr(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4386 const char *Name);
4387 LLVMValueRef LLVMBuildAShr(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4388 const char *Name);
4389 LLVMValueRef LLVMBuildAnd(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4390 const char *Name);
4391 LLVMValueRef LLVMBuildOr(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4392 const char *Name);
4393 LLVMValueRef LLVMBuildXor(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
4394 const char *Name);
4395 LLVMValueRef LLVMBuildBinOp(LLVMBuilderRef B, LLVMOpcode Op,
4396 LLVMValueRef LHS, LLVMValueRef RHS,
4397 const char *Name);
4398 LLVMValueRef LLVMBuildNeg(LLVMBuilderRef, LLVMValueRef V, const char *Name);
4399 LLVMValueRef LLVMBuildNSWNeg(LLVMBuilderRef B, LLVMValueRef V,
4400 const char *Name);
4401 LLVM_ATTRIBUTE_C_DEPRECATED(LLVMValueRef LLVMBuildNUWNeg(LLVMBuilderRef B,
4402 LLVMValueRef V,
4403 const char *Name),
4404 "Use LLVMBuildNeg + LLVMSetNUW instead.");
4405 LLVMValueRef LLVMBuildFNeg(LLVMBuilderRef, LLVMValueRef V, const char *Name);
4406 LLVMValueRef LLVMBuildNot(LLVMBuilderRef, LLVMValueRef V, const char *Name);
4407
4408 LLVMBool LLVMGetNUW(LLVMValueRef ArithInst);
4409 void LLVMSetNUW(LLVMValueRef ArithInst, LLVMBool HasNUW);
4410 LLVMBool LLVMGetNSW(LLVMValueRef ArithInst);
4411 void LLVMSetNSW(LLVMValueRef ArithInst, LLVMBool HasNSW);
4412 LLVMBool LLVMGetExact(LLVMValueRef DivOrShrInst);
4413 void LLVMSetExact(LLVMValueRef DivOrShrInst, LLVMBool IsExact);
4414
4415
4416
4417
4418
4419 LLVMBool LLVMGetNNeg(LLVMValueRef NonNegInst);
4420
4421
4422
4423
4424 void LLVMSetNNeg(LLVMValueRef NonNegInst, LLVMBool IsNonNeg);
4425
4426
4427
4428
4429
4430
4431
4432
4433 LLVMFastMathFlags LLVMGetFastMathFlags(LLVMValueRef FPMathInst);
4434
4435
4436
4437
4438
4439
4440
4441
4442 void LLVMSetFastMathFlags(LLVMValueRef FPMathInst, LLVMFastMathFlags FMF);
4443
4444
4445
4446
4447
4448
4449
4450
4451 LLVMBool LLVMCanValueUseFastMathFlags(LLVMValueRef Inst);
4452
4453
4454
4455
4456
4457 LLVMBool LLVMGetIsDisjoint(LLVMValueRef Inst);
4458
4459
4460
4461
4462 void LLVMSetIsDisjoint(LLVMValueRef Inst, LLVMBool IsDisjoint);
4463
4464
4465 LLVMValueRef LLVMBuildMalloc(LLVMBuilderRef, LLVMTypeRef Ty, const char *Name);
4466 LLVMValueRef LLVMBuildArrayMalloc(LLVMBuilderRef, LLVMTypeRef Ty,
4467 LLVMValueRef Val, const char *Name);
4468
4469
4470
4471
4472
4473
4474
4475 LLVMValueRef LLVMBuildMemSet(LLVMBuilderRef B, LLVMValueRef Ptr,
4476 LLVMValueRef Val, LLVMValueRef Len,
4477 unsigned Align);
4478
4479
4480
4481
4482
4483 LLVMValueRef LLVMBuildMemCpy(LLVMBuilderRef B,
4484 LLVMValueRef Dst, unsigned DstAlign,
4485 LLVMValueRef Src, unsigned SrcAlign,
4486 LLVMValueRef Size);
4487
4488
4489
4490
4491
4492 LLVMValueRef LLVMBuildMemMove(LLVMBuilderRef B,
4493 LLVMValueRef Dst, unsigned DstAlign,
4494 LLVMValueRef Src, unsigned SrcAlign,
4495 LLVMValueRef Size);
4496
4497 LLVMValueRef LLVMBuildAlloca(LLVMBuilderRef, LLVMTypeRef Ty, const char *Name);
4498 LLVMValueRef LLVMBuildArrayAlloca(LLVMBuilderRef, LLVMTypeRef Ty,
4499 LLVMValueRef Val, const char *Name);
4500 LLVMValueRef LLVMBuildFree(LLVMBuilderRef, LLVMValueRef PointerVal);
4501 LLVMValueRef LLVMBuildLoad2(LLVMBuilderRef, LLVMTypeRef Ty,
4502 LLVMValueRef PointerVal, const char *Name);
4503 LLVMValueRef LLVMBuildStore(LLVMBuilderRef, LLVMValueRef Val, LLVMValueRef Ptr);
4504 LLVMValueRef LLVMBuildGEP2(LLVMBuilderRef B, LLVMTypeRef Ty,
4505 LLVMValueRef Pointer, LLVMValueRef *Indices,
4506 unsigned NumIndices, const char *Name);
4507 LLVMValueRef LLVMBuildInBoundsGEP2(LLVMBuilderRef B, LLVMTypeRef Ty,
4508 LLVMValueRef Pointer, LLVMValueRef *Indices,
4509 unsigned NumIndices, const char *Name);
4510
4511
4512
4513
4514
4515
4516 LLVMValueRef LLVMBuildGEPWithNoWrapFlags(LLVMBuilderRef B, LLVMTypeRef Ty,
4517 LLVMValueRef Pointer,
4518 LLVMValueRef *Indices,
4519 unsigned NumIndices, const char *Name,
4520 LLVMGEPNoWrapFlags NoWrapFlags);
4521 LLVMValueRef LLVMBuildStructGEP2(LLVMBuilderRef B, LLVMTypeRef Ty,
4522 LLVMValueRef Pointer, unsigned Idx,
4523 const char *Name);
4524 LLVMValueRef LLVMBuildGlobalString(LLVMBuilderRef B, const char *Str,
4525 const char *Name);
4526
4527
4528
4529 LLVMValueRef LLVMBuildGlobalStringPtr(LLVMBuilderRef B, const char *Str,
4530 const char *Name);
4531 LLVMBool LLVMGetVolatile(LLVMValueRef MemoryAccessInst);
4532 void LLVMSetVolatile(LLVMValueRef MemoryAccessInst, LLVMBool IsVolatile);
4533 LLVMBool LLVMGetWeak(LLVMValueRef CmpXchgInst);
4534 void LLVMSetWeak(LLVMValueRef CmpXchgInst, LLVMBool IsWeak);
4535 LLVMAtomicOrdering LLVMGetOrdering(LLVMValueRef MemoryAccessInst);
4536 void LLVMSetOrdering(LLVMValueRef MemoryAccessInst, LLVMAtomicOrdering Ordering);
4537 LLVMAtomicRMWBinOp LLVMGetAtomicRMWBinOp(LLVMValueRef AtomicRMWInst);
4538 void LLVMSetAtomicRMWBinOp(LLVMValueRef AtomicRMWInst, LLVMAtomicRMWBinOp BinOp);
4539
4540
4541 LLVMValueRef LLVMBuildTrunc(LLVMBuilderRef, LLVMValueRef Val,
4542 LLVMTypeRef DestTy, const char *Name);
4543 LLVMValueRef LLVMBuildZExt(LLVMBuilderRef, LLVMValueRef Val,
4544 LLVMTypeRef DestTy, const char *Name);
4545 LLVMValueRef LLVMBuildSExt(LLVMBuilderRef, LLVMValueRef Val,
4546 LLVMTypeRef DestTy, const char *Name);
4547 LLVMValueRef LLVMBuildFPToUI(LLVMBuilderRef, LLVMValueRef Val,
4548 LLVMTypeRef DestTy, const char *Name);
4549 LLVMValueRef LLVMBuildFPToSI(LLVMBuilderRef, LLVMValueRef Val,
4550 LLVMTypeRef DestTy, const char *Name);
4551 LLVMValueRef LLVMBuildUIToFP(LLVMBuilderRef, LLVMValueRef Val,
4552 LLVMTypeRef DestTy, const char *Name);
4553 LLVMValueRef LLVMBuildSIToFP(LLVMBuilderRef, LLVMValueRef Val,
4554 LLVMTypeRef DestTy, const char *Name);
4555 LLVMValueRef LLVMBuildFPTrunc(LLVMBuilderRef, LLVMValueRef Val,
4556 LLVMTypeRef DestTy, const char *Name);
4557 LLVMValueRef LLVMBuildFPExt(LLVMBuilderRef, LLVMValueRef Val,
4558 LLVMTypeRef DestTy, const char *Name);
4559 LLVMValueRef LLVMBuildPtrToInt(LLVMBuilderRef, LLVMValueRef Val,
4560 LLVMTypeRef DestTy, const char *Name);
4561 LLVMValueRef LLVMBuildIntToPtr(LLVMBuilderRef, LLVMValueRef Val,
4562 LLVMTypeRef DestTy, const char *Name);
4563 LLVMValueRef LLVMBuildBitCast(LLVMBuilderRef, LLVMValueRef Val,
4564 LLVMTypeRef DestTy, const char *Name);
4565 LLVMValueRef LLVMBuildAddrSpaceCast(LLVMBuilderRef, LLVMValueRef Val,
4566 LLVMTypeRef DestTy, const char *Name);
4567 LLVMValueRef LLVMBuildZExtOrBitCast(LLVMBuilderRef, LLVMValueRef Val,
4568 LLVMTypeRef DestTy, const char *Name);
4569 LLVMValueRef LLVMBuildSExtOrBitCast(LLVMBuilderRef, LLVMValueRef Val,
4570 LLVMTypeRef DestTy, const char *Name);
4571 LLVMValueRef LLVMBuildTruncOrBitCast(LLVMBuilderRef, LLVMValueRef Val,
4572 LLVMTypeRef DestTy, const char *Name);
4573 LLVMValueRef LLVMBuildCast(LLVMBuilderRef B, LLVMOpcode Op, LLVMValueRef Val,
4574 LLVMTypeRef DestTy, const char *Name);
4575 LLVMValueRef LLVMBuildPointerCast(LLVMBuilderRef, LLVMValueRef Val,
4576 LLVMTypeRef DestTy, const char *Name);
4577 LLVMValueRef LLVMBuildIntCast2(LLVMBuilderRef, LLVMValueRef Val,
4578 LLVMTypeRef DestTy, LLVMBool IsSigned,
4579 const char *Name);
4580 LLVMValueRef LLVMBuildFPCast(LLVMBuilderRef, LLVMValueRef Val,
4581 LLVMTypeRef DestTy, const char *Name);
4582
4583
4584 LLVMValueRef LLVMBuildIntCast(LLVMBuilderRef, LLVMValueRef Val,
4585 LLVMTypeRef DestTy, const char *Name);
4586
4587 LLVMOpcode LLVMGetCastOpcode(LLVMValueRef Src, LLVMBool SrcIsSigned,
4588 LLVMTypeRef DestTy, LLVMBool DestIsSigned);
4589
4590
4591 LLVMValueRef LLVMBuildICmp(LLVMBuilderRef, LLVMIntPredicate Op,
4592 LLVMValueRef LHS, LLVMValueRef RHS,
4593 const char *Name);
4594 LLVMValueRef LLVMBuildFCmp(LLVMBuilderRef, LLVMRealPredicate Op,
4595 LLVMValueRef LHS, LLVMValueRef RHS,
4596 const char *Name);
4597
4598
4599 LLVMValueRef LLVMBuildPhi(LLVMBuilderRef, LLVMTypeRef Ty, const char *Name);
4600 LLVMValueRef LLVMBuildCall2(LLVMBuilderRef, LLVMTypeRef, LLVMValueRef Fn,
4601 LLVMValueRef *Args, unsigned NumArgs,
4602 const char *Name);
4603 LLVMValueRef
4604 LLVMBuildCallWithOperandBundles(LLVMBuilderRef, LLVMTypeRef, LLVMValueRef Fn,
4605 LLVMValueRef *Args, unsigned NumArgs,
4606 LLVMOperandBundleRef *Bundles,
4607 unsigned NumBundles, const char *Name);
4608 LLVMValueRef LLVMBuildSelect(LLVMBuilderRef, LLVMValueRef If,
4609 LLVMValueRef Then, LLVMValueRef Else,
4610 const char *Name);
4611 LLVMValueRef LLVMBuildVAArg(LLVMBuilderRef, LLVMValueRef List, LLVMTypeRef Ty,
4612 const char *Name);
4613 LLVMValueRef LLVMBuildExtractElement(LLVMBuilderRef, LLVMValueRef VecVal,
4614 LLVMValueRef Index, const char *Name);
4615 LLVMValueRef LLVMBuildInsertElement(LLVMBuilderRef, LLVMValueRef VecVal,
4616 LLVMValueRef EltVal, LLVMValueRef Index,
4617 const char *Name);
4618 LLVMValueRef LLVMBuildShuffleVector(LLVMBuilderRef, LLVMValueRef V1,
4619 LLVMValueRef V2, LLVMValueRef Mask,
4620 const char *Name);
4621 LLVMValueRef LLVMBuildExtractValue(LLVMBuilderRef, LLVMValueRef AggVal,
4622 unsigned Index, const char *Name);
4623 LLVMValueRef LLVMBuildInsertValue(LLVMBuilderRef, LLVMValueRef AggVal,
4624 LLVMValueRef EltVal, unsigned Index,
4625 const char *Name);
4626 LLVMValueRef LLVMBuildFreeze(LLVMBuilderRef, LLVMValueRef Val,
4627 const char *Name);
4628
4629 LLVMValueRef LLVMBuildIsNull(LLVMBuilderRef, LLVMValueRef Val,
4630 const char *Name);
4631 LLVMValueRef LLVMBuildIsNotNull(LLVMBuilderRef, LLVMValueRef Val,
4632 const char *Name);
4633 LLVMValueRef LLVMBuildPtrDiff2(LLVMBuilderRef, LLVMTypeRef ElemTy,
4634 LLVMValueRef LHS, LLVMValueRef RHS,
4635 const char *Name);
4636 LLVMValueRef LLVMBuildFence(LLVMBuilderRef B, LLVMAtomicOrdering ordering,
4637 LLVMBool singleThread, const char *Name);
4638 LLVMValueRef LLVMBuildFenceSyncScope(LLVMBuilderRef B,
4639 LLVMAtomicOrdering ordering, unsigned SSID,
4640 const char *Name);
4641 LLVMValueRef LLVMBuildAtomicRMW(LLVMBuilderRef B, LLVMAtomicRMWBinOp op,
4642 LLVMValueRef PTR, LLVMValueRef Val,
4643 LLVMAtomicOrdering ordering,
4644 LLVMBool singleThread);
4645 LLVMValueRef LLVMBuildAtomicRMWSyncScope(LLVMBuilderRef B,
4646 LLVMAtomicRMWBinOp op,
4647 LLVMValueRef PTR, LLVMValueRef Val,
4648 LLVMAtomicOrdering ordering,
4649 unsigned SSID);
4650 LLVMValueRef LLVMBuildAtomicCmpXchg(LLVMBuilderRef B, LLVMValueRef Ptr,
4651 LLVMValueRef Cmp, LLVMValueRef New,
4652 LLVMAtomicOrdering SuccessOrdering,
4653 LLVMAtomicOrdering FailureOrdering,
4654 LLVMBool SingleThread);
4655 LLVMValueRef LLVMBuildAtomicCmpXchgSyncScope(LLVMBuilderRef B, LLVMValueRef Ptr,
4656 LLVMValueRef Cmp, LLVMValueRef New,
4657 LLVMAtomicOrdering SuccessOrdering,
4658 LLVMAtomicOrdering FailureOrdering,
4659 unsigned SSID);
4660
4661
4662
4663
4664 unsigned LLVMGetNumMaskElements(LLVMValueRef ShuffleVectorInst);
4665
4666
4667
4668
4669
4670 int LLVMGetUndefMaskElem(void);
4671
4672
4673
4674
4675
4676
4677
4678
4679 int LLVMGetMaskValue(LLVMValueRef ShuffleVectorInst, unsigned Elt);
4680
4681 LLVMBool LLVMIsAtomicSingleThread(LLVMValueRef AtomicInst);
4682 void LLVMSetAtomicSingleThread(LLVMValueRef AtomicInst, LLVMBool SingleThread);
4683
4684
4685
4686
4687
4688 LLVMBool LLVMIsAtomic(LLVMValueRef Inst);
4689
4690
4691
4692
4693 unsigned LLVMGetAtomicSyncScopeID(LLVMValueRef AtomicInst);
4694
4695
4696
4697
4698 void LLVMSetAtomicSyncScopeID(LLVMValueRef AtomicInst, unsigned SSID);
4699
4700 LLVMAtomicOrdering LLVMGetCmpXchgSuccessOrdering(LLVMValueRef CmpXchgInst);
4701 void LLVMSetCmpXchgSuccessOrdering(LLVMValueRef CmpXchgInst,
4702 LLVMAtomicOrdering Ordering);
4703 LLVMAtomicOrdering LLVMGetCmpXchgFailureOrdering(LLVMValueRef CmpXchgInst);
4704 void LLVMSetCmpXchgFailureOrdering(LLVMValueRef CmpXchgInst,
4705 LLVMAtomicOrdering Ordering);
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721 LLVMModuleProviderRef
4722 LLVMCreateModuleProviderForExistingModule(LLVMModuleRef M);
4723
4724
4725
4726
4727 void LLVMDisposeModuleProvider(LLVMModuleProviderRef M);
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739 LLVMBool LLVMCreateMemoryBufferWithContentsOfFile(const char *Path,
4740 LLVMMemoryBufferRef *OutMemBuf,
4741 char **OutMessage);
4742 LLVMBool LLVMCreateMemoryBufferWithSTDIN(LLVMMemoryBufferRef *OutMemBuf,
4743 char **OutMessage);
4744 LLVMMemoryBufferRef LLVMCreateMemoryBufferWithMemoryRange(const char *InputData,
4745 size_t InputDataLength,
4746 const char *BufferName,
4747 LLVMBool RequiresNullTerminator);
4748 LLVMMemoryBufferRef LLVMCreateMemoryBufferWithMemoryRangeCopy(const char *InputData,
4749 size_t InputDataLength,
4750 const char *BufferName);
4751 const char *LLVMGetBufferStart(LLVMMemoryBufferRef MemBuf);
4752 size_t LLVMGetBufferSize(LLVMMemoryBufferRef MemBuf);
4753 void LLVMDisposeMemoryBuffer(LLVMMemoryBufferRef MemBuf);
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769 LLVMPassManagerRef LLVMCreatePassManager(void);
4770
4771
4772
4773
4774
4775 LLVMPassManagerRef LLVMCreateFunctionPassManagerForModule(LLVMModuleRef M);
4776
4777
4778 LLVMPassManagerRef LLVMCreateFunctionPassManager(LLVMModuleProviderRef MP);
4779
4780
4781
4782
4783
4784 LLVMBool LLVMRunPassManager(LLVMPassManagerRef PM, LLVMModuleRef M);
4785
4786
4787
4788
4789 LLVMBool LLVMInitializeFunctionPassManager(LLVMPassManagerRef FPM);
4790
4791
4792
4793
4794
4795 LLVMBool LLVMRunFunctionPassManager(LLVMPassManagerRef FPM, LLVMValueRef F);
4796
4797
4798
4799
4800 LLVMBool LLVMFinalizeFunctionPassManager(LLVMPassManagerRef FPM);
4801
4802
4803
4804
4805 void LLVMDisposePassManager(LLVMPassManagerRef PM);
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822 LLVMBool LLVMStartMultithreaded(void);
4823
4824
4825
4826 void LLVMStopMultithreaded(void);
4827
4828
4829
4830 LLVMBool LLVMIsMultithreaded(void);
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844 LLVM_C_EXTERN_C_END
4845
4846 #endif