21 auto IndirectStubsMgrBuilder =
25 *TM2, std::move(CompileCallbackMgr), IndirectStubsMgrBuilder);
27 return wrap(JITStack);
36 const char *SymbolName) {
38 std::string Mangled = J.
mangle(SymbolName);
39 *MangledName =
new char[Mangled.size() + 1];
40 strcpy(*MangledName, Mangled.c_str());
70 void *SymbolResolverCtx) {
79 void *SymbolResolverCtx) {
91 const char *SymbolName) {
uint64_t(* LLVMOrcLazyCompileCallbackFn)(LLVMOrcJITStackRef JITStack, void *CallbackCtx)
JITTargetAddress getAddress()
Get the address of the symbol in the target address space.
std::function< std::unique_ptr< IndirectStubsManager >)> createLocalIndirectStubsManagerBuilder(const Triple &T)
Create a local indriect stubs manager builder.
struct LLVMOpaqueModule * LLVMModuleRef
The top-level container for all other LLVM Intermediate Representation (IR) objects.
A Module instance is used to store all the information related to an LLVM module. ...
LLVMOrcErrorCode setIndirectStubPointer(StringRef Name, JITTargetAddress Addr)
uint64_t(* LLVMOrcSymbolResolverFn)(const char *Name, void *LookupCtx)
ModuleHandleT addIRModuleLazy(Module *M, LLVMOrcSymbolResolverFn ExternalResolver, void *ExternalResolverCtx)
const Triple & getTargetTriple() const
struct LLVMOpaqueTargetMachine * LLVMTargetMachineRef
Attribute unwrap(LLVMAttributeRef Attr)
LLVMOrcModuleHandle LLVMOrcAddEagerlyCompiledIR(LLVMOrcJITStackRef JITStack, LLVMModuleRef Mod, LLVMOrcSymbolResolverFn SymbolResolver, void *SymbolResolverCtx)
Add module to be eagerly compiled.
std::unique_ptr< JITCompileCallbackManager > createLocalCompileCallbackManager(const Triple &T, JITTargetAddress ErrorHandlerAddress)
Create a local compile callback manager.
void removeModule(ModuleHandleT H)
const std::string & getErrorMessage() const
JITTargetAddress createLazyCompileCallback(LLVMOrcLazyCompileCallbackFn Callback, void *CallbackCtx)
void LLVMOrcDisposeMangledSymbol(char *MangledName)
Dispose of a mangled symbol.
LLVMOrcErrorCode LLVMOrcSetIndirectStubPointer(LLVMOrcJITStackRef JITStack, const char *StubName, LLVMOrcTargetAddress NewAddr)
Set the pointer for the given indirect stub.
uint64_t LLVMOrcTargetAddress
void LLVMOrcRemoveModule(LLVMOrcJITStackRef JITStack, LLVMOrcModuleHandle H)
Remove a module set from the JIT.
LLVMOrcModuleHandle LLVMOrcAddLazilyCompiledIR(LLVMOrcJITStackRef JITStack, LLVMModuleRef Mod, LLVMOrcSymbolResolverFn SymbolResolver, void *SymbolResolverCtx)
Add module to be lazily compiled one function at a time.
LLVMOrcErrorCode createIndirectStub(StringRef StubName, JITTargetAddress Addr)
LLVMOrcJITStackRef LLVMOrcCreateInstance(LLVMTargetMachineRef TM)
Create an ORC JIT stack.
const char * LLVMOrcGetErrorMsg(LLVMOrcJITStackRef JITStack)
Get the error message for the most recent error (if any).
void LLVMOrcGetMangledSymbol(LLVMOrcJITStackRef JITStack, char **MangledName, const char *SymbolName)
Mangle the given symbol.
LLVMOrcErrorCode LLVMOrcCreateIndirectStub(LLVMOrcJITStackRef JITStack, const char *StubName, LLVMOrcTargetAddress InitAddr)
Create a named indirect call stub.
std::string mangle(StringRef Name)
Triple - Helper class for working with autoconf configuration names.
void LLVMOrcDisposeInstance(LLVMOrcJITStackRef JITStack)
Dispose of an ORC JIT stack.
LLVMOrcTargetAddress LLVMOrcCreateLazyCompileCallback(LLVMOrcJITStackRef JITStack, LLVMOrcLazyCompileCallbackFn Callback, void *CallbackCtx)
Create a lazy compile callback.
LLVMAttributeRef wrap(Attribute Attr)
LLVMOrcTargetAddress LLVMOrcGetSymbolAddress(LLVMOrcJITStackRef JITStack, const char *SymbolName)
Get symbol address from JIT instance.
JITSymbol findSymbol(const std::string &Name, bool ExportedSymbolsOnly)
Primary interface to the complete machine description for the target machine.
struct LLVMOrcOpaqueJITStack * LLVMOrcJITStackRef
ModuleHandleT addIRModuleEager(Module *M, LLVMOrcSymbolResolverFn ExternalResolver, void *ExternalResolverCtx)