LLVM  8.0.0svn
Functions
OrcCBindings.cpp File Reference
#include "OrcCBindingsStack.h"
#include "llvm-c/OrcBindings.h"
#include "llvm/ExecutionEngine/JITEventListener.h"
Include dependency graph for OrcCBindings.cpp:

Go to the source code of this file.

Functions

LLVMOrcJITStackRef LLVMOrcCreateInstance (LLVMTargetMachineRef TM)
 Create an ORC JIT stack. More...
 
const charLLVMOrcGetErrorMsg (LLVMOrcJITStackRef JITStack)
 Get the error message for the most recent error (if any). More...
 
void LLVMOrcGetMangledSymbol (LLVMOrcJITStackRef JITStack, char **MangledName, const char *SymbolName)
 Mangle the given symbol. More...
 
void LLVMOrcDisposeMangledSymbol (char *MangledName)
 Dispose of a mangled symbol. More...
 
LLVMOrcErrorCode LLVMOrcCreateLazyCompileCallback (LLVMOrcJITStackRef JITStack, LLVMOrcTargetAddress *RetAddr, LLVMOrcLazyCompileCallbackFn Callback, void *CallbackCtx)
 Create a lazy compile callback. More...
 
LLVMOrcErrorCode LLVMOrcCreateIndirectStub (LLVMOrcJITStackRef JITStack, const char *StubName, LLVMOrcTargetAddress InitAddr)
 Create a named indirect call stub. More...
 
LLVMOrcErrorCode LLVMOrcSetIndirectStubPointer (LLVMOrcJITStackRef JITStack, const char *StubName, LLVMOrcTargetAddress NewAddr)
 Set the pointer for the given indirect stub. More...
 
LLVMOrcErrorCode LLVMOrcAddEagerlyCompiledIR (LLVMOrcJITStackRef JITStack, LLVMOrcModuleHandle *RetHandle, LLVMModuleRef Mod, LLVMOrcSymbolResolverFn SymbolResolver, void *SymbolResolverCtx)
 Add module to be eagerly compiled. More...
 
LLVMOrcErrorCode LLVMOrcAddLazilyCompiledIR (LLVMOrcJITStackRef JITStack, LLVMOrcModuleHandle *RetHandle, LLVMModuleRef Mod, LLVMOrcSymbolResolverFn SymbolResolver, void *SymbolResolverCtx)
 Add module to be lazily compiled one function at a time. More...
 
LLVMOrcErrorCode LLVMOrcAddObjectFile (LLVMOrcJITStackRef JITStack, LLVMOrcModuleHandle *RetHandle, LLVMMemoryBufferRef Obj, LLVMOrcSymbolResolverFn SymbolResolver, void *SymbolResolverCtx)
 Add an object file. More...
 
LLVMOrcErrorCode LLVMOrcRemoveModule (LLVMOrcJITStackRef JITStack, LLVMOrcModuleHandle H)
 Remove a module set from the JIT. More...
 
LLVMOrcErrorCode LLVMOrcGetSymbolAddress (LLVMOrcJITStackRef JITStack, LLVMOrcTargetAddress *RetAddr, const char *SymbolName)
 Get symbol address from JIT instance. More...
 
LLVMOrcErrorCode LLVMOrcGetSymbolAddressIn (LLVMOrcJITStackRef JITStack, LLVMOrcTargetAddress *RetAddr, LLVMOrcModuleHandle H, const char *SymbolName)
 Get symbol address from JIT instance, searching only the specified handle. More...
 
LLVMOrcErrorCode LLVMOrcDisposeInstance (LLVMOrcJITStackRef JITStack)
 Dispose of an ORC JIT stack. More...
 
void LLVMOrcRegisterJITEventListener (LLVMOrcJITStackRef JITStack, LLVMJITEventListenerRef L)
 Register a JIT Event Listener. More...
 
void LLVMOrcUnregisterJITEventListener (LLVMOrcJITStackRef JITStack, LLVMJITEventListenerRef L)
 Unegister a JIT Event Listener. More...
 

Function Documentation

◆ LLVMOrcAddEagerlyCompiledIR()

LLVMOrcErrorCode LLVMOrcAddEagerlyCompiledIR ( LLVMOrcJITStackRef  JITStack,
LLVMOrcModuleHandle RetHandle,
LLVMModuleRef  Mod,
LLVMOrcSymbolResolverFn  SymbolResolver,
void *  SymbolResolverCtx 
)

Add module to be eagerly compiled.

Definition at line 69 of file OrcCBindings.cpp.

References llvm::OrcCBindingsStack::addIRModuleEager(), and llvm::unwrap().

◆ LLVMOrcAddLazilyCompiledIR()

LLVMOrcErrorCode LLVMOrcAddLazilyCompiledIR ( LLVMOrcJITStackRef  JITStack,
LLVMOrcModuleHandle RetHandle,
LLVMModuleRef  Mod,
LLVMOrcSymbolResolverFn  SymbolResolver,
void *  SymbolResolverCtx 
)

Add module to be lazily compiled one function at a time.

Definition at line 80 of file OrcCBindings.cpp.

References llvm::OrcCBindingsStack::addIRModuleLazy(), and llvm::unwrap().

◆ LLVMOrcAddObjectFile()

LLVMOrcErrorCode LLVMOrcAddObjectFile ( LLVMOrcJITStackRef  JITStack,
LLVMOrcModuleHandle RetHandle,
LLVMMemoryBufferRef  Obj,
LLVMOrcSymbolResolverFn  SymbolResolver,
void *  SymbolResolverCtx 
)

Add an object file.

This method takes ownership of the given memory buffer and attempts to add it to the JIT as an object file. Clients should not dispose of the 'Obj' argument: the JIT will manage it from this call onwards.

Definition at line 91 of file OrcCBindings.cpp.

References llvm::OrcCBindingsStack::addObject(), llvm::RISCVFenceField::O, and llvm::unwrap().

◆ LLVMOrcCreateIndirectStub()

LLVMOrcErrorCode LLVMOrcCreateIndirectStub ( LLVMOrcJITStackRef  JITStack,
const char StubName,
LLVMOrcTargetAddress  InitAddr 
)

Create a named indirect call stub.

Definition at line 54 of file OrcCBindings.cpp.

References llvm::OrcCBindingsStack::createIndirectStub(), and llvm::unwrap().

◆ LLVMOrcCreateInstance()

LLVMOrcJITStackRef LLVMOrcCreateInstance ( LLVMTargetMachineRef  TM)

Create an ORC JIT stack.

The client owns the resulting stack, and must call OrcDisposeInstance(...) to destroy it and free its memory. The JIT stack will take ownership of the TargetMachine, which will be destroyed when the stack is destroyed. The client should not attempt to dispose of the Target Machine, or it will result in a double-free.

Definition at line 16 of file OrcCBindings.cpp.

References llvm::orc::createLocalIndirectStubsManagerBuilder(), llvm::TargetMachine::getTargetTriple(), T, llvm::unwrap(), and llvm::wrap().

◆ LLVMOrcCreateLazyCompileCallback()

LLVMOrcErrorCode LLVMOrcCreateLazyCompileCallback ( LLVMOrcJITStackRef  JITStack,
LLVMOrcTargetAddress RetAddr,
LLVMOrcLazyCompileCallbackFn  Callback,
void *  CallbackCtx 
)

Create a lazy compile callback.

Definition at line 46 of file OrcCBindings.cpp.

References llvm::OrcCBindingsStack::createLazyCompileCallback(), and llvm::unwrap().

◆ LLVMOrcDisposeInstance()

LLVMOrcErrorCode LLVMOrcDisposeInstance ( LLVMOrcJITStackRef  JITStack)

Dispose of an ORC JIT stack.

Definition at line 123 of file OrcCBindings.cpp.

References llvm::unwrap().

◆ LLVMOrcDisposeMangledSymbol()

void LLVMOrcDisposeMangledSymbol ( char MangledName)

Dispose of a mangled symbol.

Definition at line 43 of file OrcCBindings.cpp.

◆ LLVMOrcGetErrorMsg()

const char* LLVMOrcGetErrorMsg ( LLVMOrcJITStackRef  JITStack)

Get the error message for the most recent error (if any).

This message is owned by the ORC JIT Stack and will be freed when the stack is disposed of by LLVMOrcDisposeInstance.

Definition at line 30 of file OrcCBindings.cpp.

References llvm::OrcCBindingsStack::getErrorMessage(), and llvm::unwrap().

◆ LLVMOrcGetMangledSymbol()

void LLVMOrcGetMangledSymbol ( LLVMOrcJITStackRef  JITStack,
char **  MangledSymbol,
const char Symbol 
)

Mangle the given symbol.

Memory will be allocated for MangledSymbol to hold the result. The client

Definition at line 35 of file OrcCBindings.cpp.

References llvm::OrcCBindingsStack::mangle(), and llvm::unwrap().

◆ LLVMOrcGetSymbolAddress()

LLVMOrcErrorCode LLVMOrcGetSymbolAddress ( LLVMOrcJITStackRef  JITStack,
LLVMOrcTargetAddress RetAddr,
const char SymbolName 
)

Get symbol address from JIT instance.

Definition at line 108 of file OrcCBindings.cpp.

References llvm::OrcCBindingsStack::findSymbolAddress(), and llvm::unwrap().

◆ LLVMOrcGetSymbolAddressIn()

LLVMOrcErrorCode LLVMOrcGetSymbolAddressIn ( LLVMOrcJITStackRef  JITStack,
LLVMOrcTargetAddress RetAddr,
LLVMOrcModuleHandle  H,
const char SymbolName 
)

Get symbol address from JIT instance, searching only the specified handle.

Definition at line 115 of file OrcCBindings.cpp.

References llvm::OrcCBindingsStack::findSymbolAddressIn(), and llvm::unwrap().

◆ LLVMOrcRegisterJITEventListener()

void LLVMOrcRegisterJITEventListener ( LLVMOrcJITStackRef  JITStack,
LLVMJITEventListenerRef  L 
)

Register a JIT Event Listener.

A NULL listener is ignored.

Definition at line 130 of file OrcCBindings.cpp.

References llvm::unwrap().

◆ LLVMOrcRemoveModule()

LLVMOrcErrorCode LLVMOrcRemoveModule ( LLVMOrcJITStackRef  JITStack,
LLVMOrcModuleHandle  H 
)

Remove a module set from the JIT.

This works for all modules that can be added via OrcAdd*, including object files.

Definition at line 102 of file OrcCBindings.cpp.

References llvm::OrcCBindingsStack::removeModule(), and llvm::unwrap().

◆ LLVMOrcSetIndirectStubPointer()

LLVMOrcErrorCode LLVMOrcSetIndirectStubPointer ( LLVMOrcJITStackRef  JITStack,
const char StubName,
LLVMOrcTargetAddress  NewAddr 
)

Set the pointer for the given indirect stub.

Definition at line 61 of file OrcCBindings.cpp.

References llvm::OrcCBindingsStack::setIndirectStubPointer(), and llvm::unwrap().

◆ LLVMOrcUnregisterJITEventListener()

void LLVMOrcUnregisterJITEventListener ( LLVMOrcJITStackRef  JITStack,
LLVMJITEventListenerRef  L 
)

Unegister a JIT Event Listener.

A NULL listener is ignored.

Definition at line 135 of file OrcCBindings.cpp.

References llvm::unwrap().