LLVM  8.0.1
Typedefs | Enumerations
Types and Enumerations
Collaboration diagram for Types and Enumerations:

Typedefs

typedef unsigned LLVMAttributeIndex
 

Enumerations

enum  LLVMOpcode {
  LLVMRet = 1, LLVMBr = 2, LLVMSwitch = 3, LLVMIndirectBr = 4,
  LLVMInvoke = 5, LLVMUnreachable = 7, 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, 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, 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, LLVMHalfTypeKind, LLVMFloatTypeKind, LLVMDoubleTypeKind,
  LLVMX86_FP80TypeKind, LLVMFP128TypeKind, LLVMPPC_FP128TypeKind, LLVMLabelTypeKind,
  LLVMIntegerTypeKind, LLVMFunctionTypeKind, LLVMStructTypeKind, LLVMArrayTypeKind,
  LLVMPointerTypeKind, LLVMVectorTypeKind, LLVMMetadataTypeKind, LLVMX86_MMXTypeKind,
  LLVMTokenTypeKind
}
 
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, LLVMWebKitJSCallConv = 12, 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
}
 
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  LLVMLandingPadClauseTy { LLVMLandingPadCatch, LLVMLandingPadFilter }
 
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
}
 
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...
 

Detailed Description

Typedef Documentation

◆ LLVMAttributeIndex

Definition at line 452 of file Core.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Attribute index are either LLVMAttributeReturnIndex, LLVMAttributeFunctionIndex or a parameter number from 1 to N.

Enumerator
LLVMAttributeReturnIndex 
LLVMAttributeFunctionIndex 

Definition at line 444 of file Core.h.

◆ LLVMAtomicOrdering

Enumerator
LLVMAtomicOrderingNotAtomic 

A load or store which is not atomic.

LLVMAtomicOrderingUnordered 

Lowest level of atomicity, guarantees somewhat sane results, lock free.

LLVMAtomicOrderingMonotonic 

guarantees that if you take all the operations affecting a specific address, a consistent ordering exists

LLVMAtomicOrderingAcquire 

Acquire provides a barrier of the sort necessary to acquire a lock to access other memory with normal loads and stores.

LLVMAtomicOrderingRelease 

Release is similar to Acquire, but with a barrier of the sort necessary to release a lock.

LLVMAtomicOrderingAcquireRelease 

provides both an Acquire and a Release barrier (for fences and operations which both read and write memory).

LLVMAtomicOrderingSequentiallyConsistent 

provides Acquire semantics for loads and Release semantics for stores.

Additionally, it guarantees that a total ordering exists between all SequentiallyConsistent operations.

Definition at line 328 of file Core.h.

◆ LLVMAtomicRMWBinOp

Enumerator
LLVMAtomicRMWBinOpXchg 

Set the new value and return the one old.

LLVMAtomicRMWBinOpAdd 

Add a value and return the old one.

LLVMAtomicRMWBinOpSub 

Subtract a value and return the old one.

LLVMAtomicRMWBinOpAnd 

And a value and return the old one.

LLVMAtomicRMWBinOpNand 

Not-And a value and return the old one.

LLVMAtomicRMWBinOpOr 

OR a value and return the old one.

LLVMAtomicRMWBinOpXor 

Xor a value and return the old one.

LLVMAtomicRMWBinOpMax 

Sets the value if it's greater than the original using a signed comparison and return the old one.

LLVMAtomicRMWBinOpMin 

Sets the value if it's Smaller than the original using a signed comparison and return the old one.

LLVMAtomicRMWBinOpUMax 

Sets the value if it's greater than the original using an unsigned comparison and return the old one.

LLVMAtomicRMWBinOpUMin 

Sets the value if it's greater than the original using an unsigned comparison and return the old one.

Definition at line 355 of file Core.h.

◆ LLVMCallConv

Enumerator
LLVMCCallConv 
LLVMFastCallConv 
LLVMColdCallConv 
LLVMGHCCallConv 
LLVMHiPECallConv 
LLVMWebKitJSCallConv 
LLVMAnyRegCallConv 
LLVMPreserveMostCallConv 
LLVMPreserveAllCallConv 
LLVMSwiftCallConv 
LLVMCXXFASTTLSCallConv 
LLVMX86StdcallCallConv 
LLVMX86FastcallCallConv 
LLVMARMAPCSCallConv 
LLVMARMAAPCSCallConv 
LLVMARMAAPCSVFPCallConv 
LLVMMSP430INTRCallConv 
LLVMX86ThisCallCallConv 
LLVMPTXKernelCallConv 
LLVMPTXDeviceCallConv 
LLVMSPIRFUNCCallConv 
LLVMSPIRKERNELCallConv 
LLVMIntelOCLBICallConv 
LLVMX8664SysVCallConv 
LLVMWin64CallConv 
LLVMX86VectorCallCallConv 
LLVMHHVMCallConv 
LLVMHHVMCCallConv 
LLVMX86INTRCallConv 
LLVMAVRINTRCallConv 
LLVMAVRSIGNALCallConv 
LLVMAVRBUILTINCallConv 
LLVMAMDGPUVSCallConv 
LLVMAMDGPUGSCallConv 
LLVMAMDGPUPSCallConv 
LLVMAMDGPUCSCallConv 
LLVMAMDGPUKERNELCallConv 
LLVMX86RegCallCallConv 
LLVMAMDGPUHSCallConv 
LLVMMSP430BUILTINCallConv 
LLVMAMDGPULSCallConv 
LLVMAMDGPUESCallConv 

Definition at line 206 of file Core.h.

◆ LLVMDiagnosticSeverity

Enumerator
LLVMDSError 
LLVMDSWarning 
LLVMDSRemark 
LLVMDSNote 

Definition at line 377 of file Core.h.

◆ LLVMDLLStorageClass

Enumerator
LLVMDefaultStorageClass 
LLVMDLLImportStorageClass 

Function to be imported from DLL.

LLVMDLLExportStorageClass 

Function to be accessible from DLL.

Definition at line 200 of file Core.h.

◆ LLVMInlineAsmDialect

Enumerator
LLVMInlineAsmDialectATT 
LLVMInlineAsmDialectIntel 

Definition at line 384 of file Core.h.

◆ LLVMIntPredicate

Enumerator
LLVMIntEQ 

equal

LLVMIntNE 

not equal

LLVMIntUGT 

unsigned greater than

LLVMIntUGE 

unsigned greater or equal

LLVMIntULT 

unsigned less than

LLVMIntULE 

unsigned less or equal

LLVMIntSGT 

signed greater than

LLVMIntSGE 

signed greater or equal

LLVMIntSLT 

signed less than

LLVMIntSLE 

signed less or equal

Definition at line 283 of file Core.h.

◆ LLVMLandingPadClauseTy

Enumerator
LLVMLandingPadCatch 

A catch clause.

LLVMLandingPadFilter 

A filter clause.

Definition at line 315 of file Core.h.

◆ LLVMLinkage

Enumerator
LLVMExternalLinkage 

Externally visible function.

LLVMAvailableExternallyLinkage 
LLVMLinkOnceAnyLinkage 

Keep one copy of function when linking (inline)

LLVMLinkOnceODRLinkage 

Same, but only replaced by something equivalent.

LLVMLinkOnceODRAutoHideLinkage 

Obsolete.

LLVMWeakAnyLinkage 

Keep one copy of function when linking (weak)

LLVMWeakODRLinkage 

Same, but only replaced by something equivalent.

LLVMAppendingLinkage 

Special purpose, only applies to global arrays.

LLVMInternalLinkage 

Rename collisions when linking (static functions)

LLVMPrivateLinkage 

Like Internal, but omit from symbol table.

LLVMDLLImportLinkage 

Obsolete.

LLVMDLLExportLinkage 

Obsolete.

LLVMExternalWeakLinkage 

ExternalWeak linkage description.

LLVMGhostLinkage 

Obsolete.

LLVMCommonLinkage 

Tentative definitions.

LLVMLinkerPrivateLinkage 

Like Private, but linker removes.

LLVMLinkerPrivateWeakLinkage 

Like LinkerPrivate, but is weak.

Definition at line 165 of file Core.h.

◆ LLVMModuleFlagBehavior

Enumerator
LLVMModuleFlagBehaviorError 

Emits an error if two values disagree, otherwise the resulting value is that of the operands.

See also
Module::ModFlagBehavior::Error
LLVMModuleFlagBehaviorWarning 

Emits a warning if two values disagree.

The result value will be the operand for the flag from the first module being linked.

See also
Module::ModFlagBehavior::Warning
LLVMModuleFlagBehaviorRequire 

Adds a requirement that another module flag be present and have a specified value after linking is performed.

The value must be a metadata pair, where the first element of the pair is the ID of the module flag to be restricted, and the second element of the pair is the value the module flag should be restricted to. This behavior can be used to restrict the allowable results (via triggering of an error) of linking IDs with the Override behavior.

See also
Module::ModFlagBehavior::Require
LLVMModuleFlagBehaviorOverride 

Uses the specified value, regardless of the behavior or value of the other module.

If both modules specify Override, but the values differ, an error will be emitted.

See also
Module::ModFlagBehavior::Override
LLVMModuleFlagBehaviorAppend 

Appends the two values, which are required to be metadata nodes.

See also
Module::ModFlagBehavior::Append
LLVMModuleFlagBehaviorAppendUnique 

Appends the two values, which are required to be metadata nodes.

However, duplicate entries in the second list are dropped during the append operation.

See also
Module::ModFlagBehavior::AppendUnique

Definition at line 389 of file Core.h.

◆ LLVMOpcode

enum LLVMOpcode

External users depend on the following values being stable.

It is not safe to reorder them.

Enumerator
LLVMRet 
LLVMBr 
LLVMSwitch 
LLVMIndirectBr 
LLVMInvoke 
LLVMUnreachable 
LLVMFNeg 
LLVMAdd 
LLVMFAdd 
LLVMSub 
LLVMFSub 
LLVMMul 
LLVMFMul 
LLVMUDiv 
LLVMSDiv 
LLVMFDiv 
LLVMURem 
LLVMSRem 
LLVMFRem 
LLVMShl 
LLVMLShr 
LLVMAShr 
LLVMAnd 
LLVMOr 
LLVMXor 
LLVMAlloca 
LLVMLoad 
LLVMStore 
LLVMGetElementPtr 
LLVMTrunc 
LLVMZExt 
LLVMSExt 
LLVMFPToUI 
LLVMFPToSI 
LLVMUIToFP 
LLVMSIToFP 
LLVMFPTrunc 
LLVMFPExt 
LLVMPtrToInt 
LLVMIntToPtr 
LLVMBitCast 
LLVMAddrSpaceCast 
LLVMICmp 
LLVMFCmp 
LLVMPHI 
LLVMCall 
LLVMSelect 
LLVMUserOp1 
LLVMUserOp2 
LLVMVAArg 
LLVMExtractElement 
LLVMInsertElement 
LLVMShuffleVector 
LLVMExtractValue 
LLVMInsertValue 
LLVMFence 
LLVMAtomicCmpXchg 
LLVMAtomicRMW 
LLVMResume 
LLVMLandingPad 
LLVMCleanupRet 
LLVMCatchRet 
LLVMCatchPad 
LLVMCleanupPad 
LLVMCatchSwitch 

Definition at line 59 of file Core.h.

◆ LLVMRealPredicate

Enumerator
LLVMRealPredicateFalse 

Always false (always folded)

LLVMRealOEQ 

True if ordered and equal.

LLVMRealOGT 

True if ordered and greater than.

LLVMRealOGE 

True if ordered and greater than or equal.

LLVMRealOLT 

True if ordered and less than.

LLVMRealOLE 

True if ordered and less than or equal.

LLVMRealONE 

True if ordered and operands are unequal.

LLVMRealORD 

True if ordered (no nans)

LLVMRealUNO 

True if unordered: isnan(X) | isnan(Y)

LLVMRealUEQ 

True if unordered or equal.

LLVMRealUGT 

True if unordered or greater than.

LLVMRealUGE 

True if unordered, greater than, or equal.

LLVMRealULT 

True if unordered or less than.

LLVMRealULE 

True if unordered, less than, or equal.

LLVMRealUNE 

True if unordered or not equal.

LLVMRealPredicateTrue 

Always true (always folded)

Definition at line 296 of file Core.h.

◆ LLVMThreadLocalMode

Enumerator
LLVMNotThreadLocal 
LLVMGeneralDynamicTLSModel 
LLVMLocalDynamicTLSModel 
LLVMInitialExecTLSModel 
LLVMLocalExecTLSModel 

Definition at line 320 of file Core.h.

◆ LLVMTypeKind

Enumerator
LLVMVoidTypeKind 

type with no size

LLVMHalfTypeKind 

16 bit floating point type

LLVMFloatTypeKind 

32 bit floating point type

LLVMDoubleTypeKind 

64 bit floating point type

LLVMX86_FP80TypeKind 

80 bit floating point type (X87)

LLVMFP128TypeKind 

128 bit floating point type (112-bit mantissa)

LLVMPPC_FP128TypeKind 

128 bit floating point type (two 64-bits)

LLVMLabelTypeKind 

Labels.

LLVMIntegerTypeKind 

Arbitrary bit width integers.

LLVMFunctionTypeKind 

Functions.

LLVMStructTypeKind 

Structures.

LLVMArrayTypeKind 

Arrays.

LLVMPointerTypeKind 

Pointers.

LLVMVectorTypeKind 

SIMD 'packed' format, or other vector type.

LLVMMetadataTypeKind 

Metadata.

LLVMX86_MMXTypeKind 

X86 MMX.

LLVMTokenTypeKind 

Tokens.

Definition at line 145 of file Core.h.

◆ LLVMUnnamedAddr

Enumerator
LLVMNoUnnamedAddr 

Address of the GV is significant.

LLVMLocalUnnamedAddr 

Address of the GV is locally insignificant.

LLVMGlobalUnnamedAddr 

Address of the GV is globally insignificant.

Definition at line 194 of file Core.h.

◆ LLVMValueKind

Enumerator
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 

Definition at line 251 of file Core.h.

◆ LLVMVisibility

Enumerator
LLVMDefaultVisibility 

The GV is visible.

LLVMHiddenVisibility 

The GV is hidden.

LLVMProtectedVisibility 

The GV is protected.

Definition at line 188 of file Core.h.