File indexing completed on 2026-05-10 08:43:01
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019 #ifndef LLVM_C_EXECUTIONENGINE_H
0020 #define LLVM_C_EXECUTIONENGINE_H
0021
0022 #include "llvm-c/ExternC.h"
0023 #include "llvm-c/Target.h"
0024 #include "llvm-c/TargetMachine.h"
0025 #include "llvm-c/Types.h"
0026
0027 LLVM_C_EXTERN_C_BEGIN
0028
0029
0030
0031
0032
0033
0034
0035
0036 void LLVMLinkInMCJIT(void);
0037 void LLVMLinkInInterpreter(void);
0038
0039 typedef struct LLVMOpaqueGenericValue *LLVMGenericValueRef;
0040 typedef struct LLVMOpaqueExecutionEngine *LLVMExecutionEngineRef;
0041 typedef struct LLVMOpaqueMCJITMemoryManager *LLVMMCJITMemoryManagerRef;
0042
0043 struct LLVMMCJITCompilerOptions {
0044 unsigned OptLevel;
0045 LLVMCodeModel CodeModel;
0046 LLVMBool NoFramePointerElim;
0047 LLVMBool EnableFastISel;
0048 LLVMMCJITMemoryManagerRef MCJMM;
0049 };
0050
0051
0052
0053 LLVMGenericValueRef LLVMCreateGenericValueOfInt(LLVMTypeRef Ty,
0054 unsigned long long N,
0055 LLVMBool IsSigned);
0056
0057 LLVMGenericValueRef LLVMCreateGenericValueOfPointer(void *P);
0058
0059 LLVMGenericValueRef LLVMCreateGenericValueOfFloat(LLVMTypeRef Ty, double N);
0060
0061 unsigned LLVMGenericValueIntWidth(LLVMGenericValueRef GenValRef);
0062
0063 unsigned long long LLVMGenericValueToInt(LLVMGenericValueRef GenVal,
0064 LLVMBool IsSigned);
0065
0066 void *LLVMGenericValueToPointer(LLVMGenericValueRef GenVal);
0067
0068 double LLVMGenericValueToFloat(LLVMTypeRef TyRef, LLVMGenericValueRef GenVal);
0069
0070 void LLVMDisposeGenericValue(LLVMGenericValueRef GenVal);
0071
0072
0073
0074 LLVMBool LLVMCreateExecutionEngineForModule(LLVMExecutionEngineRef *OutEE,
0075 LLVMModuleRef M,
0076 char **OutError);
0077
0078 LLVMBool LLVMCreateInterpreterForModule(LLVMExecutionEngineRef *OutInterp,
0079 LLVMModuleRef M,
0080 char **OutError);
0081
0082 LLVMBool LLVMCreateJITCompilerForModule(LLVMExecutionEngineRef *OutJIT,
0083 LLVMModuleRef M,
0084 unsigned OptLevel,
0085 char **OutError);
0086
0087 void LLVMInitializeMCJITCompilerOptions(
0088 struct LLVMMCJITCompilerOptions *Options, size_t SizeOfOptions);
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107 LLVMBool LLVMCreateMCJITCompilerForModule(
0108 LLVMExecutionEngineRef *OutJIT, LLVMModuleRef M,
0109 struct LLVMMCJITCompilerOptions *Options, size_t SizeOfOptions,
0110 char **OutError);
0111
0112 void LLVMDisposeExecutionEngine(LLVMExecutionEngineRef EE);
0113
0114 void LLVMRunStaticConstructors(LLVMExecutionEngineRef EE);
0115
0116 void LLVMRunStaticDestructors(LLVMExecutionEngineRef EE);
0117
0118 int LLVMRunFunctionAsMain(LLVMExecutionEngineRef EE, LLVMValueRef F,
0119 unsigned ArgC, const char * const *ArgV,
0120 const char * const *EnvP);
0121
0122 LLVMGenericValueRef LLVMRunFunction(LLVMExecutionEngineRef EE, LLVMValueRef F,
0123 unsigned NumArgs,
0124 LLVMGenericValueRef *Args);
0125
0126 void LLVMFreeMachineCodeForFunction(LLVMExecutionEngineRef EE, LLVMValueRef F);
0127
0128 void LLVMAddModule(LLVMExecutionEngineRef EE, LLVMModuleRef M);
0129
0130 LLVMBool LLVMRemoveModule(LLVMExecutionEngineRef EE, LLVMModuleRef M,
0131 LLVMModuleRef *OutMod, char **OutError);
0132
0133 LLVMBool LLVMFindFunction(LLVMExecutionEngineRef EE, const char *Name,
0134 LLVMValueRef *OutFn);
0135
0136 void *LLVMRecompileAndRelinkFunction(LLVMExecutionEngineRef EE,
0137 LLVMValueRef Fn);
0138
0139 LLVMTargetDataRef LLVMGetExecutionEngineTargetData(LLVMExecutionEngineRef EE);
0140 LLVMTargetMachineRef
0141 LLVMGetExecutionEngineTargetMachine(LLVMExecutionEngineRef EE);
0142
0143 void LLVMAddGlobalMapping(LLVMExecutionEngineRef EE, LLVMValueRef Global,
0144 void* Addr);
0145
0146 void *LLVMGetPointerToGlobal(LLVMExecutionEngineRef EE, LLVMValueRef Global);
0147
0148 uint64_t LLVMGetGlobalValueAddress(LLVMExecutionEngineRef EE, const char *Name);
0149
0150 uint64_t LLVMGetFunctionAddress(LLVMExecutionEngineRef EE, const char *Name);
0151
0152
0153
0154 LLVMBool LLVMExecutionEngineGetErrMsg(LLVMExecutionEngineRef EE,
0155 char **OutError);
0156
0157
0158
0159 typedef uint8_t *(*LLVMMemoryManagerAllocateCodeSectionCallback)(
0160 void *Opaque, uintptr_t Size, unsigned Alignment, unsigned SectionID,
0161 const char *SectionName);
0162 typedef uint8_t *(*LLVMMemoryManagerAllocateDataSectionCallback)(
0163 void *Opaque, uintptr_t Size, unsigned Alignment, unsigned SectionID,
0164 const char *SectionName, LLVMBool IsReadOnly);
0165 typedef LLVMBool (*LLVMMemoryManagerFinalizeMemoryCallback)(
0166 void *Opaque, char **ErrMsg);
0167 typedef void (*LLVMMemoryManagerDestroyCallback)(void *Opaque);
0168
0169
0170
0171
0172
0173
0174
0175
0176
0177
0178
0179
0180 LLVMMCJITMemoryManagerRef LLVMCreateSimpleMCJITMemoryManager(
0181 void *Opaque,
0182 LLVMMemoryManagerAllocateCodeSectionCallback AllocateCodeSection,
0183 LLVMMemoryManagerAllocateDataSectionCallback AllocateDataSection,
0184 LLVMMemoryManagerFinalizeMemoryCallback FinalizeMemory,
0185 LLVMMemoryManagerDestroyCallback Destroy);
0186
0187 void LLVMDisposeMCJITMemoryManager(LLVMMCJITMemoryManagerRef MM);
0188
0189
0190
0191 LLVMJITEventListenerRef LLVMCreateGDBRegistrationListener(void);
0192 LLVMJITEventListenerRef LLVMCreateIntelJITEventListener(void);
0193 LLVMJITEventListenerRef LLVMCreateOProfileJITEventListener(void);
0194 LLVMJITEventListenerRef LLVMCreatePerfJITEventListener(void);
0195
0196
0197
0198
0199
0200 LLVM_C_EXTERN_C_END
0201
0202 #endif