mirror of
https://github.com/odin-lang/Odin.git
synced 2026-02-14 23:33:15 +00:00
Update llvm-c headers for Version 11.0.1
This commit is contained in:
@@ -19,11 +19,10 @@
|
||||
#ifndef LLVM_C_ANALYSIS_H
|
||||
#define LLVM_C_ANALYSIS_H
|
||||
|
||||
#include "ExternC.h"
|
||||
#include "Types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* @defgroup LLVMCAnalysis Analysis
|
||||
@@ -58,8 +57,6 @@ void LLVMViewFunctionCFGOnly(LLVMValueRef Fn);
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
@@ -19,11 +19,10 @@
|
||||
#ifndef LLVM_C_BITREADER_H
|
||||
#define LLVM_C_BITREADER_H
|
||||
|
||||
#include "ExternC.h"
|
||||
#include "Types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* @defgroup LLVMCBitReader Bit Reader
|
||||
@@ -78,8 +77,6 @@ LLVMBool LLVMGetBitcodeModule2(LLVMMemoryBufferRef MemBuf, LLVMModuleRef *OutM);
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
@@ -19,11 +19,10 @@
|
||||
#ifndef LLVM_C_BITWRITER_H
|
||||
#define LLVM_C_BITWRITER_H
|
||||
|
||||
#include "ExternC.h"
|
||||
#include "Types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* @defgroup LLVMCBitWriter Bit Writer
|
||||
@@ -52,8 +51,6 @@ LLVMMemoryBufferRef LLVMWriteBitcodeToMemoryBuffer(LLVMModuleRef M);
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
@@ -14,11 +14,10 @@
|
||||
#ifndef LLVM_C_COMDAT_H
|
||||
#define LLVM_C_COMDAT_H
|
||||
|
||||
#include "ExternC.h"
|
||||
#include "Types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
typedef enum {
|
||||
LLVMAnyComdatSelectionKind, ///< The linker may choose any COMDAT.
|
||||
@@ -68,8 +67,6 @@ LLVMComdatSelectionKind LLVMGetComdatSelectionKind(LLVMComdatRef C);
|
||||
*/
|
||||
void LLVMSetComdatSelectionKind(LLVMComdatRef C, LLVMComdatSelectionKind Kind);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
@@ -66,16 +66,16 @@
|
||||
#define LLVM_USE_PERF 0
|
||||
|
||||
/* Major version of the LLVM API */
|
||||
#define LLVM_VERSION_MAJOR 9
|
||||
#define LLVM_VERSION_MAJOR 11
|
||||
|
||||
/* Minor version of the LLVM API */
|
||||
#define LLVM_VERSION_MINOR 0
|
||||
|
||||
/* Patch version of the LLVM API */
|
||||
#define LLVM_VERSION_PATCH 0
|
||||
#define LLVM_VERSION_PATCH 1
|
||||
|
||||
/* LLVM version string */
|
||||
#define LLVM_VERSION_STRING "9.0.0"
|
||||
#define LLVM_VERSION_STRING "11.0.1"
|
||||
|
||||
/* Whether LLVM records statistics for use with GetStatistics(),
|
||||
* PrintStatistics() or PrintStatisticsJSON()
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -24,12 +24,6 @@
|
||||
#ifndef LLVM_C_DATATYPES_H
|
||||
#define LLVM_C_DATATYPES_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
#include <cmath>
|
||||
#else
|
||||
#include <math.h>
|
||||
#endif
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdint.h>
|
||||
|
||||
|
||||
@@ -17,10 +17,9 @@
|
||||
#define LLVM_C_DEBUGINFO_H
|
||||
|
||||
#include "Core.h"
|
||||
#include "ExternC.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* Debug info flags.
|
||||
@@ -32,7 +31,7 @@ typedef enum {
|
||||
LLVMDIFlagPublic = 3,
|
||||
LLVMDIFlagFwdDecl = 1 << 2,
|
||||
LLVMDIFlagAppleBlock = 1 << 3,
|
||||
LLVMDIFlagBlockByrefStruct = 1 << 4,
|
||||
LLVMDIFlagReservedBit4 = 1 << 4,
|
||||
LLVMDIFlagVirtual = 1 << 5,
|
||||
LLVMDIFlagArtificial = 1 << 6,
|
||||
LLVMDIFlagExplicit = 1 << 7,
|
||||
@@ -169,6 +168,19 @@ typedef unsigned LLVMMetadataKind;
|
||||
*/
|
||||
typedef unsigned LLVMDWARFTypeEncoding;
|
||||
|
||||
/**
|
||||
* Describes the kind of macro declaration used for LLVMDIBuilderCreateMacro.
|
||||
* @see llvm::dwarf::MacinfoRecordType
|
||||
* @note Values are from DW_MACINFO_* constants in the DWARF specification.
|
||||
*/
|
||||
typedef enum {
|
||||
LLVMDWARFMacinfoRecordTypeDefine = 0x01,
|
||||
LLVMDWARFMacinfoRecordTypeMacro = 0x02,
|
||||
LLVMDWARFMacinfoRecordTypeStartFile = 0x03,
|
||||
LLVMDWARFMacinfoRecordTypeEndFile = 0x04,
|
||||
LLVMDWARFMacinfoRecordTypeVendorExt = 0xff
|
||||
} LLVMDWARFMacinfoRecordType;
|
||||
|
||||
/**
|
||||
* The current debug metadata version number.
|
||||
*/
|
||||
@@ -238,6 +250,10 @@ void LLVMDIBuilderFinalize(LLVMDIBuilderRef Builder);
|
||||
* \param SplitDebugInlining Whether to emit inline debug info.
|
||||
* \param DebugInfoForProfiling Whether to emit extra debug info for
|
||||
* profile collection.
|
||||
* \param SysRoot The Clang system root (value of -isysroot).
|
||||
* \param SysRootLen The length of the C string passed to \c SysRoot.
|
||||
* \param SDK The SDK. On Darwin, the last component of the sysroot.
|
||||
* \param SDKLen The length of the C string passed to \c SDK.
|
||||
*/
|
||||
LLVMMetadataRef LLVMDIBuilderCreateCompileUnit(
|
||||
LLVMDIBuilderRef Builder, LLVMDWARFSourceLanguage Lang,
|
||||
@@ -245,7 +261,8 @@ LLVMMetadataRef LLVMDIBuilderCreateCompileUnit(
|
||||
LLVMBool isOptimized, const char *Flags, size_t FlagsLen,
|
||||
unsigned RuntimeVer, const char *SplitName, size_t SplitNameLen,
|
||||
LLVMDWARFEmissionKind Kind, unsigned DWOId, LLVMBool SplitDebugInlining,
|
||||
LLVMBool DebugInfoForProfiling);
|
||||
LLVMBool DebugInfoForProfiling, const char *SysRoot, size_t SysRootLen,
|
||||
const char *SDK, size_t SDKLen);
|
||||
|
||||
/**
|
||||
* Create a file descriptor to hold debugging information for a file.
|
||||
@@ -271,15 +288,15 @@ LLVMDIBuilderCreateFile(LLVMDIBuilderRef Builder, const char *Filename,
|
||||
* \param ConfigMacrosLen The length of the C string passed to \c ConfigMacros.
|
||||
* \param IncludePath The path to the module map file.
|
||||
* \param IncludePathLen The length of the C string passed to \c IncludePath.
|
||||
* \param ISysRoot The Clang system root (value of -isysroot).
|
||||
* \param ISysRootLen The length of the C string passed to \c ISysRoot.
|
||||
* \param APINotesFile The path to an API notes file for the module.
|
||||
* \param APINotesFileLen The length of the C string passed to \c APINotestFile.
|
||||
*/
|
||||
LLVMMetadataRef
|
||||
LLVMDIBuilderCreateModule(LLVMDIBuilderRef Builder, LLVMMetadataRef ParentScope,
|
||||
const char *Name, size_t NameLen,
|
||||
const char *ConfigMacros, size_t ConfigMacrosLen,
|
||||
const char *IncludePath, size_t IncludePathLen,
|
||||
const char *ISysRoot, size_t ISysRootLen);
|
||||
const char *APINotesFile, size_t APINotesFileLen);
|
||||
|
||||
/**
|
||||
* Creates a new descriptor for a namespace with the specified parent scope.
|
||||
@@ -521,6 +538,38 @@ LLVMDIBuilderCreateSubroutineType(LLVMDIBuilderRef Builder,
|
||||
unsigned NumParameterTypes,
|
||||
LLVMDIFlags Flags);
|
||||
|
||||
/**
|
||||
* Create debugging information entry for a macro.
|
||||
* @param Builder The DIBuilder.
|
||||
* @param ParentMacroFile Macro parent (could be NULL).
|
||||
* @param Line Source line number where the macro is defined.
|
||||
* @param RecordType DW_MACINFO_define or DW_MACINFO_undef.
|
||||
* @param Name Macro name.
|
||||
* @param NameLen Macro name length.
|
||||
* @param Value Macro value.
|
||||
* @param ValueLen Macro value length.
|
||||
*/
|
||||
LLVMMetadataRef LLVMDIBuilderCreateMacro(LLVMDIBuilderRef Builder,
|
||||
LLVMMetadataRef ParentMacroFile,
|
||||
unsigned Line,
|
||||
LLVMDWARFMacinfoRecordType RecordType,
|
||||
const char *Name, size_t NameLen,
|
||||
const char *Value, size_t ValueLen);
|
||||
|
||||
/**
|
||||
* Create debugging information temporary entry for a macro file.
|
||||
* List of macro node direct children will be calculated by DIBuilder,
|
||||
* using the \p ParentMacroFile relationship.
|
||||
* @param Builder The DIBuilder.
|
||||
* @param ParentMacroFile Macro parent (could be NULL).
|
||||
* @param Line Source line number where the macro file is included.
|
||||
* @param File File descriptor containing the name of the macro file.
|
||||
*/
|
||||
LLVMMetadataRef
|
||||
LLVMDIBuilderCreateTempMacroFile(LLVMDIBuilderRef Builder,
|
||||
LLVMMetadataRef ParentMacroFile, unsigned Line,
|
||||
LLVMMetadataRef File);
|
||||
|
||||
/**
|
||||
* Create debugging information entry for an enumerator.
|
||||
* @param Builder The DIBuilder.
|
||||
@@ -830,7 +879,7 @@ LLVMMetadataRef
|
||||
LLVMDIBuilderCreateTypedef(LLVMDIBuilderRef Builder, LLVMMetadataRef Type,
|
||||
const char *Name, size_t NameLen,
|
||||
LLVMMetadataRef File, unsigned LineNo,
|
||||
LLVMMetadataRef Scope);
|
||||
LLVMMetadataRef Scope, uint32_t AlignInBits);
|
||||
|
||||
/**
|
||||
* Create debugging information entry to establish inheritance relationship
|
||||
@@ -1308,8 +1357,6 @@ void LLVMInstructionSetDebugLoc(LLVMValueRef Inst, LLVMMetadataRef Loc);
|
||||
*/
|
||||
LLVMMetadataKind LLVMGetMetadataKind(LLVMMetadataRef Metadata);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* end extern "C" */
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#define LLVM_C_DISASSEMBLER_H
|
||||
|
||||
#include "DisassemblerTypes.h"
|
||||
#include "ExternC.h"
|
||||
|
||||
/**
|
||||
* @defgroup LLVMCDisassembler Disassembler
|
||||
@@ -24,9 +25,7 @@
|
||||
* @{
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* !defined(__cplusplus) */
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* Create a disassembler for the TripleName. Symbolic disassembly is supported
|
||||
@@ -106,8 +105,6 @@ size_t LLVMDisasmInstruction(LLVMDisasmContextRef DC, uint8_t *Bytes,
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* !defined(__cplusplus) */
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif /* LLVM_C_DISASSEMBLER_H */
|
||||
|
||||
@@ -14,9 +14,9 @@
|
||||
#ifndef LLVM_C_ERROR_H
|
||||
#define LLVM_C_ERROR_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#include "ExternC.h"
|
||||
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
#define LLVMErrorSuccess 0
|
||||
|
||||
@@ -62,8 +62,6 @@ void LLVMDisposeErrorMessage(char *ErrMsg);
|
||||
*/
|
||||
LLVMErrorTypeId LLVMGetStringErrorTypeId(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
@@ -14,9 +14,9 @@
|
||||
#ifndef LLVM_C_ERROR_HANDLING_H
|
||||
#define LLVM_C_ERROR_HANDLING_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#include "ExternC.h"
|
||||
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
typedef void (*LLVMFatalErrorHandler)(const char *Reason);
|
||||
|
||||
@@ -42,8 +42,6 @@ void LLVMResetFatalErrorHandler(void);
|
||||
*/
|
||||
void LLVMEnablePrettyStackTrace(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
@@ -19,13 +19,12 @@
|
||||
#ifndef LLVM_C_EXECUTIONENGINE_H
|
||||
#define LLVM_C_EXECUTIONENGINE_H
|
||||
|
||||
#include "ExternC.h"
|
||||
#include "Target.h"
|
||||
#include "TargetMachine.h"
|
||||
#include "Types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* @defgroup LLVMCExecutionEngine Execution Engine
|
||||
@@ -150,6 +149,11 @@ uint64_t LLVMGetGlobalValueAddress(LLVMExecutionEngineRef EE, const char *Name);
|
||||
|
||||
uint64_t LLVMGetFunctionAddress(LLVMExecutionEngineRef EE, const char *Name);
|
||||
|
||||
/// Returns true on error, false on success. If true is returned then the error
|
||||
/// message is copied to OutStr and cleared in the ExecutionEngine instance.
|
||||
LLVMBool LLVMExecutionEngineGetErrMsg(LLVMExecutionEngineRef EE,
|
||||
char **OutError);
|
||||
|
||||
/*===-- Operations on memory managers -------------------------------------===*/
|
||||
|
||||
typedef uint8_t *(*LLVMMemoryManagerAllocateCodeSectionCallback)(
|
||||
@@ -193,8 +197,6 @@ LLVMJITEventListenerRef LLVMCreatePerfJITEventListener(void);
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* defined(__cplusplus) */
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
@@ -14,11 +14,10 @@
|
||||
#ifndef LLVM_C_IRREADER_H
|
||||
#define LLVM_C_IRREADER_H
|
||||
|
||||
#include "ExternC.h"
|
||||
#include "Types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* Read LLVM IR from a memory buffer and convert it into an in-memory Module
|
||||
@@ -33,8 +32,6 @@ LLVMBool LLVMParseIRInContext(LLVMContextRef ContextRef,
|
||||
LLVMMemoryBufferRef MemBuf, LLVMModuleRef *OutM,
|
||||
char **OutMessage);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
@@ -16,11 +16,10 @@
|
||||
#ifndef LLVM_C_INITIALIZATION_H
|
||||
#define LLVM_C_INITIALIZATION_H
|
||||
|
||||
#include "ExternC.h"
|
||||
#include "Types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* @defgroup LLVMCInitialization Initialization Routines
|
||||
@@ -49,8 +48,6 @@ void LLVMInitializeTarget(LLVMPassRegistryRef R);
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
@@ -15,9 +15,9 @@
|
||||
#ifndef LLVM_C_LINKTIMEOPTIMIZER_H
|
||||
#define LLVM_C_LINKTIMEOPTIMIZER_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#include "ExternC.h"
|
||||
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* @defgroup LLVMCLinkTimeOptimizer Link Time Optimization
|
||||
@@ -61,8 +61,6 @@ extern "C" {
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
@@ -14,11 +14,10 @@
|
||||
#ifndef LLVM_C_LINKER_H
|
||||
#define LLVM_C_LINKER_H
|
||||
|
||||
#include "ExternC.h"
|
||||
#include "Types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/* This enum is provided for backwards-compatibility only. It has no effect. */
|
||||
typedef enum {
|
||||
@@ -34,8 +33,6 @@ typedef enum {
|
||||
*/
|
||||
LLVMBool LLVMLinkModules2(LLVMModuleRef Dest, LLVMModuleRef Src);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
@@ -19,12 +19,11 @@
|
||||
#ifndef LLVM_C_OBJECT_H
|
||||
#define LLVM_C_OBJECT_H
|
||||
|
||||
#include "ExternC.h"
|
||||
#include "Types.h"
|
||||
#include "Config/llvm-config.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* @defgroup LLVMCObject Object file reading and writing
|
||||
@@ -226,8 +225,6 @@ LLVMBool LLVMIsSymbolIteratorAtEnd(LLVMObjectFileRef ObjectFile,
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* defined(__cplusplus) */
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
@@ -23,12 +23,11 @@
|
||||
#define LLVM_C_ORCBINDINGS_H
|
||||
|
||||
#include "Error.h"
|
||||
#include "ExternC.h"
|
||||
#include "Object.h"
|
||||
#include "TargetMachine.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
typedef struct LLVMOrcOpaqueJITStack *LLVMOrcJITStackRef;
|
||||
typedef uint64_t LLVMOrcModuleHandle;
|
||||
@@ -165,8 +164,6 @@ void LLVMOrcRegisterJITEventListener(LLVMOrcJITStackRef JITStack, LLVMJITEventLi
|
||||
*/
|
||||
void LLVMOrcUnregisterJITEventListener(LLVMOrcJITStackRef JITStack, LLVMJITEventListenerRef L);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* extern "C" */
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif /* LLVM_C_ORCBINDINGS_H */
|
||||
|
||||
@@ -15,14 +15,16 @@
|
||||
#ifndef LLVM_C_REMARKS_H
|
||||
#define LLVM_C_REMARKS_H
|
||||
|
||||
#include "ExternC.h"
|
||||
#include "Types.h"
|
||||
#ifdef __cplusplus
|
||||
#include <cstddef>
|
||||
extern "C" {
|
||||
#else
|
||||
#include <stddef.h>
|
||||
#endif /* !defined(__cplusplus) */
|
||||
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* @defgroup LLVMCREMARKS Remarks
|
||||
* @ingroup LLVMC
|
||||
@@ -30,7 +32,8 @@ extern "C" {
|
||||
* @{
|
||||
*/
|
||||
|
||||
#define REMARKS_API_VERSION 0
|
||||
// 0 -> 1: Bitstream remarks support.
|
||||
#define REMARKS_API_VERSION 1
|
||||
|
||||
/**
|
||||
* The type of the emitted remark.
|
||||
@@ -240,6 +243,20 @@ typedef struct LLVMRemarkOpaqueParser *LLVMRemarkParserRef;
|
||||
extern LLVMRemarkParserRef LLVMRemarkParserCreateYAML(const void *Buf,
|
||||
uint64_t Size);
|
||||
|
||||
/**
|
||||
* Creates a remark parser that can be used to parse the buffer located in \p
|
||||
* Buf of size \p Size bytes.
|
||||
*
|
||||
* \p Buf cannot be `NULL`.
|
||||
*
|
||||
* This function should be paired with LLVMRemarkParserDispose() to avoid
|
||||
* leaking resources.
|
||||
*
|
||||
* \since REMARKS_API_VERSION=1
|
||||
*/
|
||||
extern LLVMRemarkParserRef LLVMRemarkParserCreateBitstream(const void *Buf,
|
||||
uint64_t Size);
|
||||
|
||||
/**
|
||||
* Returns the next remark in the file.
|
||||
*
|
||||
@@ -322,8 +339,6 @@ extern uint32_t LLVMRemarkVersion(void);
|
||||
* @} // endgoup LLVMCREMARKS
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* !defined(__cplusplus) */
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif /* LLVM_C_REMARKS_H */
|
||||
|
||||
@@ -15,11 +15,10 @@
|
||||
#define LLVM_C_SUPPORT_H
|
||||
|
||||
#include "DataTypes.h"
|
||||
#include "ExternC.h"
|
||||
#include "Types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* This function permanently loads the dynamic library at the given path.
|
||||
@@ -58,8 +57,6 @@ void *LLVMSearchForAddressOfSymbol(const char *symbolName);
|
||||
*/
|
||||
void LLVMAddSymbol(const char *symbolName, void *symbolValue);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
@@ -19,12 +19,11 @@
|
||||
#ifndef LLVM_C_TARGET_H
|
||||
#define LLVM_C_TARGET_H
|
||||
|
||||
#include "ExternC.h"
|
||||
#include "Types.h"
|
||||
#include "Config/llvm-config.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* @defgroup LLVMCTarget Target information
|
||||
@@ -288,8 +287,6 @@ unsigned long long LLVMOffsetOfElement(LLVMTargetDataRef TD,
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* defined(__cplusplus) */
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
@@ -19,12 +19,12 @@
|
||||
#ifndef LLVM_C_TARGETMACHINE_H
|
||||
#define LLVM_C_TARGETMACHINE_H
|
||||
|
||||
#include "ExternC.h"
|
||||
#include "Target.h"
|
||||
#include "Types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
typedef struct LLVMOpaqueTargetMachine *LLVMTargetMachineRef;
|
||||
typedef struct LLVMTarget *LLVMTargetRef;
|
||||
|
||||
@@ -156,8 +156,6 @@ char* LLVMGetHostCPUFeatures(void);
|
||||
/** Adds the target-specific analysis passes to the pass manager. */
|
||||
void LLVMAddAnalysisPasses(LLVMTargetMachineRef T, LLVMPassManagerRef PM);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
@@ -15,11 +15,10 @@
|
||||
#ifndef LLVM_C_TRANSFORMS_AGGRESSIVEINSTCOMBINE_H
|
||||
#define LLVM_C_TRANSFORMS_AGGRESSIVEINSTCOMBINE_H
|
||||
|
||||
#include "../ExternC.h"
|
||||
#include "../Types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* @defgroup LLVMCTransformsAggressiveInstCombine Aggressive Instruction Combining transformations
|
||||
@@ -35,9 +34,7 @@ void LLVMAddAggressiveInstCombinerPass(LLVMPassManagerRef PM);
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* defined(__cplusplus) */
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -19,11 +19,11 @@
|
||||
#ifndef LLVM_C_TRANSFORMS_COROUTINES_H
|
||||
#define LLVM_C_TRANSFORMS_COROUTINES_H
|
||||
|
||||
#include "../ExternC.h"
|
||||
#include "../Types.h"
|
||||
#include "PassManagerBuilder.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* @defgroup LLVMCTransformsCoroutines Coroutine transformations
|
||||
@@ -32,24 +32,25 @@ extern "C" {
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** See llvm::createCoroEarlyPass function. */
|
||||
/** See llvm::createCoroEarlyLegacyPass function. */
|
||||
void LLVMAddCoroEarlyPass(LLVMPassManagerRef PM);
|
||||
|
||||
/** See llvm::createCoroSplitPass function. */
|
||||
/** See llvm::createCoroSplitLegacyPass function. */
|
||||
void LLVMAddCoroSplitPass(LLVMPassManagerRef PM);
|
||||
|
||||
/** See llvm::createCoroElidePass function. */
|
||||
/** See llvm::createCoroElideLegacyPass function. */
|
||||
void LLVMAddCoroElidePass(LLVMPassManagerRef PM);
|
||||
|
||||
/** See llvm::createCoroCleanupPass function. */
|
||||
/** See llvm::createCoroCleanupLegacyPass function. */
|
||||
void LLVMAddCoroCleanupPass(LLVMPassManagerRef PM);
|
||||
|
||||
/** See llvm::addCoroutinePassesToExtensionPoints. */
|
||||
void LLVMPassManagerBuilderAddCoroutinePassesToExtensionPoints(LLVMPassManagerBuilderRef PMB);
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* defined(__cplusplus) */
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
@@ -15,11 +15,10 @@
|
||||
#ifndef LLVM_C_TRANSFORMS_IPO_H
|
||||
#define LLVM_C_TRANSFORMS_IPO_H
|
||||
|
||||
#include "../ExternC.h"
|
||||
#include "../Types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* @defgroup LLVMCTransformsIPO Interprocedural transformations
|
||||
@@ -34,6 +33,9 @@ void LLVMAddArgumentPromotionPass(LLVMPassManagerRef PM);
|
||||
/** See llvm::createConstantMergePass function. */
|
||||
void LLVMAddConstantMergePass(LLVMPassManagerRef PM);
|
||||
|
||||
/** See llvm::createMergeFunctionsPass function. */
|
||||
void LLVMAddMergeFunctionsPass(LLVMPassManagerRef PM);
|
||||
|
||||
/** See llvm::createCalledValuePropagationPass function. */
|
||||
void LLVMAddCalledValuePropagationPass(LLVMPassManagerRef PM);
|
||||
|
||||
@@ -67,6 +69,21 @@ void LLVMAddIPSCCPPass(LLVMPassManagerRef PM);
|
||||
/** See llvm::createInternalizePass function. */
|
||||
void LLVMAddInternalizePass(LLVMPassManagerRef, unsigned AllButMain);
|
||||
|
||||
/**
|
||||
* Create and add the internalize pass to the given pass manager with the
|
||||
* provided preservation callback.
|
||||
*
|
||||
* The context parameter is forwarded to the callback on each invocation.
|
||||
* As such, it is the responsibility of the caller to extend its lifetime
|
||||
* until execution of this pass has finished.
|
||||
*
|
||||
* @see llvm::createInternalizePass function.
|
||||
*/
|
||||
void LLVMAddInternalizePassWithMustPreservePredicate(
|
||||
LLVMPassManagerRef PM,
|
||||
void *Context,
|
||||
LLVMBool (*MustPreserve)(LLVMValueRef, void *));
|
||||
|
||||
/** See llvm::createStripDeadPrototypesPass function. */
|
||||
void LLVMAddStripDeadPrototypesPass(LLVMPassManagerRef PM);
|
||||
|
||||
@@ -77,8 +94,6 @@ void LLVMAddStripSymbolsPass(LLVMPassManagerRef PM);
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* defined(__cplusplus) */
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
@@ -15,11 +15,10 @@
|
||||
#ifndef LLVM_C_TRANSFORMS_INSTCOMBINE_H
|
||||
#define LLVM_C_TRANSFORMS_INSTCOMBINE_H
|
||||
|
||||
#include "../ExternC.h"
|
||||
#include "../Types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* @defgroup LLVMCTransformsInstCombine Instruction Combining transformations
|
||||
@@ -35,9 +34,7 @@ void LLVMAddInstructionCombiningPass(LLVMPassManagerRef PM);
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* defined(__cplusplus) */
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -14,13 +14,12 @@
|
||||
#ifndef LLVM_C_TRANSFORMS_PASSMANAGERBUILDER_H
|
||||
#define LLVM_C_TRANSFORMS_PASSMANAGERBUILDER_H
|
||||
|
||||
#include "../ExternC.h"
|
||||
#include "../Types.h"
|
||||
|
||||
typedef struct LLVMOpaquePassManagerBuilder *LLVMPassManagerBuilderRef;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* @defgroup LLVMCTransformsPassManagerBuilder Pass manager builder
|
||||
@@ -83,8 +82,6 @@ void LLVMPassManagerBuilderPopulateLTOPassManager(LLVMPassManagerBuilderRef PMB,
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
@@ -19,11 +19,10 @@
|
||||
#ifndef LLVM_C_TRANSFORMS_SCALAR_H
|
||||
#define LLVM_C_TRANSFORMS_SCALAR_H
|
||||
|
||||
#include "../ExternC.h"
|
||||
#include "../Types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* @defgroup LLVMCTransformsScalar Scalar transformations
|
||||
@@ -35,6 +34,9 @@ extern "C" {
|
||||
/** See llvm::createAggressiveDCEPass function. */
|
||||
void LLVMAddAggressiveDCEPass(LLVMPassManagerRef PM);
|
||||
|
||||
/** See llvm::createDeadCodeEliminationPass function. */
|
||||
void LLVMAddDCEPass(LLVMPassManagerRef PM);
|
||||
|
||||
/** See llvm::createBitTrackingDCEPass function. */
|
||||
void LLVMAddBitTrackingDCEPass(LLVMPassManagerRef PM);
|
||||
|
||||
@@ -144,6 +146,9 @@ void LLVMAddEarlyCSEMemSSAPass(LLVMPassManagerRef PM);
|
||||
/** See llvm::createLowerExpectIntrinsicPass function */
|
||||
void LLVMAddLowerExpectIntrinsicPass(LLVMPassManagerRef PM);
|
||||
|
||||
/** See llvm::createLowerConstantIntrinsicsPass function */
|
||||
void LLVMAddLowerConstantIntrinsicsPass(LLVMPassManagerRef PM);
|
||||
|
||||
/** See llvm::createTypeBasedAliasAnalysisPass function */
|
||||
void LLVMAddTypeBasedAliasAnalysisPass(LLVMPassManagerRef PM);
|
||||
|
||||
@@ -160,8 +165,6 @@ void LLVMAddUnifyFunctionExitNodesPass(LLVMPassManagerRef PM);
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* defined(__cplusplus) */
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
@@ -19,11 +19,10 @@
|
||||
#ifndef LLVM_C_TRANSFORMS_UTILS_H
|
||||
#define LLVM_C_TRANSFORMS_UTILS_H
|
||||
|
||||
#include "../ExternC.h"
|
||||
#include "../Types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* @defgroup LLVMCTransformsUtils Transformation Utilities
|
||||
@@ -45,9 +44,7 @@ void LLVMAddAddDiscriminatorsPass(LLVMPassManagerRef PM);
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* defined(__cplusplus) */
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -20,11 +20,10 @@
|
||||
#ifndef LLVM_C_TRANSFORMS_VECTORIZE_H
|
||||
#define LLVM_C_TRANSFORMS_VECTORIZE_H
|
||||
|
||||
#include "../ExternC.h"
|
||||
#include "../Types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* @defgroup LLVMCTransformsVectorize Vectorization transformations
|
||||
@@ -43,8 +42,6 @@ void LLVMAddSLPVectorizePass(LLVMPassManagerRef PM);
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* defined(__cplusplus) */
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
@@ -15,10 +15,9 @@
|
||||
#define LLVM_C_TYPES_H
|
||||
|
||||
#include "DataTypes.h"
|
||||
#include "ExternC.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* @defgroup LLVMCSupportTypes Types and Enumerations
|
||||
@@ -172,8 +171,6 @@ typedef struct LLVMOpaqueBinary *LLVMBinaryRef;
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif
|
||||
|
||||
132
src/llvm-c/lto.h
132
src/llvm-c/lto.h
@@ -16,6 +16,8 @@
|
||||
#ifndef LLVM_C_LTO_H
|
||||
#define LLVM_C_LTO_H
|
||||
|
||||
#include "ExternC.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
#include <cstddef>
|
||||
#else
|
||||
@@ -44,7 +46,7 @@ typedef bool lto_bool_t;
|
||||
* @{
|
||||
*/
|
||||
|
||||
#define LTO_API_VERSION 24
|
||||
#define LTO_API_VERSION 27
|
||||
|
||||
/**
|
||||
* \since prior to LTO_API_VERSION=3
|
||||
@@ -98,9 +100,7 @@ typedef struct LLVMOpaqueLTOCodeGenerator *lto_code_gen_t;
|
||||
/** opaque reference to a thin code generator */
|
||||
typedef struct LLVMOpaqueThinLTOCodeGenerator *thinlto_code_gen_t;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_BEGIN
|
||||
|
||||
/**
|
||||
* Returns a printable string.
|
||||
@@ -297,6 +297,21 @@ lto_module_get_symbol_attribute(lto_module_t mod, unsigned int index);
|
||||
extern const char*
|
||||
lto_module_get_linkeropts(lto_module_t mod);
|
||||
|
||||
/**
|
||||
* If targeting mach-o on darwin, this function gets the CPU type and subtype
|
||||
* that will end up being encoded in the mach-o header. These are the values
|
||||
* that can be found in mach/machine.h.
|
||||
*
|
||||
* \p out_cputype and \p out_cpusubtype must be non-NULL.
|
||||
*
|
||||
* Returns true on error (check lto_get_error_message() for details).
|
||||
*
|
||||
* \since LTO_API_VERSION=27
|
||||
*/
|
||||
extern lto_bool_t lto_module_get_macho_cputype(lto_module_t mod,
|
||||
unsigned int *out_cputype,
|
||||
unsigned int *out_cpusubtype);
|
||||
|
||||
/**
|
||||
* Diagnostic severity.
|
||||
*
|
||||
@@ -514,11 +529,24 @@ lto_api_version(void);
|
||||
/**
|
||||
* Sets options to help debug codegen bugs.
|
||||
*
|
||||
* This function takes one or more options separated by spaces.
|
||||
* Warning: passing file paths through this function may confuse the argument
|
||||
* parser if the paths contain spaces.
|
||||
*
|
||||
* \since prior to LTO_API_VERSION=3
|
||||
*/
|
||||
extern void
|
||||
lto_codegen_debug_options(lto_code_gen_t cg, const char *);
|
||||
|
||||
/**
|
||||
* Same as the previous function, but takes every option separately through an
|
||||
* array.
|
||||
*
|
||||
* \since prior to LTO_API_VERSION=26
|
||||
*/
|
||||
extern void lto_codegen_debug_options_array(lto_code_gen_t cg,
|
||||
const char *const *, int number);
|
||||
|
||||
/**
|
||||
* Initializes LLVM disassemblers.
|
||||
* FIXME: This doesn't really belong here.
|
||||
@@ -550,6 +578,56 @@ extern void
|
||||
lto_codegen_set_should_embed_uselists(lto_code_gen_t cg,
|
||||
lto_bool_t ShouldEmbedUselists);
|
||||
|
||||
/** Opaque reference to an LTO input file */
|
||||
typedef struct LLVMOpaqueLTOInput *lto_input_t;
|
||||
|
||||
/**
|
||||
* Creates an LTO input file from a buffer. The path
|
||||
* argument is used for diagnotics as this function
|
||||
* otherwise does not know which file the given buffer
|
||||
* is associated with.
|
||||
*
|
||||
* \since LTO_API_VERSION=24
|
||||
*/
|
||||
extern lto_input_t lto_input_create(const void *buffer,
|
||||
size_t buffer_size,
|
||||
const char *path);
|
||||
|
||||
/**
|
||||
* Frees all memory internally allocated by the LTO input file.
|
||||
* Upon return the lto_module_t is no longer valid.
|
||||
*
|
||||
* \since LTO_API_VERSION=24
|
||||
*/
|
||||
extern void lto_input_dispose(lto_input_t input);
|
||||
|
||||
/**
|
||||
* Returns the number of dependent library specifiers
|
||||
* for the given LTO input file.
|
||||
*
|
||||
* \since LTO_API_VERSION=24
|
||||
*/
|
||||
extern unsigned lto_input_get_num_dependent_libraries(lto_input_t input);
|
||||
|
||||
/**
|
||||
* Returns the ith dependent library specifier
|
||||
* for the given LTO input file. The returned
|
||||
* string is not null-terminated.
|
||||
*
|
||||
* \since LTO_API_VERSION=24
|
||||
*/
|
||||
extern const char * lto_input_get_dependent_library(lto_input_t input,
|
||||
size_t index,
|
||||
size_t *size);
|
||||
|
||||
/**
|
||||
* Returns the list of libcall symbols that can be generated by LTO
|
||||
* that might not be visible from the symbol table of bitcode files.
|
||||
*
|
||||
* \since prior to LTO_API_VERSION=25
|
||||
*/
|
||||
extern const char *const *lto_runtime_lib_symbols_list(size_t *size);
|
||||
|
||||
/**
|
||||
* @} // endgoup LLVMCLTO
|
||||
* @defgroup LLVMCTLTO ThinLTO
|
||||
@@ -846,54 +924,10 @@ thinlto_codegen_set_cache_size_megabytes(thinlto_code_gen_t cg,
|
||||
extern void thinlto_codegen_set_cache_size_files(thinlto_code_gen_t cg,
|
||||
unsigned max_size_files);
|
||||
|
||||
/** Opaque reference to an LTO input file */
|
||||
typedef struct LLVMOpaqueLTOInput *lto_input_t;
|
||||
|
||||
/**
|
||||
* Creates an LTO input file from a buffer. The path
|
||||
* argument is used for diagnotics as this function
|
||||
* otherwise does not know which file the given buffer
|
||||
* is associated with.
|
||||
*
|
||||
* \since LTO_API_VERSION=24
|
||||
*/
|
||||
extern lto_input_t lto_input_create(const void *buffer,
|
||||
size_t buffer_size,
|
||||
const char *path);
|
||||
|
||||
/**
|
||||
* Frees all memory internally allocated by the LTO input file.
|
||||
* Upon return the lto_module_t is no longer valid.
|
||||
*
|
||||
* \since LTO_API_VERSION=24
|
||||
*/
|
||||
extern void lto_input_dispose(lto_input_t input);
|
||||
|
||||
/**
|
||||
* Returns the number of dependent library specifiers
|
||||
* for the given LTO input file.
|
||||
*
|
||||
* \since LTO_API_VERSION=24
|
||||
*/
|
||||
extern unsigned lto_input_get_num_dependent_libraries(lto_input_t input);
|
||||
|
||||
/**
|
||||
* Returns the ith dependent library specifier
|
||||
* for the given LTO input file. The returned
|
||||
* string is not null-terminated.
|
||||
*
|
||||
* \since LTO_API_VERSION=24
|
||||
*/
|
||||
extern const char * lto_input_get_dependent_library(lto_input_t input,
|
||||
size_t index,
|
||||
size_t *size);
|
||||
|
||||
/**
|
||||
* @} // endgroup LLVMCTLTO_CACHING
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
LLVM_C_EXTERN_C_END
|
||||
|
||||
#endif /* LLVM_C_LTO_H */
|
||||
|
||||
Reference in New Issue
Block a user