diff options
Diffstat (limited to 'gnu/llvm/include/llvm-c/ExecutionEngine.h')
| -rw-r--r-- | gnu/llvm/include/llvm-c/ExecutionEngine.h | 200 |
1 files changed, 0 insertions, 200 deletions
diff --git a/gnu/llvm/include/llvm-c/ExecutionEngine.h b/gnu/llvm/include/llvm-c/ExecutionEngine.h deleted file mode 100644 index e8ebef9ab15..00000000000 --- a/gnu/llvm/include/llvm-c/ExecutionEngine.h +++ /dev/null @@ -1,200 +0,0 @@ -/*===-- llvm-c/ExecutionEngine.h - ExecutionEngine Lib C Iface --*- C++ -*-===*\ -|* *| -|* The LLVM Compiler Infrastructure *| -|* *| -|* This file is distributed under the University of Illinois Open Source *| -|* License. See LICENSE.TXT for details. *| -|* *| -|*===----------------------------------------------------------------------===*| -|* *| -|* This header declares the C interface to libLLVMExecutionEngine.o, which *| -|* implements various analyses of the LLVM IR. *| -|* *| -|* Many exotic languages can interoperate with C code but have a harder time *| -|* with C++ due to name mangling. So in addition to C, this interface enables *| -|* tools written in such languages. *| -|* *| -\*===----------------------------------------------------------------------===*/ - -#ifndef LLVM_C_EXECUTIONENGINE_H -#define LLVM_C_EXECUTIONENGINE_H - -#include "llvm-c/Target.h" -#include "llvm-c/TargetMachine.h" -#include "llvm-c/Types.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @defgroup LLVMCExecutionEngine Execution Engine - * @ingroup LLVMC - * - * @{ - */ - -void LLVMLinkInMCJIT(void); -void LLVMLinkInInterpreter(void); - -typedef struct LLVMOpaqueGenericValue *LLVMGenericValueRef; -typedef struct LLVMOpaqueExecutionEngine *LLVMExecutionEngineRef; -typedef struct LLVMOpaqueMCJITMemoryManager *LLVMMCJITMemoryManagerRef; - -struct LLVMMCJITCompilerOptions { - unsigned OptLevel; - LLVMCodeModel CodeModel; - LLVMBool NoFramePointerElim; - LLVMBool EnableFastISel; - LLVMMCJITMemoryManagerRef MCJMM; -}; - -/*===-- Operations on generic values --------------------------------------===*/ - -LLVMGenericValueRef LLVMCreateGenericValueOfInt(LLVMTypeRef Ty, - unsigned long long N, - LLVMBool IsSigned); - -LLVMGenericValueRef LLVMCreateGenericValueOfPointer(void *P); - -LLVMGenericValueRef LLVMCreateGenericValueOfFloat(LLVMTypeRef Ty, double N); - -unsigned LLVMGenericValueIntWidth(LLVMGenericValueRef GenValRef); - -unsigned long long LLVMGenericValueToInt(LLVMGenericValueRef GenVal, - LLVMBool IsSigned); - -void *LLVMGenericValueToPointer(LLVMGenericValueRef GenVal); - -double LLVMGenericValueToFloat(LLVMTypeRef TyRef, LLVMGenericValueRef GenVal); - -void LLVMDisposeGenericValue(LLVMGenericValueRef GenVal); - -/*===-- Operations on execution engines -----------------------------------===*/ - -LLVMBool LLVMCreateExecutionEngineForModule(LLVMExecutionEngineRef *OutEE, - LLVMModuleRef M, - char **OutError); - -LLVMBool LLVMCreateInterpreterForModule(LLVMExecutionEngineRef *OutInterp, - LLVMModuleRef M, - char **OutError); - -LLVMBool LLVMCreateJITCompilerForModule(LLVMExecutionEngineRef *OutJIT, - LLVMModuleRef M, - unsigned OptLevel, - char **OutError); - -void LLVMInitializeMCJITCompilerOptions( - struct LLVMMCJITCompilerOptions *Options, size_t SizeOfOptions); - -/** - * Create an MCJIT execution engine for a module, with the given options. It is - * the responsibility of the caller to ensure that all fields in Options up to - * the given SizeOfOptions are initialized. It is correct to pass a smaller - * value of SizeOfOptions that omits some fields. The canonical way of using - * this is: - * - * LLVMMCJITCompilerOptions options; - * LLVMInitializeMCJITCompilerOptions(&options, sizeof(options)); - * ... fill in those options you care about - * LLVMCreateMCJITCompilerForModule(&jit, mod, &options, sizeof(options), - * &error); - * - * Note that this is also correct, though possibly suboptimal: - * - * LLVMCreateMCJITCompilerForModule(&jit, mod, 0, 0, &error); - */ -LLVMBool LLVMCreateMCJITCompilerForModule( - LLVMExecutionEngineRef *OutJIT, LLVMModuleRef M, - struct LLVMMCJITCompilerOptions *Options, size_t SizeOfOptions, - char **OutError); - -void LLVMDisposeExecutionEngine(LLVMExecutionEngineRef EE); - -void LLVMRunStaticConstructors(LLVMExecutionEngineRef EE); - -void LLVMRunStaticDestructors(LLVMExecutionEngineRef EE); - -int LLVMRunFunctionAsMain(LLVMExecutionEngineRef EE, LLVMValueRef F, - unsigned ArgC, const char * const *ArgV, - const char * const *EnvP); - -LLVMGenericValueRef LLVMRunFunction(LLVMExecutionEngineRef EE, LLVMValueRef F, - unsigned NumArgs, - LLVMGenericValueRef *Args); - -void LLVMFreeMachineCodeForFunction(LLVMExecutionEngineRef EE, LLVMValueRef F); - -void LLVMAddModule(LLVMExecutionEngineRef EE, LLVMModuleRef M); - -LLVMBool LLVMRemoveModule(LLVMExecutionEngineRef EE, LLVMModuleRef M, - LLVMModuleRef *OutMod, char **OutError); - -LLVMBool LLVMFindFunction(LLVMExecutionEngineRef EE, const char *Name, - LLVMValueRef *OutFn); - -void *LLVMRecompileAndRelinkFunction(LLVMExecutionEngineRef EE, - LLVMValueRef Fn); - -LLVMTargetDataRef LLVMGetExecutionEngineTargetData(LLVMExecutionEngineRef EE); -LLVMTargetMachineRef -LLVMGetExecutionEngineTargetMachine(LLVMExecutionEngineRef EE); - -void LLVMAddGlobalMapping(LLVMExecutionEngineRef EE, LLVMValueRef Global, - void* Addr); - -void *LLVMGetPointerToGlobal(LLVMExecutionEngineRef EE, LLVMValueRef Global); - -uint64_t LLVMGetGlobalValueAddress(LLVMExecutionEngineRef EE, const char *Name); - -uint64_t LLVMGetFunctionAddress(LLVMExecutionEngineRef EE, const char *Name); - -/*===-- Operations on memory managers -------------------------------------===*/ - -typedef uint8_t *(*LLVMMemoryManagerAllocateCodeSectionCallback)( - void *Opaque, uintptr_t Size, unsigned Alignment, unsigned SectionID, - const char *SectionName); -typedef uint8_t *(*LLVMMemoryManagerAllocateDataSectionCallback)( - void *Opaque, uintptr_t Size, unsigned Alignment, unsigned SectionID, - const char *SectionName, LLVMBool IsReadOnly); -typedef LLVMBool (*LLVMMemoryManagerFinalizeMemoryCallback)( - void *Opaque, char **ErrMsg); -typedef void (*LLVMMemoryManagerDestroyCallback)(void *Opaque); - -/** - * Create a simple custom MCJIT memory manager. This memory manager can - * intercept allocations in a module-oblivious way. This will return NULL - * if any of the passed functions are NULL. - * - * @param Opaque An opaque client object to pass back to the callbacks. - * @param AllocateCodeSection Allocate a block of memory for executable code. - * @param AllocateDataSection Allocate a block of memory for data. - * @param FinalizeMemory Set page permissions and flush cache. Return 0 on - * success, 1 on error. - */ -LLVMMCJITMemoryManagerRef LLVMCreateSimpleMCJITMemoryManager( - void *Opaque, - LLVMMemoryManagerAllocateCodeSectionCallback AllocateCodeSection, - LLVMMemoryManagerAllocateDataSectionCallback AllocateDataSection, - LLVMMemoryManagerFinalizeMemoryCallback FinalizeMemory, - LLVMMemoryManagerDestroyCallback Destroy); - -void LLVMDisposeMCJITMemoryManager(LLVMMCJITMemoryManagerRef MM); - -/*===-- JIT Event Listener functions -------------------------------------===*/ - -LLVMJITEventListenerRef LLVMCreateGDBRegistrationListener(void); -LLVMJITEventListenerRef LLVMCreateIntelJITEventListener(void); -LLVMJITEventListenerRef LLVMCreateOProfileJITEventListener(void); -LLVMJITEventListenerRef LLVMCreatePerfJITEventListener(void); - -/** - * @} - */ - -#ifdef __cplusplus -} -#endif /* defined(__cplusplus) */ - -#endif |
