mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-05 23:28:48 +00:00
Update llvm-c headers for Version 11.0.1
This commit is contained in:
+73
-30
@@ -16,11 +16,10 @@
|
||||
#define LLVM_C_CORE_H
|
||||
|
||||
#include "ErrorHandling.h"
|
||||
#include "ExternC.h"
|
||||
#include "Types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* @defgroup LLVMC LLVM-C: C interface to LLVM
|
||||
@@ -127,6 +126,7 @@ typedef enum {
|
||||
LLVMShuffleVector = 52,
|
||||
LLVMExtractValue = 53,
|
||||
LLVMInsertValue = 54,
|
||||
LLVMFreeze = 68,
|
||||
|
||||
/* Atomic operators */
|
||||
LLVMFence = 55,
|
||||
@@ -144,23 +144,25 @@ typedef enum {
|
||||
} LLVMOpcode;
|
||||
|
||||
typedef enum {
|
||||
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 */
|
||||
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, /**< Fixed width SIMD vector type */
|
||||
LLVMMetadataTypeKind, /**< Metadata */
|
||||
LLVMX86_MMXTypeKind, /**< X86 MMX */
|
||||
LLVMTokenTypeKind, /**< Tokens */
|
||||
LLVMScalableVectorTypeKind, /**< Scalable SIMD vector type */
|
||||
LLVMBFloatTypeKind /**< 16 bit brain floating point type */
|
||||
} LLVMTypeKind;
|
||||
|
||||
typedef enum {
|
||||
@@ -370,9 +372,13 @@ typedef enum {
|
||||
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 */
|
||||
LLVMAtomicRMWBinOpUMin, /**< Sets the value if it's greater than the
|
||||
original using an unsigned comparison and return
|
||||
the old one */
|
||||
LLVMAtomicRMWBinOpFAdd, /**< Add a floating point value and return the
|
||||
old one */
|
||||
LLVMAtomicRMWBinOpFSub /**< Subtract a floating point value and return the
|
||||
old one */
|
||||
} LLVMAtomicRMWBinOp;
|
||||
|
||||
typedef enum {
|
||||
@@ -1158,6 +1164,11 @@ unsigned LLVMGetIntTypeWidth(LLVMTypeRef IntegerTy);
|
||||
*/
|
||||
LLVMTypeRef LLVMHalfTypeInContext(LLVMContextRef C);
|
||||
|
||||
/**
|
||||
* Obtain a 16-bit brain floating point type from a context.
|
||||
*/
|
||||
LLVMTypeRef LLVMBFloatTypeInContext(LLVMContextRef C);
|
||||
|
||||
/**
|
||||
* Obtain a 32-bit floating point type from a context.
|
||||
*/
|
||||
@@ -1190,6 +1201,7 @@ LLVMTypeRef LLVMPPCFP128TypeInContext(LLVMContextRef C);
|
||||
* These map to the functions in this group of the same name.
|
||||
*/
|
||||
LLVMTypeRef LLVMHalfType(void);
|
||||
LLVMTypeRef LLVMBFloatType(void);
|
||||
LLVMTypeRef LLVMFloatType(void);
|
||||
LLVMTypeRef LLVMDoubleType(void);
|
||||
LLVMTypeRef LLVMX86FP80Type(void);
|
||||
@@ -1539,6 +1551,7 @@ LLVMTypeRef LLVMX86MMXType(void);
|
||||
macro(GlobalVariable) \
|
||||
macro(UndefValue) \
|
||||
macro(Instruction) \
|
||||
macro(UnaryOperator) \
|
||||
macro(BinaryOperator) \
|
||||
macro(CallInst) \
|
||||
macro(IntrinsicInst) \
|
||||
@@ -1571,6 +1584,8 @@ LLVMTypeRef LLVMX86MMXType(void);
|
||||
macro(ResumeInst) \
|
||||
macro(CleanupReturnInst) \
|
||||
macro(CatchReturnInst) \
|
||||
macro(CatchSwitchInst) \
|
||||
macro(CallBrInst) \
|
||||
macro(FuncletPadInst) \
|
||||
macro(CatchPadInst) \
|
||||
macro(CleanupPadInst) \
|
||||
@@ -1592,7 +1607,11 @@ LLVMTypeRef LLVMX86MMXType(void);
|
||||
macro(ZExtInst) \
|
||||
macro(ExtractValueInst) \
|
||||
macro(LoadInst) \
|
||||
macro(VAArgInst)
|
||||
macro(VAArgInst) \
|
||||
macro(FreezeInst) \
|
||||
macro(AtomicCmpXchgInst) \
|
||||
macro(AtomicRMWInst) \
|
||||
macro(FenceInst)
|
||||
|
||||
/**
|
||||
* @defgroup LLVMCCoreValueGeneral General APIs
|
||||
@@ -3240,8 +3259,8 @@ LLVMTypeRef LLVMGetCalledFunctionType(LLVMValueRef C);
|
||||
* This expects an LLVMValueRef that corresponds to a llvm::CallInst or
|
||||
* llvm::InvokeInst.
|
||||
*
|
||||
* @see llvm::CallInst::getCalledValue()
|
||||
* @see llvm::InvokeInst::getCalledValue()
|
||||
* @see llvm::CallInst::getCalledOperand()
|
||||
* @see llvm::InvokeInst::getCalledOperand()
|
||||
*/
|
||||
LLVMValueRef LLVMGetCalledValue(LLVMValueRef Instr);
|
||||
|
||||
@@ -3617,7 +3636,7 @@ void LLVMAddDestination(LLVMValueRef IndirectBr, LLVMBasicBlockRef Dest);
|
||||
/* Get the number of clauses on the landingpad instruction */
|
||||
unsigned LLVMGetNumClauses(LLVMValueRef LandingPad);
|
||||
|
||||
/* Get the value of the clause at idnex Idx on the landingpad instruction */
|
||||
/* Get the value of the clause at index Idx on the landingpad instruction */
|
||||
LLVMValueRef LLVMGetClause(LLVMValueRef LandingPad, unsigned Idx);
|
||||
|
||||
/* Add a catch or filter clause to the landingpad instruction */
|
||||
@@ -3807,8 +3826,12 @@ LLVMValueRef LLVMBuildGlobalStringPtr(LLVMBuilderRef B, const char *Str,
|
||||
const char *Name);
|
||||
LLVMBool LLVMGetVolatile(LLVMValueRef MemoryAccessInst);
|
||||
void LLVMSetVolatile(LLVMValueRef MemoryAccessInst, LLVMBool IsVolatile);
|
||||
LLVMBool LLVMGetWeak(LLVMValueRef CmpXchgInst);
|
||||
void LLVMSetWeak(LLVMValueRef CmpXchgInst, LLVMBool IsWeak);
|
||||
LLVMAtomicOrdering LLVMGetOrdering(LLVMValueRef MemoryAccessInst);
|
||||
void LLVMSetOrdering(LLVMValueRef MemoryAccessInst, LLVMAtomicOrdering Ordering);
|
||||
LLVMAtomicRMWBinOp LLVMGetAtomicRMWBinOp(LLVMValueRef AtomicRMWInst);
|
||||
void LLVMSetAtomicRMWBinOp(LLVMValueRef AtomicRMWInst, LLVMAtomicRMWBinOp BinOp);
|
||||
|
||||
/* Casts */
|
||||
LLVMValueRef LLVMBuildTrunc(LLVMBuilderRef, LLVMValueRef Val,
|
||||
@@ -3893,6 +3916,8 @@ LLVMValueRef LLVMBuildExtractValue(LLVMBuilderRef, LLVMValueRef AggVal,
|
||||
LLVMValueRef LLVMBuildInsertValue(LLVMBuilderRef, LLVMValueRef AggVal,
|
||||
LLVMValueRef EltVal, unsigned Index,
|
||||
const char *Name);
|
||||
LLVMValueRef LLVMBuildFreeze(LLVMBuilderRef, LLVMValueRef Val,
|
||||
const char *Name);
|
||||
|
||||
LLVMValueRef LLVMBuildIsNull(LLVMBuilderRef, LLVMValueRef Val,
|
||||
const char *Name);
|
||||
@@ -3912,6 +3937,26 @@ LLVMValueRef LLVMBuildAtomicCmpXchg(LLVMBuilderRef B, LLVMValueRef Ptr,
|
||||
LLVMAtomicOrdering FailureOrdering,
|
||||
LLVMBool SingleThread);
|
||||
|
||||
/**
|
||||
* Get the number of elements in the mask of a ShuffleVector instruction.
|
||||
*/
|
||||
unsigned LLVMGetNumMaskElements(LLVMValueRef ShuffleVectorInst);
|
||||
|
||||
/**
|
||||
* \returns a constant that specifies that the result of a \c ShuffleVectorInst
|
||||
* is undefined.
|
||||
*/
|
||||
int LLVMGetUndefMaskElem(void);
|
||||
|
||||
/**
|
||||
* Get the mask value at position Elt in the mask of a ShuffleVector
|
||||
* instruction.
|
||||
*
|
||||
* \Returns the result of \c LLVMGetUndefMaskElem() if the mask value is undef
|
||||
* at that position.
|
||||
*/
|
||||
int LLVMGetMaskValue(LLVMValueRef ShuffleVectorInst, unsigned Elt);
|
||||
|
||||
LLVMBool LLVMIsAtomicSingleThread(LLVMValueRef AtomicInst);
|
||||
void LLVMSetAtomicSingleThread(LLVMValueRef AtomicInst, LLVMBool SingleThread);
|
||||
|
||||
@@ -4072,8 +4117,6 @@ LLVMBool LLVMIsMultithreaded(void);
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif /* LLVM_C_CORE_H */
|
||||
|
||||
Reference in New Issue
Block a user