LLVM 22.0.0git
Core.h File Reference
#include "llvm-c/Deprecated.h"
#include "llvm-c/ErrorHandling.h"
#include "llvm-c/ExternC.h"
#include "llvm-c/Visibility.h"
#include "llvm-c/Types.h"

Go to the source code of this file.

Macros

#define LLVM_FOR_EACH_VALUE_SUBCLASS(macro)
#define LLVM_DECLARE_VALUE_CAST(name)
 Convert value instances between types.

Typedefs

typedef unsigned LLVMAttributeIndex
typedef unsigned LLVMFastMathFlags
 Flags to indicate what fast-math-style optimizations are allowed on operations.
typedef unsigned LLVMGEPNoWrapFlags
 Flags that constrain the allowed wrap semantics of a getelementptr instruction.
typedef void(* LLVMDiagnosticHandler) (LLVMDiagnosticInfoRef, void *)
typedef void(* LLVMYieldCallback) (LLVMContextRef, void *)

Enumerations

enum  LLVMOpcode {
  LLVMRet = 1 , LLVMBr = 2 , LLVMSwitch = 3 , LLVMIndirectBr = 4 ,
  LLVMInvoke = 5 , LLVMUnreachable = 7 , LLVMCallBr = 67 , LLVMFNeg = 66 ,
  LLVMAdd = 8 , LLVMFAdd = 9 , LLVMSub = 10 , LLVMFSub = 11 ,
  LLVMMul = 12 , LLVMFMul = 13 , LLVMUDiv = 14 , LLVMSDiv = 15 ,
  LLVMFDiv = 16 , LLVMURem = 17 , LLVMSRem = 18 , LLVMFRem = 19 ,
  LLVMShl = 20 , LLVMLShr = 21 , LLVMAShr = 22 , LLVMAnd = 23 ,
  LLVMOr = 24 , LLVMXor = 25 , LLVMAlloca = 26 , LLVMLoad = 27 ,
  LLVMStore = 28 , LLVMGetElementPtr = 29 , LLVMTrunc = 30 , LLVMZExt = 31 ,
  LLVMSExt = 32 , LLVMFPToUI = 33 , LLVMFPToSI = 34 , LLVMUIToFP = 35 ,
  LLVMSIToFP = 36 , LLVMFPTrunc = 37 , LLVMFPExt = 38 , LLVMPtrToInt = 39 ,
  LLVMPtrToAddr = 69 , LLVMIntToPtr = 40 , LLVMBitCast = 41 , LLVMAddrSpaceCast = 60 ,
  LLVMICmp = 42 , LLVMFCmp = 43 , LLVMPHI = 44 , LLVMCall = 45 ,
  LLVMSelect = 46 , LLVMUserOp1 = 47 , LLVMUserOp2 = 48 , LLVMVAArg = 49 ,
  LLVMExtractElement = 50 , LLVMInsertElement = 51 , LLVMShuffleVector = 52 , LLVMExtractValue = 53 ,
  LLVMInsertValue = 54 , LLVMFreeze = 68 , LLVMFence = 55 , LLVMAtomicCmpXchg = 56 ,
  LLVMAtomicRMW = 57 , LLVMResume = 58 , LLVMLandingPad = 59 , LLVMCleanupRet = 61 ,
  LLVMCatchRet = 62 , LLVMCatchPad = 63 , LLVMCleanupPad = 64 , LLVMCatchSwitch = 65
}
 External users depend on the following values being stable. More...
enum  LLVMTypeKind {
  LLVMVoidTypeKind = 0 , LLVMHalfTypeKind = 1 , LLVMFloatTypeKind = 2 , LLVMDoubleTypeKind = 3 ,
  LLVMX86_FP80TypeKind = 4 , LLVMFP128TypeKind = 5 , LLVMPPC_FP128TypeKind = 6 , LLVMLabelTypeKind = 7 ,
  LLVMIntegerTypeKind = 8 , LLVMFunctionTypeKind = 9 , LLVMStructTypeKind = 10 , LLVMArrayTypeKind = 11 ,
  LLVMPointerTypeKind = 12 , LLVMVectorTypeKind = 13 , LLVMMetadataTypeKind = 14 , LLVMTokenTypeKind = 16 ,
  LLVMScalableVectorTypeKind = 17 , LLVMBFloatTypeKind = 18 , LLVMX86_AMXTypeKind = 19 , LLVMTargetExtTypeKind = 20
}
enum  LLVMLinkage {
  LLVMExternalLinkage , LLVMAvailableExternallyLinkage , LLVMLinkOnceAnyLinkage , LLVMLinkOnceODRLinkage ,
  LLVMLinkOnceODRAutoHideLinkage , LLVMWeakAnyLinkage , LLVMWeakODRLinkage , LLVMAppendingLinkage ,
  LLVMInternalLinkage , LLVMPrivateLinkage , LLVMDLLImportLinkage , LLVMDLLExportLinkage ,
  LLVMExternalWeakLinkage , LLVMGhostLinkage , LLVMCommonLinkage , LLVMLinkerPrivateLinkage ,
  LLVMLinkerPrivateWeakLinkage
}
enum  LLVMVisibility { LLVMDefaultVisibility , LLVMHiddenVisibility , LLVMProtectedVisibility }
enum  LLVMUnnamedAddr { LLVMNoUnnamedAddr , LLVMLocalUnnamedAddr , LLVMGlobalUnnamedAddr }
enum  LLVMDLLStorageClass { LLVMDefaultStorageClass = 0 , LLVMDLLImportStorageClass = 1 , LLVMDLLExportStorageClass = 2 }
enum  LLVMCallConv {
  LLVMCCallConv = 0 , LLVMFastCallConv = 8 , LLVMColdCallConv = 9 , LLVMGHCCallConv = 10 ,
  LLVMHiPECallConv = 11 , LLVMAnyRegCallConv = 13 , LLVMPreserveMostCallConv = 14 , LLVMPreserveAllCallConv = 15 ,
  LLVMSwiftCallConv = 16 , LLVMCXXFASTTLSCallConv = 17 , LLVMX86StdcallCallConv = 64 , LLVMX86FastcallCallConv = 65 ,
  LLVMARMAPCSCallConv = 66 , LLVMARMAAPCSCallConv = 67 , LLVMARMAAPCSVFPCallConv = 68 , LLVMMSP430INTRCallConv = 69 ,
  LLVMX86ThisCallCallConv = 70 , LLVMPTXKernelCallConv = 71 , LLVMPTXDeviceCallConv = 72 , LLVMSPIRFUNCCallConv = 75 ,
  LLVMSPIRKERNELCallConv = 76 , LLVMIntelOCLBICallConv = 77 , LLVMX8664SysVCallConv = 78 , LLVMWin64CallConv = 79 ,
  LLVMX86VectorCallCallConv = 80 , LLVMHHVMCallConv = 81 , LLVMHHVMCCallConv = 82 , LLVMX86INTRCallConv = 83 ,
  LLVMAVRINTRCallConv = 84 , LLVMAVRSIGNALCallConv = 85 , LLVMAVRBUILTINCallConv = 86 , LLVMAMDGPUVSCallConv = 87 ,
  LLVMAMDGPUGSCallConv = 88 , LLVMAMDGPUPSCallConv = 89 , LLVMAMDGPUCSCallConv = 90 , LLVMAMDGPUKERNELCallConv = 91 ,
  LLVMX86RegCallCallConv = 92 , LLVMAMDGPUHSCallConv = 93 , LLVMMSP430BUILTINCallConv = 94 , LLVMAMDGPULSCallConv = 95 ,
  LLVMAMDGPUESCallConv = 96
}
enum  LLVMValueKind {
  LLVMArgumentValueKind , LLVMBasicBlockValueKind , LLVMMemoryUseValueKind , LLVMMemoryDefValueKind ,
  LLVMMemoryPhiValueKind , LLVMFunctionValueKind , LLVMGlobalAliasValueKind , LLVMGlobalIFuncValueKind ,
  LLVMGlobalVariableValueKind , LLVMBlockAddressValueKind , LLVMConstantExprValueKind , LLVMConstantArrayValueKind ,
  LLVMConstantStructValueKind , LLVMConstantVectorValueKind , LLVMUndefValueValueKind , LLVMConstantAggregateZeroValueKind ,
  LLVMConstantDataArrayValueKind , LLVMConstantDataVectorValueKind , LLVMConstantIntValueKind , LLVMConstantFPValueKind ,
  LLVMConstantPointerNullValueKind , LLVMConstantTokenNoneValueKind , LLVMMetadataAsValueValueKind , LLVMInlineAsmValueKind ,
  LLVMInstructionValueKind , LLVMPoisonValueValueKind , LLVMConstantTargetNoneValueKind , LLVMConstantPtrAuthValueKind
}
enum  LLVMIntPredicate {
  LLVMIntEQ = 32 , LLVMIntNE , LLVMIntUGT , LLVMIntUGE ,
  LLVMIntULT , LLVMIntULE , LLVMIntSGT , LLVMIntSGE ,
  LLVMIntSLT , LLVMIntSLE
}
enum  LLVMRealPredicate {
  LLVMRealPredicateFalse , LLVMRealOEQ , LLVMRealOGT , LLVMRealOGE ,
  LLVMRealOLT , LLVMRealOLE , LLVMRealONE , LLVMRealORD ,
  LLVMRealUNO , LLVMRealUEQ , LLVMRealUGT , LLVMRealUGE ,
  LLVMRealULT , LLVMRealULE , LLVMRealUNE , LLVMRealPredicateTrue
}
enum  LLVMThreadLocalMode {
  LLVMNotThreadLocal = 0 , LLVMGeneralDynamicTLSModel , LLVMLocalDynamicTLSModel , LLVMInitialExecTLSModel ,
  LLVMLocalExecTLSModel
}
enum  LLVMAtomicOrdering {
  LLVMAtomicOrderingNotAtomic = 0 , LLVMAtomicOrderingUnordered = 1 , LLVMAtomicOrderingMonotonic = 2 , LLVMAtomicOrderingAcquire = 4 ,
  LLVMAtomicOrderingRelease = 5 , LLVMAtomicOrderingAcquireRelease = 6 , LLVMAtomicOrderingSequentiallyConsistent = 7
}
enum  LLVMAtomicRMWBinOp {
  LLVMAtomicRMWBinOpXchg , LLVMAtomicRMWBinOpAdd , LLVMAtomicRMWBinOpSub , LLVMAtomicRMWBinOpAnd ,
  LLVMAtomicRMWBinOpNand , LLVMAtomicRMWBinOpOr , LLVMAtomicRMWBinOpXor , LLVMAtomicRMWBinOpMax ,
  LLVMAtomicRMWBinOpMin , LLVMAtomicRMWBinOpUMax , LLVMAtomicRMWBinOpUMin , LLVMAtomicRMWBinOpFAdd ,
  LLVMAtomicRMWBinOpFSub , LLVMAtomicRMWBinOpFMax , LLVMAtomicRMWBinOpFMin , LLVMAtomicRMWBinOpUIncWrap ,
  LLVMAtomicRMWBinOpUDecWrap , LLVMAtomicRMWBinOpUSubCond , LLVMAtomicRMWBinOpUSubSat , LLVMAtomicRMWBinOpFMaximum ,
  LLVMAtomicRMWBinOpFMinimum
}
enum  LLVMDiagnosticSeverity { LLVMDSError , LLVMDSWarning , LLVMDSRemark , LLVMDSNote }
enum  LLVMInlineAsmDialect { LLVMInlineAsmDialectATT , LLVMInlineAsmDialectIntel }
enum  LLVMModuleFlagBehavior {
  LLVMModuleFlagBehaviorError , LLVMModuleFlagBehaviorWarning , LLVMModuleFlagBehaviorRequire , LLVMModuleFlagBehaviorOverride ,
  LLVMModuleFlagBehaviorAppend , LLVMModuleFlagBehaviorAppendUnique
}
enum  { LLVMAttributeReturnIndex = 0U , LLVMAttributeFunctionIndex = -1 }
 Attribute index are either LLVMAttributeReturnIndex, LLVMAttributeFunctionIndex or a parameter number from 1 to N. More...
enum  LLVMTailCallKind { LLVMTailCallKindNone = 0 , LLVMTailCallKindTail = 1 , LLVMTailCallKindMustTail = 2 , LLVMTailCallKindNoTail = 3 }
 Tail call kind for LLVMSetTailCallKind and LLVMGetTailCallKind. More...
enum  {
  LLVMFastMathAllowReassoc = (1 << 0) , LLVMFastMathNoNaNs = (1 << 1) , LLVMFastMathNoInfs = (1 << 2) , LLVMFastMathNoSignedZeros = (1 << 3) ,
  LLVMFastMathAllowReciprocal = (1 << 4) , LLVMFastMathAllowContract = (1 << 5) , LLVMFastMathApproxFunc = (1 << 6) , LLVMFastMathNone = 0 ,
  LLVMFastMathAll
}
enum  { LLVMGEPFlagInBounds = (1 << 0) , LLVMGEPFlagNUSW = (1 << 1) , LLVMGEPFlagNUW = (1 << 2) }

Functions

LLVM_C_ABI void LLVMShutdown (void)
 Deallocate and destroy all ManagedStatic variables.
LLVM_C_ABI void LLVMGetVersion (unsigned *Major, unsigned *Minor, unsigned *Patch)
 Return the major, minor, and patch version of LLVM.
LLVM_C_ABI charLLVMCreateMessage (const char *Message)
LLVM_C_ABI void LLVMDisposeMessage (char *Message)
LLVM_C_ABI LLVMContextRef LLVMContextCreate (void)
 Create a new context.
LLVM_C_ABI LLVMContextRef LLVMGetGlobalContext (void)
 Obtain the global context instance.
LLVM_C_ABI void LLVMContextSetDiagnosticHandler (LLVMContextRef C, LLVMDiagnosticHandler Handler, void *DiagnosticContext)
 Set the diagnostic handler for this context.
LLVM_C_ABI LLVMDiagnosticHandler LLVMContextGetDiagnosticHandler (LLVMContextRef C)
 Get the diagnostic handler of this context.
LLVM_C_ABI void * LLVMContextGetDiagnosticContext (LLVMContextRef C)
 Get the diagnostic context of this context.
LLVM_C_ABI void LLVMContextSetYieldCallback (LLVMContextRef C, LLVMYieldCallback Callback, void *OpaqueHandle)
 Set the yield callback function for this context.
LLVM_C_ABI LLVMBool LLVMContextShouldDiscardValueNames (LLVMContextRef C)
 Retrieve whether the given context is set to discard all value names.
LLVM_C_ABI void LLVMContextSetDiscardValueNames (LLVMContextRef C, LLVMBool Discard)
 Set whether the given context discards all value names.
LLVM_C_ABI void LLVMContextDispose (LLVMContextRef C)
 Destroy a context instance.
LLVM_C_ABI charLLVMGetDiagInfoDescription (LLVMDiagnosticInfoRef DI)
 Return a string representation of the DiagnosticInfo.
LLVM_C_ABI LLVMDiagnosticSeverity LLVMGetDiagInfoSeverity (LLVMDiagnosticInfoRef DI)
 Return an enum LLVMDiagnosticSeverity.
LLVM_C_ABI unsigned LLVMGetMDKindIDInContext (LLVMContextRef C, const char *Name, unsigned SLen)
LLVM_C_ABI unsigned LLVMGetMDKindID (const char *Name, unsigned SLen)
LLVM_C_ABI unsigned LLVMGetSyncScopeID (LLVMContextRef C, const char *Name, size_t SLen)
 Maps a synchronization scope name to a ID unique within this context.
LLVM_C_ABI unsigned LLVMGetEnumAttributeKindForName (const char *Name, size_t SLen)
 Return an unique id given the name of a enum attribute, or 0 if no attribute by that name exists.
LLVM_C_ABI unsigned LLVMGetLastEnumAttributeKind (void)
LLVM_C_ABI LLVMAttributeRef LLVMCreateEnumAttribute (LLVMContextRef C, unsigned KindID, uint64_t Val)
 Create an enum attribute.
LLVM_C_ABI unsigned LLVMGetEnumAttributeKind (LLVMAttributeRef A)
 Get the unique id corresponding to the enum attribute passed as argument.
LLVM_C_ABI uint64_t LLVMGetEnumAttributeValue (LLVMAttributeRef A)
 Get the enum attribute's value.
LLVM_C_ABI LLVMAttributeRef LLVMCreateTypeAttribute (LLVMContextRef C, unsigned KindID, LLVMTypeRef type_ref)
 Create a type attribute.
LLVM_C_ABI LLVMTypeRef LLVMGetTypeAttributeValue (LLVMAttributeRef A)
 Get the type attribute's value.
LLVM_C_ABI LLVMAttributeRef LLVMCreateConstantRangeAttribute (LLVMContextRef C, unsigned KindID, unsigned NumBits, const uint64_t LowerWords[], const uint64_t UpperWords[])
 Create a ConstantRange attribute.
LLVM_C_ABI LLVMAttributeRef LLVMCreateStringAttribute (LLVMContextRef C, const char *K, unsigned KLength, const char *V, unsigned VLength)
 Create a string attribute.
LLVM_C_ABI const charLLVMGetStringAttributeKind (LLVMAttributeRef A, unsigned *Length)
 Get the string attribute's kind.
LLVM_C_ABI const charLLVMGetStringAttributeValue (LLVMAttributeRef A, unsigned *Length)
 Get the string attribute's value.
LLVM_C_ABI LLVMBool LLVMIsEnumAttribute (LLVMAttributeRef A)
 Check for the different types of attributes.
LLVM_C_ABI LLVMBool LLVMIsStringAttribute (LLVMAttributeRef A)
LLVM_C_ABI LLVMBool LLVMIsTypeAttribute (LLVMAttributeRef A)
LLVM_C_ABI LLVMTypeRef LLVMGetTypeByName2 (LLVMContextRef C, const char *Name)
 Obtain a Type from a context by its registered name.
LLVM_C_ABI LLVMModuleRef LLVMModuleCreateWithName (const char *ModuleID)
 Create a new, empty module in the global context.
LLVM_C_ABI LLVMModuleRef LLVMModuleCreateWithNameInContext (const char *ModuleID, LLVMContextRef C)
 Create a new, empty module in a specific context.
LLVM_C_ABI LLVMModuleRef LLVMCloneModule (LLVMModuleRef M)
 Return an exact copy of the specified module.
LLVM_C_ABI void LLVMDisposeModule (LLVMModuleRef M)
 Destroy a module instance.
LLVM_C_ABI LLVMBool LLVMIsNewDbgInfoFormat (LLVMModuleRef M)
 Soon to be deprecated.
LLVM_C_ABI void LLVMSetIsNewDbgInfoFormat (LLVMModuleRef M, LLVMBool UseNewFormat)
 Soon to be deprecated.
LLVM_C_ABI const charLLVMGetModuleIdentifier (LLVMModuleRef M, size_t *Len)
 Obtain the identifier of a module.
LLVM_C_ABI void LLVMSetModuleIdentifier (LLVMModuleRef M, const char *Ident, size_t Len)
 Set the identifier of a module to a string Ident with length Len.
LLVM_C_ABI const charLLVMGetSourceFileName (LLVMModuleRef M, size_t *Len)
 Obtain the module's original source file name.
LLVM_C_ABI void LLVMSetSourceFileName (LLVMModuleRef M, const char *Name, size_t Len)
 Set the original source file name of a module to a string Name with length Len.
LLVM_C_ABI const charLLVMGetDataLayoutStr (LLVMModuleRef M)
 Obtain the data layout for a module.
LLVM_C_ABI const charLLVMGetDataLayout (LLVMModuleRef M)
LLVM_C_ABI void LLVMSetDataLayout (LLVMModuleRef M, const char *DataLayoutStr)
 Set the data layout for a module.
LLVM_C_ABI const charLLVMGetTarget (LLVMModuleRef M)
 Obtain the target triple for a module.
LLVM_C_ABI void LLVMSetTarget (LLVMModuleRef M, const char *Triple)
 Set the target triple for a module.
LLVM_C_ABI LLVMModuleFlagEntryLLVMCopyModuleFlagsMetadata (LLVMModuleRef M, size_t *Len)
 Returns the module flags as an array of flag-key-value triples.
LLVM_C_ABI void LLVMDisposeModuleFlagsMetadata (LLVMModuleFlagEntry *Entries)
 Destroys module flags metadata entries.
LLVM_C_ABI LLVMModuleFlagBehavior LLVMModuleFlagEntriesGetFlagBehavior (LLVMModuleFlagEntry *Entries, unsigned Index)
 Returns the flag behavior for a module flag entry at a specific index.
LLVM_C_ABI const charLLVMModuleFlagEntriesGetKey (LLVMModuleFlagEntry *Entries, unsigned Index, size_t *Len)
 Returns the key for a module flag entry at a specific index.
LLVM_C_ABI LLVMMetadataRef LLVMModuleFlagEntriesGetMetadata (LLVMModuleFlagEntry *Entries, unsigned Index)
 Returns the metadata for a module flag entry at a specific index.
LLVM_C_ABI LLVMMetadataRef LLVMGetModuleFlag (LLVMModuleRef M, const char *Key, size_t KeyLen)
 Add a module-level flag to the module-level flags metadata if it doesn't already exist.
LLVM_C_ABI void LLVMAddModuleFlag (LLVMModuleRef M, LLVMModuleFlagBehavior Behavior, const char *Key, size_t KeyLen, LLVMMetadataRef Val)
 Add a module-level flag to the module-level flags metadata if it doesn't already exist.
LLVM_C_ABI void LLVMDumpModule (LLVMModuleRef M)
 Dump a representation of a module to stderr.
LLVM_C_ABI LLVMBool LLVMPrintModuleToFile (LLVMModuleRef M, const char *Filename, char **ErrorMessage)
 Print a representation of a module to a file.
LLVM_C_ABI charLLVMPrintModuleToString (LLVMModuleRef M)
 Return a string representation of the module.
LLVM_C_ABI const charLLVMGetModuleInlineAsm (LLVMModuleRef M, size_t *Len)
 Get inline assembly for a module.
LLVM_C_ABI void LLVMSetModuleInlineAsm2 (LLVMModuleRef M, const char *Asm, size_t Len)
 Set inline assembly for a module.
LLVM_C_ABI void LLVMAppendModuleInlineAsm (LLVMModuleRef M, const char *Asm, size_t Len)
 Append inline assembly to a module.
LLVM_C_ABI LLVMValueRef LLVMGetInlineAsm (LLVMTypeRef Ty, const char *AsmString, size_t AsmStringSize, const char *Constraints, size_t ConstraintsSize, LLVMBool HasSideEffects, LLVMBool IsAlignStack, LLVMInlineAsmDialect Dialect, LLVMBool CanThrow)
 Create the specified uniqued inline asm string.
LLVM_C_ABI const charLLVMGetInlineAsmAsmString (LLVMValueRef InlineAsmVal, size_t *Len)
 Get the template string used for an inline assembly snippet.
LLVM_C_ABI const charLLVMGetInlineAsmConstraintString (LLVMValueRef InlineAsmVal, size_t *Len)
 Get the raw constraint string for an inline assembly snippet.
LLVM_C_ABI LLVMInlineAsmDialect LLVMGetInlineAsmDialect (LLVMValueRef InlineAsmVal)
 Get the dialect used by the inline asm snippet.
LLVM_C_ABI LLVMTypeRef LLVMGetInlineAsmFunctionType (LLVMValueRef InlineAsmVal)
 Get the function type of the inline assembly snippet.
LLVM_C_ABI LLVMBool LLVMGetInlineAsmHasSideEffects (LLVMValueRef InlineAsmVal)
 Get if the inline asm snippet has side effects.
LLVM_C_ABI LLVMBool LLVMGetInlineAsmNeedsAlignedStack (LLVMValueRef InlineAsmVal)
 Get if the inline asm snippet needs an aligned stack.
LLVM_C_ABI LLVMBool LLVMGetInlineAsmCanUnwind (LLVMValueRef InlineAsmVal)
 Get if the inline asm snippet may unwind the stack.
LLVM_C_ABI LLVMContextRef LLVMGetModuleContext (LLVMModuleRef M)
 Obtain the context to which this module is associated.
LLVM_C_ABI LLVMTypeRef LLVMGetTypeByName (LLVMModuleRef M, const char *Name)
 Deprecated: Use LLVMGetTypeByName2 instead.
LLVM_C_ABI LLVMNamedMDNodeRef LLVMGetFirstNamedMetadata (LLVMModuleRef M)
 Obtain an iterator to the first NamedMDNode in a Module.
LLVM_C_ABI LLVMNamedMDNodeRef LLVMGetLastNamedMetadata (LLVMModuleRef M)
 Obtain an iterator to the last NamedMDNode in a Module.
LLVM_C_ABI LLVMNamedMDNodeRef LLVMGetNextNamedMetadata (LLVMNamedMDNodeRef NamedMDNode)
 Advance a NamedMDNode iterator to the next NamedMDNode.
LLVM_C_ABI LLVMNamedMDNodeRef LLVMGetPreviousNamedMetadata (LLVMNamedMDNodeRef NamedMDNode)
 Decrement a NamedMDNode iterator to the previous NamedMDNode.
LLVM_C_ABI LLVMNamedMDNodeRef LLVMGetNamedMetadata (LLVMModuleRef M, const char *Name, size_t NameLen)
 Retrieve a NamedMDNode with the given name, returning NULL if no such node exists.
LLVM_C_ABI LLVMNamedMDNodeRef LLVMGetOrInsertNamedMetadata (LLVMModuleRef M, const char *Name, size_t NameLen)
 Retrieve a NamedMDNode with the given name, creating a new node if no such node exists.
LLVM_C_ABI const charLLVMGetNamedMetadataName (LLVMNamedMDNodeRef NamedMD, size_t *NameLen)
 Retrieve the name of a NamedMDNode.
LLVM_C_ABI unsigned LLVMGetNamedMetadataNumOperands (LLVMModuleRef M, const char *Name)
 Obtain the number of operands for named metadata in a module.
LLVM_C_ABI void LLVMGetNamedMetadataOperands (LLVMModuleRef M, const char *Name, LLVMValueRef *Dest)
 Obtain the named metadata operands for a module.
LLVM_C_ABI void LLVMAddNamedMetadataOperand (LLVMModuleRef M, const char *Name, LLVMValueRef Val)
 Add an operand to named metadata.
LLVM_C_ABI const charLLVMGetDebugLocDirectory (LLVMValueRef Val, unsigned *Length)
 Return the directory of the debug location for this value, which must be an llvm::Instruction, llvm::GlobalVariable, or llvm::Function.
LLVM_C_ABI const charLLVMGetDebugLocFilename (LLVMValueRef Val, unsigned *Length)
 Return the filename of the debug location for this value, which must be an llvm::Instruction, llvm::GlobalVariable, or llvm::Function.
LLVM_C_ABI unsigned LLVMGetDebugLocLine (LLVMValueRef Val)
 Return the line number of the debug location for this value, which must be an llvm::Instruction, llvm::GlobalVariable, or llvm::Function.
LLVM_C_ABI unsigned LLVMGetDebugLocColumn (LLVMValueRef Val)
 Return the column number of the debug location for this value, which must be an llvm::Instruction.
LLVM_C_ABI LLVMValueRef LLVMAddFunction (LLVMModuleRef M, const char *Name, LLVMTypeRef FunctionTy)
 Add a function to a module under a specified name.
LLVM_C_ABI LLVMValueRef LLVMGetNamedFunction (LLVMModuleRef M, const char *Name)
 Obtain a Function value from a Module by its name.
LLVM_C_ABI LLVMValueRef LLVMGetNamedFunctionWithLength (LLVMModuleRef M, const char *Name, size_t Length)
 Obtain a Function value from a Module by its name.
LLVM_C_ABI LLVMValueRef LLVMGetFirstFunction (LLVMModuleRef M)
 Obtain an iterator to the first Function in a Module.
LLVM_C_ABI LLVMValueRef LLVMGetLastFunction (LLVMModuleRef M)
 Obtain an iterator to the last Function in a Module.
LLVM_C_ABI LLVMValueRef LLVMGetNextFunction (LLVMValueRef Fn)
 Advance a Function iterator to the next Function.
LLVM_C_ABI LLVMValueRef LLVMGetPreviousFunction (LLVMValueRef Fn)
 Decrement a Function iterator to the previous Function.
LLVM_C_ABI void LLVMSetModuleInlineAsm (LLVMModuleRef M, const char *Asm)
 Deprecated: Use LLVMSetModuleInlineAsm2 instead.
LLVM_C_ABI LLVMTypeKind LLVMGetTypeKind (LLVMTypeRef Ty)
 Obtain the enumerated type of a Type instance.
LLVM_C_ABI LLVMBool LLVMTypeIsSized (LLVMTypeRef Ty)
 Whether the type has a known size.
LLVM_C_ABI LLVMContextRef LLVMGetTypeContext (LLVMTypeRef Ty)
 Obtain the context to which this type instance is associated.
LLVM_C_ABI void LLVMDumpType (LLVMTypeRef Val)
 Dump a representation of a type to stderr.
LLVM_C_ABI charLLVMPrintTypeToString (LLVMTypeRef Val)
 Return a string representation of the type.
LLVM_C_ABI LLVMTypeRef LLVMInt1TypeInContext (LLVMContextRef C)
 Obtain an integer type from a context with specified bit width.
LLVM_C_ABI LLVMTypeRef LLVMInt8TypeInContext (LLVMContextRef C)
LLVM_C_ABI LLVMTypeRef LLVMInt16TypeInContext (LLVMContextRef C)
LLVM_C_ABI LLVMTypeRef LLVMInt32TypeInContext (LLVMContextRef C)
LLVM_C_ABI LLVMTypeRef LLVMInt64TypeInContext (LLVMContextRef C)
LLVM_C_ABI LLVMTypeRef LLVMInt128TypeInContext (LLVMContextRef C)
LLVM_C_ABI LLVMTypeRef LLVMIntTypeInContext (LLVMContextRef C, unsigned NumBits)
LLVM_C_ABI LLVMTypeRef LLVMInt1Type (void)
 Obtain an integer type from the global context with a specified bit width.
LLVM_C_ABI LLVMTypeRef LLVMInt8Type (void)
LLVM_C_ABI LLVMTypeRef LLVMInt16Type (void)
LLVM_C_ABI LLVMTypeRef LLVMInt32Type (void)
LLVM_C_ABI LLVMTypeRef LLVMInt64Type (void)
LLVM_C_ABI LLVMTypeRef LLVMInt128Type (void)
LLVM_C_ABI LLVMTypeRef LLVMIntType (unsigned NumBits)
LLVM_C_ABI unsigned LLVMGetIntTypeWidth (LLVMTypeRef IntegerTy)
LLVM_C_ABI LLVMTypeRef LLVMHalfTypeInContext (LLVMContextRef C)
 Obtain a 16-bit floating point type from a context.
LLVM_C_ABI LLVMTypeRef LLVMBFloatTypeInContext (LLVMContextRef C)
 Obtain a 16-bit brain floating point type from a context.
LLVM_C_ABI LLVMTypeRef LLVMFloatTypeInContext (LLVMContextRef C)
 Obtain a 32-bit floating point type from a context.
LLVM_C_ABI LLVMTypeRef LLVMDoubleTypeInContext (LLVMContextRef C)
 Obtain a 64-bit floating point type from a context.
LLVM_C_ABI LLVMTypeRef LLVMX86FP80TypeInContext (LLVMContextRef C)
 Obtain a 80-bit floating point type (X87) from a context.
LLVM_C_ABI LLVMTypeRef LLVMFP128TypeInContext (LLVMContextRef C)
 Obtain a 128-bit floating point type (112-bit mantissa) from a context.
LLVM_C_ABI LLVMTypeRef LLVMPPCFP128TypeInContext (LLVMContextRef C)
 Obtain a 128-bit floating point type (two 64-bits) from a context.
LLVM_C_ABI LLVMTypeRef LLVMHalfType (void)
 Obtain a floating point type from the global context.
LLVM_C_ABI LLVMTypeRef LLVMBFloatType (void)
LLVM_C_ABI LLVMTypeRef LLVMFloatType (void)
LLVM_C_ABI LLVMTypeRef LLVMDoubleType (void)
LLVM_C_ABI LLVMTypeRef LLVMX86FP80Type (void)
LLVM_C_ABI LLVMTypeRef LLVMFP128Type (void)
LLVM_C_ABI LLVMTypeRef LLVMPPCFP128Type (void)
LLVM_C_ABI LLVMTypeRef LLVMFunctionType (LLVMTypeRef ReturnType, LLVMTypeRef *ParamTypes, unsigned ParamCount, LLVMBool IsVarArg)
 Obtain a function type consisting of a specified signature.
LLVM_C_ABI LLVMBool LLVMIsFunctionVarArg (LLVMTypeRef FunctionTy)
 Returns whether a function type is variadic.
LLVM_C_ABI LLVMTypeRef LLVMGetReturnType (LLVMTypeRef FunctionTy)
 Obtain the Type this function Type returns.
LLVM_C_ABI unsigned LLVMCountParamTypes (LLVMTypeRef FunctionTy)
 Obtain the number of parameters this function accepts.
LLVM_C_ABI void LLVMGetParamTypes (LLVMTypeRef FunctionTy, LLVMTypeRef *Dest)
 Obtain the types of a function's parameters.
LLVM_C_ABI LLVMTypeRef LLVMStructTypeInContext (LLVMContextRef C, LLVMTypeRef *ElementTypes, unsigned ElementCount, LLVMBool Packed)
 Create a new structure type in a context.
LLVM_C_ABI LLVMTypeRef LLVMStructType (LLVMTypeRef *ElementTypes, unsigned ElementCount, LLVMBool Packed)
 Create a new structure type in the global context.
LLVM_C_ABI LLVMTypeRef LLVMStructCreateNamed (LLVMContextRef C, const char *Name)
 Create an empty structure in a context having a specified name.
LLVM_C_ABI const charLLVMGetStructName (LLVMTypeRef Ty)
 Obtain the name of a structure.
LLVM_C_ABI void LLVMStructSetBody (LLVMTypeRef StructTy, LLVMTypeRef *ElementTypes, unsigned ElementCount, LLVMBool Packed)
 Set the contents of a structure type.
LLVM_C_ABI unsigned LLVMCountStructElementTypes (LLVMTypeRef StructTy)
 Get the number of elements defined inside the structure.
LLVM_C_ABI void LLVMGetStructElementTypes (LLVMTypeRef StructTy, LLVMTypeRef *Dest)
 Get the elements within a structure.
LLVM_C_ABI LLVMTypeRef LLVMStructGetTypeAtIndex (LLVMTypeRef StructTy, unsigned i)
 Get the type of the element at a given index in the structure.
LLVM_C_ABI LLVMBool LLVMIsPackedStruct (LLVMTypeRef StructTy)
 Determine whether a structure is packed.
LLVM_C_ABI LLVMBool LLVMIsOpaqueStruct (LLVMTypeRef StructTy)
 Determine whether a structure is opaque.
LLVM_C_ABI LLVMBool LLVMIsLiteralStruct (LLVMTypeRef StructTy)
 Determine whether a structure is literal.
LLVM_C_ABI LLVMTypeRef LLVMGetElementType (LLVMTypeRef Ty)
 Obtain the element type of an array or vector type.
LLVM_C_ABI void LLVMGetSubtypes (LLVMTypeRef Tp, LLVMTypeRef *Arr)
 Returns type's subtypes.
LLVM_C_ABI unsigned LLVMGetNumContainedTypes (LLVMTypeRef Tp)
 Return the number of types in the derived type.
LLVM_C_ABI LLVMTypeRef LLVMArrayType (LLVMTypeRef ElementType, unsigned ElementCount)
 Create a fixed size array type that refers to a specific type.
LLVM_C_ABI LLVMTypeRef LLVMArrayType2 (LLVMTypeRef ElementType, uint64_t ElementCount)
 Create a fixed size array type that refers to a specific type.
LLVM_C_ABI unsigned LLVMGetArrayLength (LLVMTypeRef ArrayTy)
 Obtain the length of an array type.
LLVM_C_ABI uint64_t LLVMGetArrayLength2 (LLVMTypeRef ArrayTy)
 Obtain the length of an array type.
LLVM_C_ABI LLVMTypeRef LLVMPointerType (LLVMTypeRef ElementType, unsigned AddressSpace)
 Create a pointer type that points to a defined type.
LLVM_C_ABI LLVMBool LLVMPointerTypeIsOpaque (LLVMTypeRef Ty)
 Determine whether a pointer is opaque.
LLVM_C_ABI LLVMTypeRef LLVMPointerTypeInContext (LLVMContextRef C, unsigned AddressSpace)
 Create an opaque pointer type in a context.
LLVM_C_ABI unsigned LLVMGetPointerAddressSpace (LLVMTypeRef PointerTy)
 Obtain the address space of a pointer type.
LLVM_C_ABI LLVMTypeRef LLVMVectorType (LLVMTypeRef ElementType, unsigned ElementCount)
 Create a vector type that contains a defined type and has a specific number of elements.
LLVM_C_ABI LLVMTypeRef LLVMScalableVectorType (LLVMTypeRef ElementType, unsigned ElementCount)
 Create a vector type that contains a defined type and has a scalable number of elements.
LLVM_C_ABI unsigned LLVMGetVectorSize (LLVMTypeRef VectorTy)
 Obtain the (possibly scalable) number of elements in a vector type.
LLVM_C_ABI LLVMValueRef LLVMGetConstantPtrAuthPointer (LLVMValueRef PtrAuth)
 Get the pointer value for the associated ConstantPtrAuth constant.
LLVM_C_ABI LLVMValueRef LLVMGetConstantPtrAuthKey (LLVMValueRef PtrAuth)
 Get the key value for the associated ConstantPtrAuth constant.
LLVM_C_ABI LLVMValueRef LLVMGetConstantPtrAuthDiscriminator (LLVMValueRef PtrAuth)
 Get the discriminator value for the associated ConstantPtrAuth constant.
LLVM_C_ABI LLVMValueRef LLVMGetConstantPtrAuthAddrDiscriminator (LLVMValueRef PtrAuth)
 Get the address discriminator value for the associated ConstantPtrAuth constant.
LLVM_C_ABI LLVMTypeRef LLVMVoidTypeInContext (LLVMContextRef C)
 Create a void type in a context.
LLVM_C_ABI LLVMTypeRef LLVMLabelTypeInContext (LLVMContextRef C)
 Create a label type in a context.
LLVM_C_ABI LLVMTypeRef LLVMX86AMXTypeInContext (LLVMContextRef C)
 Create a X86 AMX type in a context.
LLVM_C_ABI LLVMTypeRef LLVMTokenTypeInContext (LLVMContextRef C)
 Create a token type in a context.
LLVM_C_ABI LLVMTypeRef LLVMMetadataTypeInContext (LLVMContextRef C)
 Create a metadata type in a context.
LLVM_C_ABI LLVMTypeRef LLVMVoidType (void)
 These are similar to the above functions except they operate on the global context.
LLVM_C_ABI LLVMTypeRef LLVMLabelType (void)
LLVM_C_ABI LLVMTypeRef LLVMX86AMXType (void)
LLVM_C_ABI LLVMTypeRef LLVMTargetExtTypeInContext (LLVMContextRef C, const char *Name, LLVMTypeRef *TypeParams, unsigned TypeParamCount, unsigned *IntParams, unsigned IntParamCount)
 Create a target extension type in LLVM context.
LLVM_C_ABI const charLLVMGetTargetExtTypeName (LLVMTypeRef TargetExtTy)
 Obtain the name for this target extension type.
LLVM_C_ABI unsigned LLVMGetTargetExtTypeNumTypeParams (LLVMTypeRef TargetExtTy)
 Obtain the number of type parameters for this target extension type.
LLVM_C_ABI LLVMTypeRef LLVMGetTargetExtTypeTypeParam (LLVMTypeRef TargetExtTy, unsigned Idx)
 Get the type parameter at the given index for the target extension type.
LLVM_C_ABI unsigned LLVMGetTargetExtTypeNumIntParams (LLVMTypeRef TargetExtTy)
 Obtain the number of int parameters for this target extension type.
LLVM_C_ABI unsigned LLVMGetTargetExtTypeIntParam (LLVMTypeRef TargetExtTy, unsigned Idx)
 Get the int parameter at the given index for the target extension type.
LLVM_C_ABI LLVMTypeRef LLVMTypeOf (LLVMValueRef Val)
 Obtain the type of a value.
LLVM_C_ABI LLVMValueKind LLVMGetValueKind (LLVMValueRef Val)
 Obtain the enumerated type of a Value instance.
LLVM_C_ABI const charLLVMGetValueName2 (LLVMValueRef Val, size_t *Length)
 Obtain the string name of a value.
LLVM_C_ABI void LLVMSetValueName2 (LLVMValueRef Val, const char *Name, size_t NameLen)
 Set the string name of a value.
LLVM_C_ABI void LLVMDumpValue (LLVMValueRef Val)
 Dump a representation of a value to stderr.
LLVM_C_ABI charLLVMPrintValueToString (LLVMValueRef Val)
 Return a string representation of the value.
LLVM_C_ABI LLVMContextRef LLVMGetValueContext (LLVMValueRef Val)
 Obtain the context to which this value is associated.
LLVM_C_ABI charLLVMPrintDbgRecordToString (LLVMDbgRecordRef Record)
 Return a string representation of the DbgRecord.
LLVM_C_ABI void LLVMReplaceAllUsesWith (LLVMValueRef OldVal, LLVMValueRef NewVal)
 Replace all uses of a value with another one.
LLVM_C_ABI LLVMBool LLVMIsConstant (LLVMValueRef Val)
 Determine whether the specified value instance is constant.
LLVM_C_ABI LLVMBool LLVMIsUndef (LLVMValueRef Val)
 Determine whether a value instance is undefined.
LLVM_C_ABI LLVMBool LLVMIsPoison (LLVMValueRef Val)
 Determine whether a value instance is poisonous.
LLVM_C_ABI LLVMValueRef LLVMIsAMDNode (LLVMValueRef Val)
LLVM_C_ABI LLVMValueRef LLVMIsAValueAsMetadata (LLVMValueRef Val)
LLVM_C_ABI LLVMValueRef LLVMIsAMDString (LLVMValueRef Val)
LLVM_C_ABI const charLLVMGetValueName (LLVMValueRef Val)
 Deprecated: Use LLVMGetValueName2 instead.
LLVM_C_ABI void LLVMSetValueName (LLVMValueRef Val, const char *Name)
 Deprecated: Use LLVMSetValueName2 instead.
LLVM_C_ABI LLVMUseRef LLVMGetFirstUse (LLVMValueRef Val)
 Obtain the first use of a value.
LLVM_C_ABI LLVMUseRef LLVMGetNextUse (LLVMUseRef U)
 Obtain the next use of a value.
LLVM_C_ABI LLVMValueRef LLVMGetUser (LLVMUseRef U)
 Obtain the user value for a user.
LLVM_C_ABI LLVMValueRef LLVMGetUsedValue (LLVMUseRef U)
 Obtain the value this use corresponds to.
LLVM_C_ABI LLVMValueRef LLVMGetOperand (LLVMValueRef Val, unsigned Index)
 Obtain an operand at a specific index in a llvm::User value.
LLVM_C_ABI LLVMUseRef LLVMGetOperandUse (LLVMValueRef Val, unsigned Index)
 Obtain the use of an operand at a specific index in a llvm::User value.
LLVM_C_ABI void LLVMSetOperand (LLVMValueRef User, unsigned Index, LLVMValueRef Val)
 Set an operand at a specific index in a llvm::User value.
LLVM_C_ABI int LLVMGetNumOperands (LLVMValueRef Val)
 Obtain the number of operands in a llvm::User value.
LLVM_C_ABI LLVMValueRef LLVMConstNull (LLVMTypeRef Ty)
 Obtain a constant value referring to the null instance of a type.
LLVM_C_ABI LLVMValueRef LLVMConstAllOnes (LLVMTypeRef Ty)
 Obtain a constant value referring to the instance of a type consisting of all ones.
LLVM_C_ABI LLVMValueRef LLVMGetUndef (LLVMTypeRef Ty)
 Obtain a constant value referring to an undefined value of a type.
LLVM_C_ABI LLVMValueRef LLVMGetPoison (LLVMTypeRef Ty)
 Obtain a constant value referring to a poison value of a type.
LLVM_C_ABI LLVMBool LLVMIsNull (LLVMValueRef Val)
 Determine whether a value instance is null.
LLVM_C_ABI LLVMValueRef LLVMConstPointerNull (LLVMTypeRef Ty)
 Obtain a constant that is a constant pointer pointing to NULL for a specified type.
LLVM_C_ABI LLVMValueRef LLVMConstInt (LLVMTypeRef IntTy, unsigned long long N, LLVMBool SignExtend)
 Obtain a constant value for an integer type.
LLVM_C_ABI LLVMValueRef LLVMConstIntOfArbitraryPrecision (LLVMTypeRef IntTy, unsigned NumWords, const uint64_t Words[])
 Obtain a constant value for an integer of arbitrary precision.
LLVM_C_ABI LLVMValueRef LLVMConstIntOfString (LLVMTypeRef IntTy, const char *Text, uint8_t Radix)
 Obtain a constant value for an integer parsed from a string.
LLVM_C_ABI LLVMValueRef LLVMConstIntOfStringAndSize (LLVMTypeRef IntTy, const char *Text, unsigned SLen, uint8_t Radix)
 Obtain a constant value for an integer parsed from a string with specified length.
LLVM_C_ABI LLVMValueRef LLVMConstReal (LLVMTypeRef RealTy, double N)
 Obtain a constant value referring to a double floating point value.
LLVM_C_ABI LLVMValueRef LLVMConstRealOfString (LLVMTypeRef RealTy, const char *Text)
 Obtain a constant for a floating point value parsed from a string.
LLVM_C_ABI LLVMValueRef LLVMConstRealOfStringAndSize (LLVMTypeRef RealTy, const char *Text, unsigned SLen)
 Obtain a constant for a floating point value parsed from a string.
LLVM_C_ABI unsigned long long LLVMConstIntGetZExtValue (LLVMValueRef ConstantVal)
 Obtain the zero extended value for an integer constant value.
LLVM_C_ABI long long LLVMConstIntGetSExtValue (LLVMValueRef ConstantVal)
 Obtain the sign extended value for an integer constant value.
LLVM_C_ABI double LLVMConstRealGetDouble (LLVMValueRef ConstantVal, LLVMBool *losesInfo)
 Obtain the double value for an floating point constant value.
LLVM_C_ABI LLVMValueRef LLVMConstStringInContext (LLVMContextRef C, const char *Str, unsigned Length, LLVMBool DontNullTerminate)
 Create a ConstantDataSequential and initialize it with a string.
LLVM_C_ABI LLVMValueRef LLVMConstStringInContext2 (LLVMContextRef C, const char *Str, size_t Length, LLVMBool DontNullTerminate)
 Create a ConstantDataSequential and initialize it with a string.
LLVM_C_ABI LLVMValueRef LLVMConstString (const char *Str, unsigned Length, LLVMBool DontNullTerminate)
 Create a ConstantDataSequential with string content in the global context.
LLVM_C_ABI LLVMBool LLVMIsConstantString (LLVMValueRef c)
 Returns true if the specified constant is an array of i8.
LLVM_C_ABI const charLLVMGetAsString (LLVMValueRef c, size_t *Length)
 Get the given constant data sequential as a string.
LLVM_C_ABI const charLLVMGetRawDataValues (LLVMValueRef c, size_t *SizeInBytes)
 Get the raw, underlying bytes of the given constant data sequential.
LLVM_C_ABI LLVMValueRef LLVMConstStructInContext (LLVMContextRef C, LLVMValueRef *ConstantVals, unsigned Count, LLVMBool Packed)
 Create an anonymous ConstantStruct with the specified values.
LLVM_C_ABI LLVMValueRef LLVMConstStruct (LLVMValueRef *ConstantVals, unsigned Count, LLVMBool Packed)
 Create a ConstantStruct in the global Context.
LLVM_C_ABI LLVMValueRef LLVMConstArray (LLVMTypeRef ElementTy, LLVMValueRef *ConstantVals, unsigned Length)
 Create a ConstantArray from values.
LLVM_C_ABI LLVMValueRef LLVMConstArray2 (LLVMTypeRef ElementTy, LLVMValueRef *ConstantVals, uint64_t Length)
 Create a ConstantArray from values.
LLVM_C_ABI LLVMValueRef LLVMConstDataArray (LLVMTypeRef ElementTy, const char *Data, size_t SizeInBytes)
 Create a ConstantDataArray from raw values.
LLVM_C_ABI LLVMValueRef LLVMConstNamedStruct (LLVMTypeRef StructTy, LLVMValueRef *ConstantVals, unsigned Count)
 Create a non-anonymous ConstantStruct from values.
LLVM_C_ABI LLVMValueRef LLVMGetAggregateElement (LLVMValueRef C, unsigned Idx)
 Get element of a constant aggregate (struct, array or vector) at the specified index.
LLVM_C_ABI LLVM_ATTRIBUTE_C_DEPRECATED (LLVMValueRef LLVMGetElementAsConstant(LLVMValueRef C, unsigned idx), "Use LLVMGetAggregateElement instead")
 Get an element at specified index as a constant.
LLVM_C_ABI LLVMValueRef LLVMConstVector (LLVMValueRef *ScalarConstantVals, unsigned Size)
 Create a ConstantVector from values.
LLVM_C_ABI LLVMValueRef LLVMConstantPtrAuth (LLVMValueRef Ptr, LLVMValueRef Key, LLVMValueRef Disc, LLVMValueRef AddrDisc)
 Create a ConstantPtrAuth constant with the given values.
LLVM_C_ABI LLVMOpcode LLVMGetConstOpcode (LLVMValueRef ConstantVal)
LLVM_C_ABI LLVMValueRef LLVMAlignOf (LLVMTypeRef Ty)
LLVM_C_ABI LLVMValueRef LLVMSizeOf (LLVMTypeRef Ty)
LLVM_C_ABI LLVMValueRef LLVMConstNeg (LLVMValueRef ConstantVal)
LLVM_C_ABI LLVMValueRef LLVMConstNSWNeg (LLVMValueRef ConstantVal)
LLVM_C_ABI LLVM_ATTRIBUTE_C_DEPRECATED (LLVMValueRef LLVMConstNUWNeg(LLVMValueRef ConstantVal), "Use LLVMConstNull instead.")
LLVM_C_ABI LLVMValueRef LLVMConstNot (LLVMValueRef ConstantVal)
LLVM_C_ABI LLVMValueRef LLVMConstAdd (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)
LLVM_C_ABI LLVMValueRef LLVMConstNSWAdd (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)
LLVM_C_ABI LLVMValueRef LLVMConstNUWAdd (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)
LLVM_C_ABI LLVMValueRef LLVMConstSub (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)
LLVM_C_ABI LLVMValueRef LLVMConstNSWSub (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)
LLVM_C_ABI LLVMValueRef LLVMConstNUWSub (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)
LLVM_C_ABI LLVMValueRef LLVMConstXor (LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)
LLVM_C_ABI LLVMValueRef LLVMConstGEP2 (LLVMTypeRef Ty, LLVMValueRef ConstantVal, LLVMValueRef *ConstantIndices, unsigned NumIndices)
LLVM_C_ABI LLVMValueRef LLVMConstInBoundsGEP2 (LLVMTypeRef Ty, LLVMValueRef ConstantVal, LLVMValueRef *ConstantIndices, unsigned NumIndices)
LLVM_C_ABI LLVMValueRef LLVMConstGEPWithNoWrapFlags (LLVMTypeRef Ty, LLVMValueRef ConstantVal, LLVMValueRef *ConstantIndices, unsigned NumIndices, LLVMGEPNoWrapFlags NoWrapFlags)
 Creates a constant GetElementPtr expression.
LLVM_C_ABI LLVMValueRef LLVMConstTrunc (LLVMValueRef ConstantVal, LLVMTypeRef ToType)
LLVM_C_ABI LLVMValueRef LLVMConstPtrToInt (LLVMValueRef ConstantVal, LLVMTypeRef ToType)
LLVM_C_ABI LLVMValueRef LLVMConstIntToPtr (LLVMValueRef ConstantVal, LLVMTypeRef ToType)
LLVM_C_ABI LLVMValueRef LLVMConstBitCast (LLVMValueRef ConstantVal, LLVMTypeRef ToType)
LLVM_C_ABI LLVMValueRef LLVMConstAddrSpaceCast (LLVMValueRef ConstantVal, LLVMTypeRef ToType)
LLVM_C_ABI LLVMValueRef LLVMConstTruncOrBitCast (LLVMValueRef ConstantVal, LLVMTypeRef ToType)
LLVM_C_ABI LLVMValueRef LLVMConstPointerCast (LLVMValueRef ConstantVal, LLVMTypeRef ToType)
LLVM_C_ABI LLVMValueRef LLVMConstExtractElement (LLVMValueRef VectorConstant, LLVMValueRef IndexConstant)
LLVM_C_ABI LLVMValueRef LLVMConstInsertElement (LLVMValueRef VectorConstant, LLVMValueRef ElementValueConstant, LLVMValueRef IndexConstant)
LLVM_C_ABI LLVMValueRef LLVMConstShuffleVector (LLVMValueRef VectorAConstant, LLVMValueRef VectorBConstant, LLVMValueRef MaskConstant)
LLVM_C_ABI LLVMValueRef LLVMBlockAddress (LLVMValueRef F, LLVMBasicBlockRef BB)
LLVM_C_ABI LLVMValueRef LLVMGetBlockAddressFunction (LLVMValueRef BlockAddr)
 Gets the function associated with a given BlockAddress constant value.
LLVM_C_ABI LLVMBasicBlockRef LLVMGetBlockAddressBasicBlock (LLVMValueRef BlockAddr)
 Gets the basic block associated with a given BlockAddress constant value.
LLVM_C_ABI LLVMValueRef LLVMConstInlineAsm (LLVMTypeRef Ty, const char *AsmString, const char *Constraints, LLVMBool HasSideEffects, LLVMBool IsAlignStack)
 Deprecated: Use LLVMGetInlineAsm instead.
LLVM_C_ABI LLVMModuleRef LLVMGetGlobalParent (LLVMValueRef Global)
LLVM_C_ABI LLVMBool LLVMIsDeclaration (LLVMValueRef Global)
LLVM_C_ABI LLVMLinkage LLVMGetLinkage (LLVMValueRef Global)
LLVM_C_ABI void LLVMSetLinkage (LLVMValueRef Global, LLVMLinkage Linkage)
LLVM_C_ABI const charLLVMGetSection (LLVMValueRef Global)
LLVM_C_ABI void LLVMSetSection (LLVMValueRef Global, const char *Section)
LLVM_C_ABI LLVMVisibility LLVMGetVisibility (LLVMValueRef Global)
LLVM_C_ABI void LLVMSetVisibility (LLVMValueRef Global, LLVMVisibility Viz)
LLVM_C_ABI LLVMDLLStorageClass LLVMGetDLLStorageClass (LLVMValueRef Global)
LLVM_C_ABI void LLVMSetDLLStorageClass (LLVMValueRef Global, LLVMDLLStorageClass Class)
LLVM_C_ABI LLVMUnnamedAddr LLVMGetUnnamedAddress (LLVMValueRef Global)
LLVM_C_ABI void LLVMSetUnnamedAddress (LLVMValueRef Global, LLVMUnnamedAddr UnnamedAddr)
LLVM_C_ABI LLVMTypeRef LLVMGlobalGetValueType (LLVMValueRef Global)
 Returns the "value type" of a global value.
LLVM_C_ABI LLVMBool LLVMHasUnnamedAddr (LLVMValueRef Global)
 Deprecated: Use LLVMGetUnnamedAddress instead.
LLVM_C_ABI void LLVMSetUnnamedAddr (LLVMValueRef Global, LLVMBool HasUnnamedAddr)
 Deprecated: Use LLVMSetUnnamedAddress instead.
LLVM_C_ABI unsigned LLVMGetAlignment (LLVMValueRef V)
 Obtain the preferred alignment of the value.
LLVM_C_ABI void LLVMSetAlignment (LLVMValueRef V, unsigned Bytes)
 Set the preferred alignment of the value.
LLVM_C_ABI void LLVMGlobalSetMetadata (LLVMValueRef Global, unsigned Kind, LLVMMetadataRef MD)
 Sets a metadata attachment, erasing the existing metadata attachment if it already exists for the given kind.
LLVM_C_ABI void LLVMGlobalAddMetadata (LLVMValueRef Global, unsigned Kind, LLVMMetadataRef MD)
 Adds a metadata attachment.
LLVM_C_ABI void LLVMGlobalEraseMetadata (LLVMValueRef Global, unsigned Kind)
 Erases a metadata attachment of the given kind if it exists.
LLVM_C_ABI void LLVMGlobalClearMetadata (LLVMValueRef Global)
 Removes all metadata attachments from this value.
LLVM_C_ABI void LLVMGlobalAddDebugInfo (LLVMValueRef Global, LLVMMetadataRef GVE)
 Add debuginfo metadata to this global.
LLVM_C_ABI LLVMValueMetadataEntryLLVMGlobalCopyAllMetadata (LLVMValueRef Value, size_t *NumEntries)
 Retrieves an array of metadata entries representing the metadata attached to this value.
LLVM_C_ABI void LLVMDisposeValueMetadataEntries (LLVMValueMetadataEntry *Entries)
 Destroys value metadata entries.
LLVM_C_ABI unsigned LLVMValueMetadataEntriesGetKind (LLVMValueMetadataEntry *Entries, unsigned Index)
 Returns the kind of a value metadata entry at a specific index.
LLVM_C_ABI LLVMMetadataRef LLVMValueMetadataEntriesGetMetadata (LLVMValueMetadataEntry *Entries, unsigned Index)
 Returns the underlying metadata node of a value metadata entry at a specific index.
LLVM_C_ABI LLVMValueRef LLVMAddGlobal (LLVMModuleRef M, LLVMTypeRef Ty, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMAddGlobalInAddressSpace (LLVMModuleRef M, LLVMTypeRef Ty, const char *Name, unsigned AddressSpace)
LLVM_C_ABI LLVMValueRef LLVMGetNamedGlobal (LLVMModuleRef M, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMGetNamedGlobalWithLength (LLVMModuleRef M, const char *Name, size_t Length)
LLVM_C_ABI LLVMValueRef LLVMGetFirstGlobal (LLVMModuleRef M)
LLVM_C_ABI LLVMValueRef LLVMGetLastGlobal (LLVMModuleRef M)
LLVM_C_ABI LLVMValueRef LLVMGetNextGlobal (LLVMValueRef GlobalVar)
LLVM_C_ABI LLVMValueRef LLVMGetPreviousGlobal (LLVMValueRef GlobalVar)
LLVM_C_ABI void LLVMDeleteGlobal (LLVMValueRef GlobalVar)
LLVM_C_ABI LLVMValueRef LLVMGetInitializer (LLVMValueRef GlobalVar)
LLVM_C_ABI void LLVMSetInitializer (LLVMValueRef GlobalVar, LLVMValueRef ConstantVal)
LLVM_C_ABI LLVMBool LLVMIsThreadLocal (LLVMValueRef GlobalVar)
LLVM_C_ABI void LLVMSetThreadLocal (LLVMValueRef GlobalVar, LLVMBool IsThreadLocal)
LLVM_C_ABI LLVMBool LLVMIsGlobalConstant (LLVMValueRef GlobalVar)
LLVM_C_ABI void LLVMSetGlobalConstant (LLVMValueRef GlobalVar, LLVMBool IsConstant)
LLVM_C_ABI LLVMThreadLocalMode LLVMGetThreadLocalMode (LLVMValueRef GlobalVar)
LLVM_C_ABI void LLVMSetThreadLocalMode (LLVMValueRef GlobalVar, LLVMThreadLocalMode Mode)
LLVM_C_ABI LLVMBool LLVMIsExternallyInitialized (LLVMValueRef GlobalVar)
LLVM_C_ABI void LLVMSetExternallyInitialized (LLVMValueRef GlobalVar, LLVMBool IsExtInit)
LLVM_C_ABI LLVMValueRef LLVMAddAlias2 (LLVMModuleRef M, LLVMTypeRef ValueTy, unsigned AddrSpace, LLVMValueRef Aliasee, const char *Name)
 Add a GlobalAlias with the given value type, address space and aliasee.
LLVM_C_ABI LLVMValueRef LLVMGetNamedGlobalAlias (LLVMModuleRef M, const char *Name, size_t NameLen)
 Obtain a GlobalAlias value from a Module by its name.
LLVM_C_ABI LLVMValueRef LLVMGetFirstGlobalAlias (LLVMModuleRef M)
 Obtain an iterator to the first GlobalAlias in a Module.
LLVM_C_ABI LLVMValueRef LLVMGetLastGlobalAlias (LLVMModuleRef M)
 Obtain an iterator to the last GlobalAlias in a Module.
LLVM_C_ABI LLVMValueRef LLVMGetNextGlobalAlias (LLVMValueRef GA)
 Advance a GlobalAlias iterator to the next GlobalAlias.
LLVM_C_ABI LLVMValueRef LLVMGetPreviousGlobalAlias (LLVMValueRef GA)
 Decrement a GlobalAlias iterator to the previous GlobalAlias.
LLVM_C_ABI LLVMValueRef LLVMAliasGetAliasee (LLVMValueRef Alias)
 Retrieve the target value of an alias.
LLVM_C_ABI void LLVMAliasSetAliasee (LLVMValueRef Alias, LLVMValueRef Aliasee)
 Set the target value of an alias.
LLVM_C_ABI void LLVMDeleteFunction (LLVMValueRef Fn)
 Remove a function from its containing module and deletes it.
LLVM_C_ABI LLVMBool LLVMHasPersonalityFn (LLVMValueRef Fn)
 Check whether the given function has a personality function.
LLVM_C_ABI LLVMValueRef LLVMGetPersonalityFn (LLVMValueRef Fn)
 Obtain the personality function attached to the function.
LLVM_C_ABI void LLVMSetPersonalityFn (LLVMValueRef Fn, LLVMValueRef PersonalityFn)
 Set the personality function attached to the function.
LLVM_C_ABI unsigned LLVMLookupIntrinsicID (const char *Name, size_t NameLen)
 Obtain the intrinsic ID number which matches the given function name.
LLVM_C_ABI unsigned LLVMGetIntrinsicID (LLVMValueRef Fn)
 Obtain the ID number from a function instance.
LLVM_C_ABI LLVMValueRef LLVMGetIntrinsicDeclaration (LLVMModuleRef Mod, unsigned ID, LLVMTypeRef *ParamTypes, size_t ParamCount)
 Get or insert the declaration of an intrinsic.
LLVM_C_ABI LLVMTypeRef LLVMIntrinsicGetType (LLVMContextRef Ctx, unsigned ID, LLVMTypeRef *ParamTypes, size_t ParamCount)
 Retrieves the type of an intrinsic.
LLVM_C_ABI const charLLVMIntrinsicGetName (unsigned ID, size_t *NameLength)
 Retrieves the name of an intrinsic.
LLVM_C_ABI charLLVMIntrinsicCopyOverloadedName (unsigned ID, LLVMTypeRef *ParamTypes, size_t ParamCount, size_t *NameLength)
 Deprecated: Use LLVMIntrinsicCopyOverloadedName2 instead.
LLVM_C_ABI charLLVMIntrinsicCopyOverloadedName2 (LLVMModuleRef Mod, unsigned ID, LLVMTypeRef *ParamTypes, size_t ParamCount, size_t *NameLength)
 Copies the name of an overloaded intrinsic identified by a given list of parameter types.
LLVM_C_ABI LLVMBool LLVMIntrinsicIsOverloaded (unsigned ID)
 Obtain if the intrinsic identified by the given ID is overloaded.
LLVM_C_ABI unsigned LLVMGetFunctionCallConv (LLVMValueRef Fn)
 Obtain the calling function of a function.
LLVM_C_ABI void LLVMSetFunctionCallConv (LLVMValueRef Fn, unsigned CC)
 Set the calling convention of a function.
LLVM_C_ABI const charLLVMGetGC (LLVMValueRef Fn)
 Obtain the name of the garbage collector to use during code generation.
LLVM_C_ABI void LLVMSetGC (LLVMValueRef Fn, const char *Name)
 Define the garbage collector to use during code generation.
LLVM_C_ABI LLVMValueRef LLVMGetPrefixData (LLVMValueRef Fn)
 Gets the prefix data associated with a function.
LLVM_C_ABI LLVMBool LLVMHasPrefixData (LLVMValueRef Fn)
 Check if a given function has prefix data.
LLVM_C_ABI void LLVMSetPrefixData (LLVMValueRef Fn, LLVMValueRef prefixData)
 Sets the prefix data for the function.
LLVM_C_ABI LLVMValueRef LLVMGetPrologueData (LLVMValueRef Fn)
 Gets the prologue data associated with a function.
LLVM_C_ABI LLVMBool LLVMHasPrologueData (LLVMValueRef Fn)
 Check if a given function has prologue data.
LLVM_C_ABI void LLVMSetPrologueData (LLVMValueRef Fn, LLVMValueRef prologueData)
 Sets the prologue data for the function.
LLVM_C_ABI void LLVMAddAttributeAtIndex (LLVMValueRef F, LLVMAttributeIndex Idx, LLVMAttributeRef A)
 Add an attribute to a function.
LLVM_C_ABI unsigned LLVMGetAttributeCountAtIndex (LLVMValueRef F, LLVMAttributeIndex Idx)
LLVM_C_ABI void LLVMGetAttributesAtIndex (LLVMValueRef F, LLVMAttributeIndex Idx, LLVMAttributeRef *Attrs)
LLVM_C_ABI LLVMAttributeRef LLVMGetEnumAttributeAtIndex (LLVMValueRef F, LLVMAttributeIndex Idx, unsigned KindID)
LLVM_C_ABI LLVMAttributeRef LLVMGetStringAttributeAtIndex (LLVMValueRef F, LLVMAttributeIndex Idx, const char *K, unsigned KLen)
LLVM_C_ABI void LLVMRemoveEnumAttributeAtIndex (LLVMValueRef F, LLVMAttributeIndex Idx, unsigned KindID)
LLVM_C_ABI void LLVMRemoveStringAttributeAtIndex (LLVMValueRef F, LLVMAttributeIndex Idx, const char *K, unsigned KLen)
LLVM_C_ABI void LLVMAddTargetDependentFunctionAttr (LLVMValueRef Fn, const char *A, const char *V)
 Add a target-dependent attribute to a function.
LLVM_C_ABI unsigned LLVMCountParams (LLVMValueRef Fn)
 Obtain the number of parameters in a function.
LLVM_C_ABI void LLVMGetParams (LLVMValueRef Fn, LLVMValueRef *Params)
 Obtain the parameters in a function.
LLVM_C_ABI LLVMValueRef LLVMGetParam (LLVMValueRef Fn, unsigned Index)
 Obtain the parameter at the specified index.
LLVM_C_ABI LLVMValueRef LLVMGetParamParent (LLVMValueRef Inst)
 Obtain the function to which this argument belongs.
LLVM_C_ABI LLVMValueRef LLVMGetFirstParam (LLVMValueRef Fn)
 Obtain the first parameter to a function.
LLVM_C_ABI LLVMValueRef LLVMGetLastParam (LLVMValueRef Fn)
 Obtain the last parameter to a function.
LLVM_C_ABI LLVMValueRef LLVMGetNextParam (LLVMValueRef Arg)
 Obtain the next parameter to a function.
LLVM_C_ABI LLVMValueRef LLVMGetPreviousParam (LLVMValueRef Arg)
 Obtain the previous parameter to a function.
LLVM_C_ABI void LLVMSetParamAlignment (LLVMValueRef Arg, unsigned Align)
 Set the alignment for a function parameter.
LLVM_C_ABI LLVMValueRef LLVMAddGlobalIFunc (LLVMModuleRef M, const char *Name, size_t NameLen, LLVMTypeRef Ty, unsigned AddrSpace, LLVMValueRef Resolver)
 Add a global indirect function to a module under a specified name.
LLVM_C_ABI LLVMValueRef LLVMGetNamedGlobalIFunc (LLVMModuleRef M, const char *Name, size_t NameLen)
 Obtain a GlobalIFunc value from a Module by its name.
LLVM_C_ABI LLVMValueRef LLVMGetFirstGlobalIFunc (LLVMModuleRef M)
 Obtain an iterator to the first GlobalIFunc in a Module.
LLVM_C_ABI LLVMValueRef LLVMGetLastGlobalIFunc (LLVMModuleRef M)
 Obtain an iterator to the last GlobalIFunc in a Module.
LLVM_C_ABI LLVMValueRef LLVMGetNextGlobalIFunc (LLVMValueRef IFunc)
 Advance a GlobalIFunc iterator to the next GlobalIFunc.
LLVM_C_ABI LLVMValueRef LLVMGetPreviousGlobalIFunc (LLVMValueRef IFunc)
 Decrement a GlobalIFunc iterator to the previous GlobalIFunc.
LLVM_C_ABI LLVMValueRef LLVMGetGlobalIFuncResolver (LLVMValueRef IFunc)
 Retrieves the resolver function associated with this indirect function, or NULL if it doesn't not exist.
LLVM_C_ABI void LLVMSetGlobalIFuncResolver (LLVMValueRef IFunc, LLVMValueRef Resolver)
 Sets the resolver function associated with this indirect function.
LLVM_C_ABI void LLVMEraseGlobalIFunc (LLVMValueRef IFunc)
 Remove a global indirect function from its parent module and delete it.
LLVM_C_ABI void LLVMRemoveGlobalIFunc (LLVMValueRef IFunc)
 Remove a global indirect function from its parent module.
LLVM_C_ABI LLVMMetadataRef LLVMMDStringInContext2 (LLVMContextRef C, const char *Str, size_t SLen)
 Create an MDString value from a given string value.
LLVM_C_ABI LLVMMetadataRef LLVMMDNodeInContext2 (LLVMContextRef C, LLVMMetadataRef *MDs, size_t Count)
 Create an MDNode value with the given array of operands.
LLVM_C_ABI LLVMValueRef LLVMMetadataAsValue (LLVMContextRef C, LLVMMetadataRef MD)
 Obtain a Metadata as a Value.
LLVM_C_ABI LLVMMetadataRef LLVMValueAsMetadata (LLVMValueRef Val)
 Obtain a Value as a Metadata.
LLVM_C_ABI const charLLVMGetMDString (LLVMValueRef V, unsigned *Length)
 Obtain the underlying string from a MDString value.
LLVM_C_ABI unsigned LLVMGetMDNodeNumOperands (LLVMValueRef V)
 Obtain the number of operands from an MDNode value.
LLVM_C_ABI void LLVMGetMDNodeOperands (LLVMValueRef V, LLVMValueRef *Dest)
 Obtain the given MDNode's operands.
LLVM_C_ABI void LLVMReplaceMDNodeOperandWith (LLVMValueRef V, unsigned Index, LLVMMetadataRef Replacement)
 Replace an operand at a specific index in a llvm::MDNode value.
LLVM_C_ABI LLVMValueRef LLVMMDStringInContext (LLVMContextRef C, const char *Str, unsigned SLen)
 Deprecated: Use LLVMMDStringInContext2 instead.
LLVM_C_ABI LLVMValueRef LLVMMDString (const char *Str, unsigned SLen)
 Deprecated: Use LLVMMDStringInContext2 instead.
LLVM_C_ABI LLVMValueRef LLVMMDNodeInContext (LLVMContextRef C, LLVMValueRef *Vals, unsigned Count)
 Deprecated: Use LLVMMDNodeInContext2 instead.
LLVM_C_ABI LLVMValueRef LLVMMDNode (LLVMValueRef *Vals, unsigned Count)
 Deprecated: Use LLVMMDNodeInContext2 instead.
LLVM_C_ABI LLVMOperandBundleRef LLVMCreateOperandBundle (const char *Tag, size_t TagLen, LLVMValueRef *Args, unsigned NumArgs)
 Create a new operand bundle.
LLVM_C_ABI void LLVMDisposeOperandBundle (LLVMOperandBundleRef Bundle)
 Destroy an operand bundle.
LLVM_C_ABI const charLLVMGetOperandBundleTag (LLVMOperandBundleRef Bundle, size_t *Len)
 Obtain the tag of an operand bundle as a string.
LLVM_C_ABI unsigned LLVMGetNumOperandBundleArgs (LLVMOperandBundleRef Bundle)
 Obtain the number of operands for an operand bundle.
LLVM_C_ABI LLVMValueRef LLVMGetOperandBundleArgAtIndex (LLVMOperandBundleRef Bundle, unsigned Index)
 Obtain the operand for an operand bundle at the given index.
LLVM_C_ABI LLVMValueRef LLVMBasicBlockAsValue (LLVMBasicBlockRef BB)
 Convert a basic block instance to a value type.
LLVM_C_ABI LLVMBool LLVMValueIsBasicBlock (LLVMValueRef Val)
 Determine whether an LLVMValueRef is itself a basic block.
LLVM_C_ABI LLVMBasicBlockRef LLVMValueAsBasicBlock (LLVMValueRef Val)
 Convert an LLVMValueRef to an LLVMBasicBlockRef instance.
LLVM_C_ABI const charLLVMGetBasicBlockName (LLVMBasicBlockRef BB)
 Obtain the string name of a basic block.
LLVM_C_ABI LLVMValueRef LLVMGetBasicBlockParent (LLVMBasicBlockRef BB)
 Obtain the function to which a basic block belongs.
LLVM_C_ABI LLVMValueRef LLVMGetBasicBlockTerminator (LLVMBasicBlockRef BB)
 Obtain the terminator instruction for a basic block.
LLVM_C_ABI unsigned LLVMCountBasicBlocks (LLVMValueRef Fn)
 Obtain the number of basic blocks in a function.
LLVM_C_ABI void LLVMGetBasicBlocks (LLVMValueRef Fn, LLVMBasicBlockRef *BasicBlocks)
 Obtain all of the basic blocks in a function.
LLVM_C_ABI LLVMBasicBlockRef LLVMGetFirstBasicBlock (LLVMValueRef Fn)
 Obtain the first basic block in a function.
LLVM_C_ABI LLVMBasicBlockRef LLVMGetLastBasicBlock (LLVMValueRef Fn)
 Obtain the last basic block in a function.
LLVM_C_ABI LLVMBasicBlockRef LLVMGetNextBasicBlock (LLVMBasicBlockRef BB)
 Advance a basic block iterator.
LLVM_C_ABI LLVMBasicBlockRef LLVMGetPreviousBasicBlock (LLVMBasicBlockRef BB)
 Go backwards in a basic block iterator.
LLVM_C_ABI LLVMBasicBlockRef LLVMGetEntryBasicBlock (LLVMValueRef Fn)
 Obtain the basic block that corresponds to the entry point of a function.
LLVM_C_ABI void LLVMInsertExistingBasicBlockAfterInsertBlock (LLVMBuilderRef Builder, LLVMBasicBlockRef BB)
 Insert the given basic block after the insertion point of the given builder.
LLVM_C_ABI void LLVMAppendExistingBasicBlock (LLVMValueRef Fn, LLVMBasicBlockRef BB)
 Append the given basic block to the basic block list of the given function.
LLVM_C_ABI LLVMBasicBlockRef LLVMCreateBasicBlockInContext (LLVMContextRef C, const char *Name)
 Create a new basic block without inserting it into a function.
LLVM_C_ABI LLVMBasicBlockRef LLVMAppendBasicBlockInContext (LLVMContextRef C, LLVMValueRef Fn, const char *Name)
 Append a basic block to the end of a function.
LLVM_C_ABI LLVMBasicBlockRef LLVMAppendBasicBlock (LLVMValueRef Fn, const char *Name)
 Append a basic block to the end of a function using the global context.
LLVM_C_ABI LLVMBasicBlockRef LLVMInsertBasicBlockInContext (LLVMContextRef C, LLVMBasicBlockRef BB, const char *Name)
 Insert a basic block in a function before another basic block.
LLVM_C_ABI LLVMBasicBlockRef LLVMInsertBasicBlock (LLVMBasicBlockRef InsertBeforeBB, const char *Name)
 Insert a basic block in a function using the global context.
LLVM_C_ABI void LLVMDeleteBasicBlock (LLVMBasicBlockRef BB)
 Remove a basic block from a function and delete it.
LLVM_C_ABI void LLVMRemoveBasicBlockFromParent (LLVMBasicBlockRef BB)
 Remove a basic block from a function.
LLVM_C_ABI void LLVMMoveBasicBlockBefore (LLVMBasicBlockRef BB, LLVMBasicBlockRef MovePos)
 Move a basic block to before another one.
LLVM_C_ABI void LLVMMoveBasicBlockAfter (LLVMBasicBlockRef BB, LLVMBasicBlockRef MovePos)
 Move a basic block to after another one.
LLVM_C_ABI LLVMValueRef LLVMGetFirstInstruction (LLVMBasicBlockRef BB)
 Obtain the first instruction in a basic block.
LLVM_C_ABI LLVMValueRef LLVMGetLastInstruction (LLVMBasicBlockRef BB)
 Obtain the last instruction in a basic block.
LLVM_C_ABI int LLVMHasMetadata (LLVMValueRef Val)
 Determine whether an instruction has any metadata attached.
LLVM_C_ABI LLVMValueRef LLVMGetMetadata (LLVMValueRef Val, unsigned KindID)
 Return metadata associated with an instruction value.
LLVM_C_ABI void LLVMSetMetadata (LLVMValueRef Val, unsigned KindID, LLVMValueRef Node)
 Set metadata associated with an instruction value.
LLVM_C_ABI LLVMValueMetadataEntryLLVMInstructionGetAllMetadataOtherThanDebugLoc (LLVMValueRef Instr, size_t *NumEntries)
 Returns the metadata associated with an instruction value, but filters out all the debug locations.
LLVM_C_ABI LLVMBasicBlockRef LLVMGetInstructionParent (LLVMValueRef Inst)
 Obtain the basic block to which an instruction belongs.
LLVM_C_ABI LLVMValueRef LLVMGetNextInstruction (LLVMValueRef Inst)
 Obtain the instruction that occurs after the one specified.
LLVM_C_ABI LLVMValueRef LLVMGetPreviousInstruction (LLVMValueRef Inst)
 Obtain the instruction that occurred before this one.
LLVM_C_ABI void LLVMInstructionRemoveFromParent (LLVMValueRef Inst)
 Remove an instruction.
LLVM_C_ABI void LLVMInstructionEraseFromParent (LLVMValueRef Inst)
 Remove and delete an instruction.
LLVM_C_ABI void LLVMDeleteInstruction (LLVMValueRef Inst)
 Delete an instruction.
LLVM_C_ABI LLVMOpcode LLVMGetInstructionOpcode (LLVMValueRef Inst)
 Obtain the code opcode for an individual instruction.
LLVM_C_ABI LLVMIntPredicate LLVMGetICmpPredicate (LLVMValueRef Inst)
 Obtain the predicate of an instruction.
LLVM_C_ABI LLVMBool LLVMGetICmpSameSign (LLVMValueRef Inst)
 Get whether or not an icmp instruction has the samesign flag.
LLVM_C_ABI void LLVMSetICmpSameSign (LLVMValueRef Inst, LLVMBool SameSign)
 Set the samesign flag on an icmp instruction.
LLVM_C_ABI LLVMRealPredicate LLVMGetFCmpPredicate (LLVMValueRef Inst)
 Obtain the float predicate of an instruction.
LLVM_C_ABI LLVMValueRef LLVMInstructionClone (LLVMValueRef Inst)
 Create a copy of 'this' instruction that is identical in all ways except the following:
LLVM_C_ABI LLVMValueRef LLVMIsATerminatorInst (LLVMValueRef Inst)
 Determine whether an instruction is a terminator.
LLVM_C_ABI LLVMDbgRecordRef LLVMGetFirstDbgRecord (LLVMValueRef Inst)
 Obtain the first debug record attached to an instruction.
LLVM_C_ABI LLVMDbgRecordRef LLVMGetLastDbgRecord (LLVMValueRef Inst)
 Obtain the last debug record attached to an instruction.
LLVM_C_ABI LLVMDbgRecordRef LLVMGetNextDbgRecord (LLVMDbgRecordRef DbgRecord)
 Obtain the next DbgRecord in the sequence or NULL if there are no more.
LLVM_C_ABI LLVMDbgRecordRef LLVMGetPreviousDbgRecord (LLVMDbgRecordRef DbgRecord)
 Obtain the previous DbgRecord in the sequence or NULL if there are no more.
LLVM_C_ABI unsigned LLVMGetNumArgOperands (LLVMValueRef Instr)
 Obtain the argument count for a call instruction.
LLVM_C_ABI void LLVMSetInstructionCallConv (LLVMValueRef Instr, unsigned CC)
 Set the calling convention for a call instruction.
LLVM_C_ABI unsigned LLVMGetInstructionCallConv (LLVMValueRef Instr)
 Obtain the calling convention for a call instruction.
LLVM_C_ABI void LLVMSetInstrParamAlignment (LLVMValueRef Instr, LLVMAttributeIndex Idx, unsigned Align)
LLVM_C_ABI void LLVMAddCallSiteAttribute (LLVMValueRef C, LLVMAttributeIndex Idx, LLVMAttributeRef A)
LLVM_C_ABI unsigned LLVMGetCallSiteAttributeCount (LLVMValueRef C, LLVMAttributeIndex Idx)
LLVM_C_ABI void LLVMGetCallSiteAttributes (LLVMValueRef C, LLVMAttributeIndex Idx, LLVMAttributeRef *Attrs)
LLVM_C_ABI LLVMAttributeRef LLVMGetCallSiteEnumAttribute (LLVMValueRef C, LLVMAttributeIndex Idx, unsigned KindID)
LLVM_C_ABI LLVMAttributeRef LLVMGetCallSiteStringAttribute (LLVMValueRef C, LLVMAttributeIndex Idx, const char *K, unsigned KLen)
LLVM_C_ABI void LLVMRemoveCallSiteEnumAttribute (LLVMValueRef C, LLVMAttributeIndex Idx, unsigned KindID)
LLVM_C_ABI void LLVMRemoveCallSiteStringAttribute (LLVMValueRef C, LLVMAttributeIndex Idx, const char *K, unsigned KLen)
LLVM_C_ABI LLVMTypeRef LLVMGetCalledFunctionType (LLVMValueRef C)
 Obtain the function type called by this instruction.
LLVM_C_ABI LLVMValueRef LLVMGetCalledValue (LLVMValueRef Instr)
 Obtain the pointer to the function invoked by this instruction.
LLVM_C_ABI unsigned LLVMGetNumOperandBundles (LLVMValueRef C)
 Obtain the number of operand bundles attached to this instruction.
LLVM_C_ABI LLVMOperandBundleRef LLVMGetOperandBundleAtIndex (LLVMValueRef C, unsigned Index)
 Obtain the operand bundle attached to this instruction at the given index.
LLVM_C_ABI LLVMBool LLVMIsTailCall (LLVMValueRef CallInst)
 Obtain whether a call instruction is a tail call.
LLVM_C_ABI void LLVMSetTailCall (LLVMValueRef CallInst, LLVMBool IsTailCall)
 Set whether a call instruction is a tail call.
LLVM_C_ABI LLVMTailCallKind LLVMGetTailCallKind (LLVMValueRef CallInst)
 Obtain a tail call kind of the call instruction.
LLVM_C_ABI void LLVMSetTailCallKind (LLVMValueRef CallInst, LLVMTailCallKind kind)
 Set the call kind of the call instruction.
LLVM_C_ABI LLVMBasicBlockRef LLVMGetNormalDest (LLVMValueRef InvokeInst)
 Return the normal destination basic block.
LLVM_C_ABI LLVMBasicBlockRef LLVMGetUnwindDest (LLVMValueRef InvokeInst)
 Return the unwind destination basic block.
LLVM_C_ABI void LLVMSetNormalDest (LLVMValueRef InvokeInst, LLVMBasicBlockRef B)
 Set the normal destination basic block.
LLVM_C_ABI void LLVMSetUnwindDest (LLVMValueRef InvokeInst, LLVMBasicBlockRef B)
 Set the unwind destination basic block.
LLVM_C_ABI LLVMBasicBlockRef LLVMGetCallBrDefaultDest (LLVMValueRef CallBr)
 Get the default destination of a CallBr instruction.
LLVM_C_ABI unsigned LLVMGetCallBrNumIndirectDests (LLVMValueRef CallBr)
 Get the number of indirect destinations of a CallBr instruction.
LLVM_C_ABI LLVMBasicBlockRef LLVMGetCallBrIndirectDest (LLVMValueRef CallBr, unsigned Idx)
 Get the indirect destination of a CallBr instruction at the given index.
LLVM_C_ABI unsigned LLVMGetNumSuccessors (LLVMValueRef Term)
 Return the number of successors that this terminator has.
LLVM_C_ABI LLVMBasicBlockRef LLVMGetSuccessor (LLVMValueRef Term, unsigned i)
 Return the specified successor.
LLVM_C_ABI void LLVMSetSuccessor (LLVMValueRef Term, unsigned i, LLVMBasicBlockRef block)
 Update the specified successor to point at the provided block.
LLVM_C_ABI LLVMBool LLVMIsConditional (LLVMValueRef Branch)
 Return if a branch is conditional.
LLVM_C_ABI LLVMValueRef LLVMGetCondition (LLVMValueRef Branch)
 Return the condition of a branch instruction.
LLVM_C_ABI void LLVMSetCondition (LLVMValueRef Branch, LLVMValueRef Cond)
 Set the condition of a branch instruction.
LLVM_C_ABI LLVMBasicBlockRef LLVMGetSwitchDefaultDest (LLVMValueRef SwitchInstr)
 Obtain the default destination basic block of a switch instruction.
LLVM_C_ABI LLVMTypeRef LLVMGetAllocatedType (LLVMValueRef Alloca)
 Obtain the type that is being allocated by the alloca instruction.
LLVM_C_ABI LLVMBool LLVMIsInBounds (LLVMValueRef GEP)
 Check whether the given GEP operator is inbounds.
LLVM_C_ABI void LLVMSetIsInBounds (LLVMValueRef GEP, LLVMBool InBounds)
 Set the given GEP instruction to be inbounds or not.
LLVM_C_ABI LLVMTypeRef LLVMGetGEPSourceElementType (LLVMValueRef GEP)
 Get the source element type of the given GEP operator.
LLVM_C_ABI LLVMGEPNoWrapFlags LLVMGEPGetNoWrapFlags (LLVMValueRef GEP)
 Get the no-wrap related flags for the given GEP instruction.
LLVM_C_ABI void LLVMGEPSetNoWrapFlags (LLVMValueRef GEP, LLVMGEPNoWrapFlags NoWrapFlags)
 Set the no-wrap related flags for the given GEP instruction.
LLVM_C_ABI void LLVMAddIncoming (LLVMValueRef PhiNode, LLVMValueRef *IncomingValues, LLVMBasicBlockRef *IncomingBlocks, unsigned Count)
 Add an incoming value to the end of a PHI list.
LLVM_C_ABI unsigned LLVMCountIncoming (LLVMValueRef PhiNode)
 Obtain the number of incoming basic blocks to a PHI node.
LLVM_C_ABI LLVMValueRef LLVMGetIncomingValue (LLVMValueRef PhiNode, unsigned Index)
 Obtain an incoming value to a PHI node as an LLVMValueRef.
LLVM_C_ABI LLVMBasicBlockRef LLVMGetIncomingBlock (LLVMValueRef PhiNode, unsigned Index)
 Obtain an incoming value to a PHI node as an LLVMBasicBlockRef.
LLVM_C_ABI unsigned LLVMGetNumIndices (LLVMValueRef Inst)
 Obtain the number of indices.
LLVM_C_ABI const unsignedLLVMGetIndices (LLVMValueRef Inst)
 Obtain the indices as an array.
LLVM_C_ABI LLVMBuilderRef LLVMCreateBuilderInContext (LLVMContextRef C)
LLVM_C_ABI LLVMBuilderRef LLVMCreateBuilder (void)
LLVM_C_ABI void LLVMPositionBuilder (LLVMBuilderRef Builder, LLVMBasicBlockRef Block, LLVMValueRef Instr)
 Set the builder position before Instr but after any attached debug records, or if Instr is null set the position to the end of Block.
LLVM_C_ABI void LLVMPositionBuilderBeforeDbgRecords (LLVMBuilderRef Builder, LLVMBasicBlockRef Block, LLVMValueRef Inst)
 Set the builder position before Instr and any attached debug records, or if Instr is null set the position to the end of Block.
LLVM_C_ABI void LLVMPositionBuilderBefore (LLVMBuilderRef Builder, LLVMValueRef Instr)
 Set the builder position before Instr but after any attached debug records.
LLVM_C_ABI void LLVMPositionBuilderBeforeInstrAndDbgRecords (LLVMBuilderRef Builder, LLVMValueRef Instr)
 Set the builder position before Instr and any attached debug records.
LLVM_C_ABI void LLVMPositionBuilderAtEnd (LLVMBuilderRef Builder, LLVMBasicBlockRef Block)
LLVM_C_ABI LLVMBasicBlockRef LLVMGetInsertBlock (LLVMBuilderRef Builder)
LLVM_C_ABI void LLVMClearInsertionPosition (LLVMBuilderRef Builder)
LLVM_C_ABI void LLVMInsertIntoBuilder (LLVMBuilderRef Builder, LLVMValueRef Instr)
LLVM_C_ABI void LLVMInsertIntoBuilderWithName (LLVMBuilderRef Builder, LLVMValueRef Instr, const char *Name)
LLVM_C_ABI void LLVMDisposeBuilder (LLVMBuilderRef Builder)
LLVM_C_ABI LLVMMetadataRef LLVMGetCurrentDebugLocation2 (LLVMBuilderRef Builder)
 Get location information used by debugging information.
LLVM_C_ABI void LLVMSetCurrentDebugLocation2 (LLVMBuilderRef Builder, LLVMMetadataRef Loc)
 Set location information used by debugging information.
LLVM_C_ABI void LLVMSetInstDebugLocation (LLVMBuilderRef Builder, LLVMValueRef Inst)
 Attempts to set the debug location for the given instruction using the current debug location for the given builder.
LLVM_C_ABI void LLVMAddMetadataToInst (LLVMBuilderRef Builder, LLVMValueRef Inst)
 Adds the metadata registered with the given builder to the given instruction.
LLVM_C_ABI LLVMMetadataRef LLVMBuilderGetDefaultFPMathTag (LLVMBuilderRef Builder)
 Get the dafult floating-point math metadata for a given builder.
LLVM_C_ABI void LLVMBuilderSetDefaultFPMathTag (LLVMBuilderRef Builder, LLVMMetadataRef FPMathTag)
 Set the default floating-point math metadata for the given builder.
LLVM_C_ABI LLVMContextRef LLVMGetBuilderContext (LLVMBuilderRef Builder)
 Obtain the context to which this builder is associated.
LLVM_C_ABI void LLVMSetCurrentDebugLocation (LLVMBuilderRef Builder, LLVMValueRef L)
 Deprecated: Passing the NULL location will crash.
LLVM_C_ABI LLVMValueRef LLVMGetCurrentDebugLocation (LLVMBuilderRef Builder)
 Deprecated: Returning the NULL location will crash.
LLVM_C_ABI LLVMValueRef LLVMBuildRetVoid (LLVMBuilderRef)
LLVM_C_ABI LLVMValueRef LLVMBuildRet (LLVMBuilderRef, LLVMValueRef V)
LLVM_C_ABI LLVMValueRef LLVMBuildAggregateRet (LLVMBuilderRef, LLVMValueRef *RetVals, unsigned N)
LLVM_C_ABI LLVMValueRef LLVMBuildBr (LLVMBuilderRef, LLVMBasicBlockRef Dest)
LLVM_C_ABI LLVMValueRef LLVMBuildCondBr (LLVMBuilderRef, LLVMValueRef If, LLVMBasicBlockRef Then, LLVMBasicBlockRef Else)
LLVM_C_ABI LLVMValueRef LLVMBuildSwitch (LLVMBuilderRef, LLVMValueRef V, LLVMBasicBlockRef Else, unsigned NumCases)
LLVM_C_ABI LLVMValueRef LLVMBuildIndirectBr (LLVMBuilderRef B, LLVMValueRef Addr, unsigned NumDests)
LLVM_C_ABI LLVMValueRef LLVMBuildCallBr (LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Fn, LLVMBasicBlockRef DefaultDest, LLVMBasicBlockRef *IndirectDests, unsigned NumIndirectDests, LLVMValueRef *Args, unsigned NumArgs, LLVMOperandBundleRef *Bundles, unsigned NumBundles, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildInvoke2 (LLVMBuilderRef, LLVMTypeRef Ty, LLVMValueRef Fn, LLVMValueRef *Args, unsigned NumArgs, LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildInvokeWithOperandBundles (LLVMBuilderRef, LLVMTypeRef Ty, LLVMValueRef Fn, LLVMValueRef *Args, unsigned NumArgs, LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch, LLVMOperandBundleRef *Bundles, unsigned NumBundles, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildUnreachable (LLVMBuilderRef)
LLVM_C_ABI LLVMValueRef LLVMBuildResume (LLVMBuilderRef B, LLVMValueRef Exn)
LLVM_C_ABI LLVMValueRef LLVMBuildLandingPad (LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef PersFn, unsigned NumClauses, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildCleanupRet (LLVMBuilderRef B, LLVMValueRef CatchPad, LLVMBasicBlockRef BB)
LLVM_C_ABI LLVMValueRef LLVMBuildCatchRet (LLVMBuilderRef B, LLVMValueRef CatchPad, LLVMBasicBlockRef BB)
LLVM_C_ABI LLVMValueRef LLVMBuildCatchPad (LLVMBuilderRef B, LLVMValueRef ParentPad, LLVMValueRef *Args, unsigned NumArgs, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildCleanupPad (LLVMBuilderRef B, LLVMValueRef ParentPad, LLVMValueRef *Args, unsigned NumArgs, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildCatchSwitch (LLVMBuilderRef B, LLVMValueRef ParentPad, LLVMBasicBlockRef UnwindBB, unsigned NumHandlers, const char *Name)
LLVM_C_ABI void LLVMAddCase (LLVMValueRef Switch, LLVMValueRef OnVal, LLVMBasicBlockRef Dest)
LLVM_C_ABI void LLVMAddDestination (LLVMValueRef IndirectBr, LLVMBasicBlockRef Dest)
LLVM_C_ABI unsigned LLVMGetNumClauses (LLVMValueRef LandingPad)
LLVM_C_ABI LLVMValueRef LLVMGetClause (LLVMValueRef LandingPad, unsigned Idx)
LLVM_C_ABI void LLVMAddClause (LLVMValueRef LandingPad, LLVMValueRef ClauseVal)
LLVM_C_ABI LLVMBool LLVMIsCleanup (LLVMValueRef LandingPad)
LLVM_C_ABI void LLVMSetCleanup (LLVMValueRef LandingPad, LLVMBool Val)
LLVM_C_ABI void LLVMAddHandler (LLVMValueRef CatchSwitch, LLVMBasicBlockRef Dest)
LLVM_C_ABI unsigned LLVMGetNumHandlers (LLVMValueRef CatchSwitch)
LLVM_C_ABI void LLVMGetHandlers (LLVMValueRef CatchSwitch, LLVMBasicBlockRef *Handlers)
 Obtain the basic blocks acting as handlers for a catchswitch instruction.
LLVM_C_ABI LLVMValueRef LLVMGetArgOperand (LLVMValueRef Funclet, unsigned i)
LLVM_C_ABI void LLVMSetArgOperand (LLVMValueRef Funclet, unsigned i, LLVMValueRef value)
LLVM_C_ABI LLVMValueRef LLVMGetParentCatchSwitch (LLVMValueRef CatchPad)
 Get the parent catchswitch instruction of a catchpad instruction.
LLVM_C_ABI void LLVMSetParentCatchSwitch (LLVMValueRef CatchPad, LLVMValueRef CatchSwitch)
 Set the parent catchswitch instruction of a catchpad instruction.
LLVM_C_ABI LLVMValueRef LLVMBuildAdd (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildNSWAdd (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildNUWAdd (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildFAdd (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildSub (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildNSWSub (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildNUWSub (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildFSub (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildMul (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildNSWMul (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildNUWMul (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildFMul (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildUDiv (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildExactUDiv (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildSDiv (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildExactSDiv (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildFDiv (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildURem (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildSRem (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildFRem (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildShl (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildLShr (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildAShr (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildAnd (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildOr (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildXor (LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildBinOp (LLVMBuilderRef B, LLVMOpcode Op, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildNeg (LLVMBuilderRef, LLVMValueRef V, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildNSWNeg (LLVMBuilderRef B, LLVMValueRef V, const char *Name)
LLVM_C_ABI LLVM_ATTRIBUTE_C_DEPRECATED (LLVMValueRef LLVMBuildNUWNeg(LLVMBuilderRef B, LLVMValueRef V, const char *Name), "Use LLVMBuildNeg + LLVMSetNUW instead.")
LLVM_C_ABI LLVMValueRef LLVMBuildFNeg (LLVMBuilderRef, LLVMValueRef V, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildNot (LLVMBuilderRef, LLVMValueRef V, const char *Name)
LLVM_C_ABI LLVMBool LLVMGetNUW (LLVMValueRef ArithInst)
LLVM_C_ABI void LLVMSetNUW (LLVMValueRef ArithInst, LLVMBool HasNUW)
LLVM_C_ABI LLVMBool LLVMGetNSW (LLVMValueRef ArithInst)
LLVM_C_ABI void LLVMSetNSW (LLVMValueRef ArithInst, LLVMBool HasNSW)
LLVM_C_ABI LLVMBool LLVMGetExact (LLVMValueRef DivOrShrInst)
LLVM_C_ABI void LLVMSetExact (LLVMValueRef DivOrShrInst, LLVMBool IsExact)
LLVM_C_ABI LLVMBool LLVMGetNNeg (LLVMValueRef NonNegInst)
 Gets if the instruction has the non-negative flag set.
LLVM_C_ABI void LLVMSetNNeg (LLVMValueRef NonNegInst, LLVMBool IsNonNeg)
 Sets the non-negative flag for the instruction.
LLVM_C_ABI LLVMFastMathFlags LLVMGetFastMathFlags (LLVMValueRef FPMathInst)
 Get the flags for which fast-math-style optimizations are allowed for this value.
LLVM_C_ABI void LLVMSetFastMathFlags (LLVMValueRef FPMathInst, LLVMFastMathFlags FMF)
 Sets the flags for which fast-math-style optimizations are allowed for this value.
LLVM_C_ABI LLVMBool LLVMCanValueUseFastMathFlags (LLVMValueRef Inst)
 Check if a given value can potentially have fast math flags.
LLVM_C_ABI LLVMBool LLVMGetIsDisjoint (LLVMValueRef Inst)
 Gets whether the instruction has the disjoint flag set.
LLVM_C_ABI void LLVMSetIsDisjoint (LLVMValueRef Inst, LLVMBool IsDisjoint)
 Sets the disjoint flag for the instruction.
LLVM_C_ABI LLVMValueRef LLVMBuildMalloc (LLVMBuilderRef, LLVMTypeRef Ty, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildArrayMalloc (LLVMBuilderRef, LLVMTypeRef Ty, LLVMValueRef Val, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildMemSet (LLVMBuilderRef B, LLVMValueRef Ptr, LLVMValueRef Val, LLVMValueRef Len, unsigned Align)
 Creates and inserts a memset to the specified pointer and the specified value.
LLVM_C_ABI LLVMValueRef LLVMBuildMemCpy (LLVMBuilderRef B, LLVMValueRef Dst, unsigned DstAlign, LLVMValueRef Src, unsigned SrcAlign, LLVMValueRef Size)
 Creates and inserts a memcpy between the specified pointers.
LLVM_C_ABI LLVMValueRef LLVMBuildMemMove (LLVMBuilderRef B, LLVMValueRef Dst, unsigned DstAlign, LLVMValueRef Src, unsigned SrcAlign, LLVMValueRef Size)
 Creates and inserts a memmove between the specified pointers.
LLVM_C_ABI LLVMValueRef LLVMBuildAlloca (LLVMBuilderRef, LLVMTypeRef Ty, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildArrayAlloca (LLVMBuilderRef, LLVMTypeRef Ty, LLVMValueRef Val, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildFree (LLVMBuilderRef, LLVMValueRef PointerVal)
LLVM_C_ABI LLVMValueRef LLVMBuildLoad2 (LLVMBuilderRef, LLVMTypeRef Ty, LLVMValueRef PointerVal, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildStore (LLVMBuilderRef, LLVMValueRef Val, LLVMValueRef Ptr)
LLVM_C_ABI LLVMValueRef LLVMBuildGEP2 (LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Pointer, LLVMValueRef *Indices, unsigned NumIndices, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildInBoundsGEP2 (LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Pointer, LLVMValueRef *Indices, unsigned NumIndices, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildGEPWithNoWrapFlags (LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Pointer, LLVMValueRef *Indices, unsigned NumIndices, const char *Name, LLVMGEPNoWrapFlags NoWrapFlags)
 Creates a GetElementPtr instruction.
LLVM_C_ABI LLVMValueRef LLVMBuildStructGEP2 (LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Pointer, unsigned Idx, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildGlobalString (LLVMBuilderRef B, const char *Str, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildGlobalStringPtr (LLVMBuilderRef B, const char *Str, const char *Name)
 Deprecated: Use LLVMBuildGlobalString instead, which has identical behavior.
LLVM_C_ABI LLVMBool LLVMGetVolatile (LLVMValueRef MemoryAccessInst)
LLVM_C_ABI void LLVMSetVolatile (LLVMValueRef MemoryAccessInst, LLVMBool IsVolatile)
LLVM_C_ABI LLVMBool LLVMGetWeak (LLVMValueRef CmpXchgInst)
LLVM_C_ABI void LLVMSetWeak (LLVMValueRef CmpXchgInst, LLVMBool IsWeak)
LLVM_C_ABI LLVMAtomicOrdering LLVMGetOrdering (LLVMValueRef MemoryAccessInst)
LLVM_C_ABI void LLVMSetOrdering (LLVMValueRef MemoryAccessInst, LLVMAtomicOrdering Ordering)
LLVM_C_ABI LLVMAtomicRMWBinOp LLVMGetAtomicRMWBinOp (LLVMValueRef AtomicRMWInst)
LLVM_C_ABI void LLVMSetAtomicRMWBinOp (LLVMValueRef AtomicRMWInst, LLVMAtomicRMWBinOp BinOp)
LLVM_C_ABI LLVMValueRef LLVMBuildTrunc (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildZExt (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildSExt (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildFPToUI (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildFPToSI (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildUIToFP (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildSIToFP (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildFPTrunc (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildFPExt (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildPtrToInt (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildIntToPtr (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildBitCast (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildAddrSpaceCast (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildZExtOrBitCast (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildSExtOrBitCast (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildTruncOrBitCast (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildCast (LLVMBuilderRef B, LLVMOpcode Op, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildPointerCast (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildIntCast2 (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, LLVMBool IsSigned, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildFPCast (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildIntCast (LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)
 Deprecated: This cast is always signed.
LLVM_C_ABI LLVMOpcode LLVMGetCastOpcode (LLVMValueRef Src, LLVMBool SrcIsSigned, LLVMTypeRef DestTy, LLVMBool DestIsSigned)
LLVM_C_ABI LLVMValueRef LLVMBuildICmp (LLVMBuilderRef, LLVMIntPredicate Op, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildFCmp (LLVMBuilderRef, LLVMRealPredicate Op, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildPhi (LLVMBuilderRef, LLVMTypeRef Ty, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildCall2 (LLVMBuilderRef, LLVMTypeRef, LLVMValueRef Fn, LLVMValueRef *Args, unsigned NumArgs, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildCallWithOperandBundles (LLVMBuilderRef, LLVMTypeRef, LLVMValueRef Fn, LLVMValueRef *Args, unsigned NumArgs, LLVMOperandBundleRef *Bundles, unsigned NumBundles, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildSelect (LLVMBuilderRef, LLVMValueRef If, LLVMValueRef Then, LLVMValueRef Else, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildVAArg (LLVMBuilderRef, LLVMValueRef List, LLVMTypeRef Ty, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildExtractElement (LLVMBuilderRef, LLVMValueRef VecVal, LLVMValueRef Index, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildInsertElement (LLVMBuilderRef, LLVMValueRef VecVal, LLVMValueRef EltVal, LLVMValueRef Index, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildShuffleVector (LLVMBuilderRef, LLVMValueRef V1, LLVMValueRef V2, LLVMValueRef Mask, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildExtractValue (LLVMBuilderRef, LLVMValueRef AggVal, unsigned Index, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildInsertValue (LLVMBuilderRef, LLVMValueRef AggVal, LLVMValueRef EltVal, unsigned Index, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildFreeze (LLVMBuilderRef, LLVMValueRef Val, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildIsNull (LLVMBuilderRef, LLVMValueRef Val, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildIsNotNull (LLVMBuilderRef, LLVMValueRef Val, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildPtrDiff2 (LLVMBuilderRef, LLVMTypeRef ElemTy, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildFence (LLVMBuilderRef B, LLVMAtomicOrdering ordering, LLVMBool singleThread, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildFenceSyncScope (LLVMBuilderRef B, LLVMAtomicOrdering ordering, unsigned SSID, const char *Name)
LLVM_C_ABI LLVMValueRef LLVMBuildAtomicRMW (LLVMBuilderRef B, LLVMAtomicRMWBinOp op, LLVMValueRef PTR, LLVMValueRef Val, LLVMAtomicOrdering ordering, LLVMBool singleThread)
LLVM_C_ABI LLVMValueRef LLVMBuildAtomicRMWSyncScope (LLVMBuilderRef B, LLVMAtomicRMWBinOp op, LLVMValueRef PTR, LLVMValueRef Val, LLVMAtomicOrdering ordering, unsigned SSID)
LLVM_C_ABI LLVMValueRef LLVMBuildAtomicCmpXchg (LLVMBuilderRef B, LLVMValueRef Ptr, LLVMValueRef Cmp, LLVMValueRef New, LLVMAtomicOrdering SuccessOrdering, LLVMAtomicOrdering FailureOrdering, LLVMBool SingleThread)
LLVM_C_ABI LLVMValueRef LLVMBuildAtomicCmpXchgSyncScope (LLVMBuilderRef B, LLVMValueRef Ptr, LLVMValueRef Cmp, LLVMValueRef New, LLVMAtomicOrdering SuccessOrdering, LLVMAtomicOrdering FailureOrdering, unsigned SSID)
LLVM_C_ABI unsigned LLVMGetNumMaskElements (LLVMValueRef ShuffleVectorInst)
 Get the number of elements in the mask of a ShuffleVector instruction.
LLVM_C_ABI int LLVMGetUndefMaskElem (void)
LLVM_C_ABI int LLVMGetMaskValue (LLVMValueRef ShuffleVectorInst, unsigned Elt)
 Get the mask value at position Elt in the mask of a ShuffleVector instruction.
LLVM_C_ABI LLVMBool LLVMIsAtomicSingleThread (LLVMValueRef AtomicInst)
LLVM_C_ABI void LLVMSetAtomicSingleThread (LLVMValueRef AtomicInst, LLVMBool SingleThread)
LLVM_C_ABI LLVMBool LLVMIsAtomic (LLVMValueRef Inst)
 Returns whether an instruction is an atomic instruction, e.g., atomicrmw, cmpxchg, fence, or loads and stores with atomic ordering.
LLVM_C_ABI unsigned LLVMGetAtomicSyncScopeID (LLVMValueRef AtomicInst)
 Returns the synchronization scope ID of an atomic instruction.
LLVM_C_ABI void LLVMSetAtomicSyncScopeID (LLVMValueRef AtomicInst, unsigned SSID)
 Sets the synchronization scope ID of an atomic instruction.
LLVM_C_ABI LLVMAtomicOrdering LLVMGetCmpXchgSuccessOrdering (LLVMValueRef CmpXchgInst)
LLVM_C_ABI void LLVMSetCmpXchgSuccessOrdering (LLVMValueRef CmpXchgInst, LLVMAtomicOrdering Ordering)
LLVM_C_ABI LLVMAtomicOrdering LLVMGetCmpXchgFailureOrdering (LLVMValueRef CmpXchgInst)
LLVM_C_ABI void LLVMSetCmpXchgFailureOrdering (LLVMValueRef CmpXchgInst, LLVMAtomicOrdering Ordering)
LLVM_C_ABI LLVMModuleProviderRef LLVMCreateModuleProviderForExistingModule (LLVMModuleRef M)
 Changes the type of M so it can be passed to FunctionPassManagers and the JIT.
LLVM_C_ABI void LLVMDisposeModuleProvider (LLVMModuleProviderRef M)
 Destroys the module M.
LLVM_C_ABI LLVMBool LLVMCreateMemoryBufferWithContentsOfFile (const char *Path, LLVMMemoryBufferRef *OutMemBuf, char **OutMessage)
LLVM_C_ABI LLVMBool LLVMCreateMemoryBufferWithSTDIN (LLVMMemoryBufferRef *OutMemBuf, char **OutMessage)
LLVM_C_ABI LLVMMemoryBufferRef LLVMCreateMemoryBufferWithMemoryRange (const char *InputData, size_t InputDataLength, const char *BufferName, LLVMBool RequiresNullTerminator)
LLVM_C_ABI LLVMMemoryBufferRef LLVMCreateMemoryBufferWithMemoryRangeCopy (const char *InputData, size_t InputDataLength, const char *BufferName)
LLVM_C_ABI const charLLVMGetBufferStart (LLVMMemoryBufferRef MemBuf)
LLVM_C_ABI size_t LLVMGetBufferSize (LLVMMemoryBufferRef MemBuf)
LLVM_C_ABI void LLVMDisposeMemoryBuffer (LLVMMemoryBufferRef MemBuf)
LLVM_C_ABI LLVMPassManagerRef LLVMCreatePassManager (void)
 Constructs a new whole-module pass pipeline.
LLVM_C_ABI LLVMPassManagerRef LLVMCreateFunctionPassManagerForModule (LLVMModuleRef M)
 Constructs a new function-by-function pass pipeline over the module provider.
LLVM_C_ABI LLVMPassManagerRef LLVMCreateFunctionPassManager (LLVMModuleProviderRef MP)
 Deprecated: Use LLVMCreateFunctionPassManagerForModule instead.
LLVM_C_ABI LLVMBool LLVMRunPassManager (LLVMPassManagerRef PM, LLVMModuleRef M)
 Initializes, executes on the provided module, and finalizes all of the passes scheduled in the pass manager.
LLVM_C_ABI LLVMBool LLVMInitializeFunctionPassManager (LLVMPassManagerRef FPM)
 Initializes all of the function passes scheduled in the function pass manager.
LLVM_C_ABI LLVMBool LLVMRunFunctionPassManager (LLVMPassManagerRef FPM, LLVMValueRef F)
 Executes all of the function passes scheduled in the function pass manager on the provided function.
LLVM_C_ABI LLVMBool LLVMFinalizeFunctionPassManager (LLVMPassManagerRef FPM)
 Finalizes all of the function passes scheduled in the function pass manager.
LLVM_C_ABI void LLVMDisposePassManager (LLVMPassManagerRef PM)
 Frees the memory of a pass pipeline.
LLVM_C_ABI LLVMBool LLVMStartMultithreaded (void)
 Deprecated: Multi-threading can only be enabled/disabled with the compile time define LLVM_ENABLE_THREADS.
LLVM_C_ABI void LLVMStopMultithreaded (void)
 Deprecated: Multi-threading can only be enabled/disabled with the compile time define LLVM_ENABLE_THREADS.
LLVM_C_ABI LLVMBool LLVMIsMultithreaded (void)
 Check whether LLVM is executing in thread-safe mode or not.