19#ifndef LLVM_C_TARGET_H
20#define LLVM_C_TARGET_H
25#include "llvm/Config/llvm-config.h"
42#define LLVM_TARGET(TargetName) \
43 LLVM_C_ABI void LLVMInitialize##TargetName##TargetInfo(void);
44#include "llvm/Config/Targets.def"
47#define LLVM_TARGET(TargetName) \
48 LLVM_C_ABI void LLVMInitialize##TargetName##Target(void);
49#include "llvm/Config/Targets.def"
52#define LLVM_TARGET(TargetName) \
53 LLVM_C_ABI void LLVMInitialize##TargetName##TargetMC(void);
54#include "llvm/Config/Targets.def"
58#define LLVM_ASM_PRINTER(TargetName) \
59 LLVM_C_ABI void LLVMInitialize##TargetName##AsmPrinter(void);
60#include "llvm/Config/AsmPrinters.def"
61#undef LLVM_ASM_PRINTER
64#define LLVM_ASM_PARSER(TargetName) \
65 LLVM_C_ABI void LLVMInitialize##TargetName##AsmParser(void);
66#include "llvm/Config/AsmParsers.def"
70#define LLVM_DISASSEMBLER(TargetName) \
71 LLVM_C_ABI void LLVMInitialize##TargetName##Disassembler(void);
72#include "llvm/Config/Disassemblers.def"
73#undef LLVM_DISASSEMBLER
79#define LLVM_TARGET(TargetName) LLVMInitialize##TargetName##TargetInfo();
80#include "llvm/Config/Targets.def"
88#define LLVM_TARGET(TargetName) LLVMInitialize##TargetName##Target();
89#include "llvm/Config/Targets.def"
97#define LLVM_TARGET(TargetName) LLVMInitialize##TargetName##TargetMC();
98#include "llvm/Config/Targets.def"
106#define LLVM_ASM_PRINTER(TargetName) LLVMInitialize##TargetName##AsmPrinter();
107#include "llvm/Config/AsmPrinters.def"
108#undef LLVM_ASM_PRINTER
115#define LLVM_ASM_PARSER(TargetName) LLVMInitialize##TargetName##AsmParser();
116#include "llvm/Config/AsmParsers.def"
117#undef LLVM_ASM_PARSER
124#define LLVM_DISASSEMBLER(TargetName) \
125 LLVMInitialize##TargetName##Disassembler();
126#include "llvm/Config/Disassemblers.def"
127#undef LLVM_DISASSEMBLER
135#ifdef LLVM_NATIVE_TARGET
136 LLVM_NATIVE_TARGETINFO();
137 LLVM_NATIVE_TARGET();
138 LLVM_NATIVE_TARGETMC();
149#ifdef LLVM_NATIVE_ASMPARSER
150 LLVM_NATIVE_ASMPARSER();
161#ifdef LLVM_NATIVE_ASMPRINTER
162 LLVM_NATIVE_ASMPRINTER();
173#ifdef LLVM_NATIVE_DISASSEMBLER
174 LLVM_NATIVE_DISASSEMBLER();
290 unsigned long long Offset);
MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL
static GCRegistry::Add< ShadowStackGC > C("shadow-stack", "Very portable GC for uncooperative code generators")
#define LLVM_C_EXTERN_C_BEGIN
#define LLVM_C_EXTERN_C_END
#define LLVM_C_ABI
LLVM_C_ABI is the export/visibility macro used to mark symbols declared in llvm-c as exported when bu...
struct LLVMOpaqueValue * LLVMValueRef
Represents an individual value in LLVM IR.
struct LLVMOpaquePassManager * LLVMPassManagerRef
struct LLVMOpaqueContext * LLVMContextRef
The top-level container for all LLVM global data.
struct LLVMOpaqueType * LLVMTypeRef
Each value in the LLVM IR has a type, an LLVMTypeRef.
struct LLVMOpaqueModule * LLVMModuleRef
The top-level container for all other LLVM Intermediate Representation (IR) objects.
static LLVMBool LLVMInitializeNativeAsmParser(void)
LLVMInitializeNativeTargetAsmParser - The main program should call this function to initialize the pa...
LLVM_C_ABI LLVMTypeRef LLVMIntPtrTypeForAS(LLVMTargetDataRef TD, unsigned AS)
Returns the integer type that is the same size as a pointer on a target.
LLVM_C_ABI LLVMTargetDataRef LLVMGetModuleDataLayout(LLVMModuleRef M)
Obtain the data layout for a module.
LLVM_C_ABI LLVMTargetDataRef LLVMCreateTargetData(const char *StringRep)
Creates target data from a target layout string.
LLVM_C_ABI unsigned LLVMPreferredAlignmentOfType(LLVMTargetDataRef TD, LLVMTypeRef Ty)
Computes the preferred alignment of a type in bytes for a target.
LLVM_C_ABI unsigned LLVMCallFrameAlignmentOfType(LLVMTargetDataRef TD, LLVMTypeRef Ty)
Computes the call frame alignment of a type in bytes for a target.
LLVM_C_ABI unsigned long long LLVMOffsetOfElement(LLVMTargetDataRef TD, LLVMTypeRef StructTy, unsigned Element)
Computes the byte offset of the indexed struct element for a target.
LLVM_C_ABI void LLVMDisposeTargetData(LLVMTargetDataRef TD)
Deallocates a TargetData.
LLVM_C_ABI void LLVMAddTargetLibraryInfo(LLVMTargetLibraryInfoRef TLI, LLVMPassManagerRef PM)
Adds target library information to a pass manager.
LLVM_C_ABI enum LLVMByteOrdering LLVMByteOrder(LLVMTargetDataRef TD)
Returns the byte order of a target, either LLVMBigEndian or LLVMLittleEndian.
LLVM_C_ABI LLVMTypeRef LLVMIntPtrType(LLVMTargetDataRef TD)
Returns the integer type that is the same size as a pointer on a target.
LLVM_C_ABI unsigned LLVMPreferredAlignmentOfGlobal(LLVMTargetDataRef TD, LLVMValueRef GlobalVar)
Computes the preferred alignment of a global variable in bytes for a target.
LLVM_C_ABI unsigned long long LLVMStoreSizeOfType(LLVMTargetDataRef TD, LLVMTypeRef Ty)
Computes the storage size of a type in bytes for a target.
static void LLVMInitializeAllTargetInfos(void)
LLVMInitializeAllTargetInfos - The main program should call this function if it wants access to all a...
LLVM_C_ABI unsigned long long LLVMABISizeOfType(LLVMTargetDataRef TD, LLVMTypeRef Ty)
Computes the ABI size of a type in bytes for a target.
LLVM_C_ABI unsigned LLVMPointerSizeForAS(LLVMTargetDataRef TD, unsigned AS)
Returns the pointer size in bytes for a target for a specified address space.
LLVM_C_ABI unsigned LLVMABIAlignmentOfType(LLVMTargetDataRef TD, LLVMTypeRef Ty)
Computes the ABI alignment of a type in bytes for a target.
LLVM_C_ABI unsigned LLVMElementAtOffset(LLVMTargetDataRef TD, LLVMTypeRef StructTy, unsigned long long Offset)
Computes the structure element that contains the byte offset for a target.
LLVM_C_ABI LLVMTypeRef LLVMIntPtrTypeInContext(LLVMContextRef C, LLVMTargetDataRef TD)
Returns the integer type that is the same size as a pointer on a target.
static LLVMBool LLVMInitializeNativeAsmPrinter(void)
LLVMInitializeNativeTargetAsmPrinter - The main program should call this function to initialize the p...
static LLVMBool LLVMInitializeNativeDisassembler(void)
LLVMInitializeNativeTargetDisassembler - The main program should call this function to initialize the...
static void LLVMInitializeAllTargetMCs(void)
LLVMInitializeAllTargetMCs - The main program should call this function if it wants access to all ava...
LLVM_C_ABI char * LLVMCopyStringRepOfTargetData(LLVMTargetDataRef TD)
Converts target data to a target layout string.
LLVM_C_ABI unsigned LLVMPointerSize(LLVMTargetDataRef TD)
Returns the pointer size in bytes for a target.
LLVM_C_ABI LLVMTypeRef LLVMIntPtrTypeForASInContext(LLVMContextRef C, LLVMTargetDataRef TD, unsigned AS)
Returns the integer type that is the same size as a pointer on a target.
struct LLVMOpaqueTargetLibraryInfotData * LLVMTargetLibraryInfoRef
static void LLVMInitializeAllAsmParsers(void)
LLVMInitializeAllAsmParsers - The main program should call this function if it wants all asm parsers ...
LLVM_C_ABI void LLVMSetModuleDataLayout(LLVMModuleRef M, LLVMTargetDataRef DL)
Set the data layout for a module.
static LLVMBool LLVMInitializeNativeTarget(void)
LLVMInitializeNativeTarget - The main program should call this function to initialize the native targ...
LLVM_C_ABI unsigned long long LLVMSizeOfTypeInBits(LLVMTargetDataRef TD, LLVMTypeRef Ty)
Computes the size of a type in bits for a target.
static void LLVMInitializeAllTargets(void)
LLVMInitializeAllTargets - The main program should call this function if it wants to link in all avai...
struct LLVMOpaqueTargetData * LLVMTargetDataRef
static void LLVMInitializeAllAsmPrinters(void)
LLVMInitializeAllAsmPrinters - The main program should call this function if it wants all asm printer...
static void LLVMInitializeAllDisassemblers(void)
LLVMInitializeAllDisassemblers - The main program should call this function if it wants all disassemb...