mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 23:58:50 +00:00
Update Windows to LLVM 12.0.1
This commit is contained in:
+57
-9
@@ -15,9 +15,9 @@
|
||||
#ifndef LLVM_C_CORE_H
|
||||
#define LLVM_C_CORE_H
|
||||
|
||||
#include "ErrorHandling.h"
|
||||
#include "ExternC.h"
|
||||
#include "Types.h"
|
||||
#include "llvm-c/ErrorHandling.h"
|
||||
#include "llvm-c/ExternC.h"
|
||||
#include "llvm-c/Types.h"
|
||||
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
@@ -162,7 +162,8 @@ typedef enum {
|
||||
LLVMX86_MMXTypeKind, /**< X86 MMX */
|
||||
LLVMTokenTypeKind, /**< Tokens */
|
||||
LLVMScalableVectorTypeKind, /**< Scalable SIMD vector type */
|
||||
LLVMBFloatTypeKind /**< 16 bit brain floating point type */
|
||||
LLVMBFloatTypeKind, /**< 16 bit brain floating point type */
|
||||
LLVMX86_AMXTypeKind /**< X86 AMX */
|
||||
} LLVMTypeKind;
|
||||
|
||||
typedef enum {
|
||||
@@ -281,6 +282,7 @@ typedef enum {
|
||||
LLVMInlineAsmValueKind,
|
||||
|
||||
LLVMInstructionValueKind,
|
||||
LLVMPoisonValueValueKind
|
||||
} LLVMValueKind;
|
||||
|
||||
typedef enum {
|
||||
@@ -602,6 +604,17 @@ unsigned LLVMGetEnumAttributeKind(LLVMAttributeRef A);
|
||||
*/
|
||||
uint64_t LLVMGetEnumAttributeValue(LLVMAttributeRef A);
|
||||
|
||||
/**
|
||||
* Create a type attribute
|
||||
*/
|
||||
LLVMAttributeRef LLVMCreateTypeAttribute(LLVMContextRef C, unsigned KindID,
|
||||
LLVMTypeRef type_ref);
|
||||
|
||||
/**
|
||||
* Get the type attribute's value.
|
||||
*/
|
||||
LLVMTypeRef LLVMGetTypeAttributeValue(LLVMAttributeRef A);
|
||||
|
||||
/**
|
||||
* Create a string attribute.
|
||||
*/
|
||||
@@ -624,6 +637,12 @@ const char *LLVMGetStringAttributeValue(LLVMAttributeRef A, unsigned *Length);
|
||||
*/
|
||||
LLVMBool LLVMIsEnumAttribute(LLVMAttributeRef A);
|
||||
LLVMBool LLVMIsStringAttribute(LLVMAttributeRef A);
|
||||
LLVMBool LLVMIsTypeAttribute(LLVMAttributeRef A);
|
||||
|
||||
/**
|
||||
* Obtain a Type from a context by its registered name.
|
||||
*/
|
||||
LLVMTypeRef LLVMGetTypeByName2(LLVMContextRef C, const char *Name);
|
||||
|
||||
/**
|
||||
* @}
|
||||
@@ -866,9 +885,7 @@ LLVMValueRef LLVMGetInlineAsm(LLVMTypeRef Ty,
|
||||
*/
|
||||
LLVMContextRef LLVMGetModuleContext(LLVMModuleRef M);
|
||||
|
||||
/**
|
||||
* Obtain a Type from a module by its registered name.
|
||||
*/
|
||||
/** Deprecated: Use LLVMGetTypeByName2 instead. */
|
||||
LLVMTypeRef LLVMGetTypeByName(LLVMModuleRef M, const char *Name);
|
||||
|
||||
/**
|
||||
@@ -1444,9 +1461,21 @@ unsigned LLVMGetPointerAddressSpace(LLVMTypeRef PointerTy);
|
||||
LLVMTypeRef LLVMVectorType(LLVMTypeRef ElementType, unsigned ElementCount);
|
||||
|
||||
/**
|
||||
* Obtain the number of elements in a vector type.
|
||||
* Create a vector type that contains a defined type and has a scalable
|
||||
* number of elements.
|
||||
*
|
||||
* This only works on types that represent vectors.
|
||||
* The created type will exist in the context thats its element type
|
||||
* exists in.
|
||||
*
|
||||
* @see llvm::ScalableVectorType::get()
|
||||
*/
|
||||
LLVMTypeRef LLVMScalableVectorType(LLVMTypeRef ElementType,
|
||||
unsigned ElementCount);
|
||||
|
||||
/**
|
||||
* Obtain the (possibly scalable) number of elements in a vector type.
|
||||
*
|
||||
* This only works on types that represent vectors (fixed or scalable).
|
||||
*
|
||||
* @see llvm::VectorType::getNumElements()
|
||||
*/
|
||||
@@ -1477,6 +1506,11 @@ LLVMTypeRef LLVMLabelTypeInContext(LLVMContextRef C);
|
||||
*/
|
||||
LLVMTypeRef LLVMX86MMXTypeInContext(LLVMContextRef C);
|
||||
|
||||
/**
|
||||
* Create a X86 AMX type in a context.
|
||||
*/
|
||||
LLVMTypeRef LLVMX86AMXTypeInContext(LLVMContextRef C);
|
||||
|
||||
/**
|
||||
* Create a token type in a context.
|
||||
*/
|
||||
@@ -1494,6 +1528,7 @@ LLVMTypeRef LLVMMetadataTypeInContext(LLVMContextRef C);
|
||||
LLVMTypeRef LLVMVoidType(void);
|
||||
LLVMTypeRef LLVMLabelType(void);
|
||||
LLVMTypeRef LLVMX86MMXType(void);
|
||||
LLVMTypeRef LLVMX86AMXType(void);
|
||||
|
||||
/**
|
||||
* @}
|
||||
@@ -1550,6 +1585,7 @@ LLVMTypeRef LLVMX86MMXType(void);
|
||||
macro(Function) \
|
||||
macro(GlobalVariable) \
|
||||
macro(UndefValue) \
|
||||
macro(PoisonValue) \
|
||||
macro(Instruction) \
|
||||
macro(UnaryOperator) \
|
||||
macro(BinaryOperator) \
|
||||
@@ -1683,6 +1719,11 @@ LLVMBool LLVMIsConstant(LLVMValueRef Val);
|
||||
*/
|
||||
LLVMBool LLVMIsUndef(LLVMValueRef Val);
|
||||
|
||||
/**
|
||||
* Determine whether a value instance is poisonous.
|
||||
*/
|
||||
LLVMBool LLVMIsPoison(LLVMValueRef Val);
|
||||
|
||||
/**
|
||||
* Convert value instances between types.
|
||||
*
|
||||
@@ -1841,6 +1882,13 @@ LLVMValueRef LLVMConstAllOnes(LLVMTypeRef Ty);
|
||||
*/
|
||||
LLVMValueRef LLVMGetUndef(LLVMTypeRef Ty);
|
||||
|
||||
/**
|
||||
* Obtain a constant value referring to a poison value of a type.
|
||||
*
|
||||
* @see llvm::PoisonValue::get()
|
||||
*/
|
||||
LLVMValueRef LLVMGetPoison(LLVMTypeRef Ty);
|
||||
|
||||
/**
|
||||
* Determine whether a value instance is null.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user