LLVM  4.0.0
Typedefs | Enumerations | Functions
OrcBindings.h File Reference
#include "llvm-c/Object.h"
#include "llvm-c/TargetMachine.h"
Include dependency graph for OrcBindings.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef struct
LLVMOrcOpaqueJITStack * 
LLVMOrcJITStackRef
 
typedef uint32_t LLVMOrcModuleHandle
 
typedef uint64_t LLVMOrcTargetAddress
 
typedef uint64_t(* LLVMOrcSymbolResolverFn )(const char *Name, void *LookupCtx)
 
typedef uint64_t(* LLVMOrcLazyCompileCallbackFn )(LLVMOrcJITStackRef JITStack, void *CallbackCtx)
 

Enumerations

enum  LLVMOrcErrorCode { LLVMOrcErrSuccess = 0, LLVMOrcErrGeneric }
 

Functions

LLVMOrcJITStackRef LLVMOrcCreateInstance (LLVMTargetMachineRef TM)
 Create an ORC JIT stack. More...
 
const char * LLVMOrcGetErrorMsg (LLVMOrcJITStackRef JITStack)
 Get the error message for the most recent error (if any). More...
 
void LLVMOrcGetMangledSymbol (LLVMOrcJITStackRef JITStack, char **MangledSymbol, const char *Symbol)
 Mangle the given symbol. More...
 
void LLVMOrcDisposeMangledSymbol (char *MangledSymbol)
 Dispose of a mangled symbol. More...
 
LLVMOrcTargetAddress LLVMOrcCreateLazyCompileCallback (LLVMOrcJITStackRef JITStack, 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...
 
LLVMOrcModuleHandle LLVMOrcAddEagerlyCompiledIR (LLVMOrcJITStackRef JITStack, LLVMModuleRef Mod, LLVMOrcSymbolResolverFn SymbolResolver, void *SymbolResolverCtx)
 Add module to be eagerly compiled. More...
 
LLVMOrcModuleHandle LLVMOrcAddLazilyCompiledIR (LLVMOrcJITStackRef JITStack, LLVMModuleRef Mod, LLVMOrcSymbolResolverFn SymbolResolver, void *SymbolResolverCtx)
 Add module to be lazily compiled one function at a time. More...
 
LLVMOrcModuleHandle LLVMOrcAddObjectFile (LLVMOrcJITStackRef JITStack, LLVMObjectFileRef Obj, LLVMOrcSymbolResolverFn SymbolResolver, void *SymbolResolverCtx)
 Add an object file. More...
 
void LLVMOrcRemoveModule (LLVMOrcJITStackRef JITStack, LLVMOrcModuleHandle H)
 Remove a module set from the JIT. More...
 
LLVMOrcTargetAddress LLVMOrcGetSymbolAddress (LLVMOrcJITStackRef JITStack, const char *SymbolName)
 Get symbol address from JIT instance. More...
 
void LLVMOrcDisposeInstance (LLVMOrcJITStackRef JITStack)
 Dispose of an ORC JIT stack. More...
 

Typedef Documentation

typedef struct LLVMOrcOpaqueJITStack* LLVMOrcJITStackRef

Definition at line 32 of file OrcBindings.h.

typedef uint64_t(* LLVMOrcLazyCompileCallbackFn)(LLVMOrcJITStackRef JITStack, void *CallbackCtx)

Definition at line 36 of file OrcBindings.h.

Definition at line 33 of file OrcBindings.h.

typedef uint64_t(* LLVMOrcSymbolResolverFn)(const char *Name, void *LookupCtx)

Definition at line 35 of file OrcBindings.h.

typedef uint64_t LLVMOrcTargetAddress

Definition at line 34 of file OrcBindings.h.

Enumeration Type Documentation

Enumerator
LLVMOrcErrSuccess 
LLVMOrcErrGeneric 

Definition at line 39 of file OrcBindings.h.

Function Documentation

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

Add module to be eagerly compiled.

Definition at line 68 of file OrcCBindings.cpp.

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

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

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

Definition at line 77 of file OrcCBindings.cpp.

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

LLVMOrcModuleHandle LLVMOrcAddObjectFile ( LLVMOrcJITStackRef  JITStack,
LLVMObjectFileRef  Obj,
LLVMOrcSymbolResolverFn  SymbolResolver,
void *  SymbolResolverCtx 
)

Add an object file.

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

Create a named indirect call stub.

Definition at line 53 of file OrcCBindings.cpp.

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

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 15 of file OrcCBindings.cpp.

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

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

Create a lazy compile callback.

Definition at line 46 of file OrcCBindings.cpp.

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

void LLVMOrcDisposeInstance ( LLVMOrcJITStackRef  JITStack)

Dispose of an ORC JIT stack.

Definition at line 97 of file OrcCBindings.cpp.

References llvm::unwrap().

void LLVMOrcDisposeMangledSymbol ( char *  MangledSymbol)

Dispose of a mangled symbol.

Definition at line 43 of file OrcCBindings.cpp.

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().

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().

LLVMOrcTargetAddress LLVMOrcGetSymbolAddress ( LLVMOrcJITStackRef  JITStack,
const char *  SymbolName 
)

Get symbol address from JIT instance.

Definition at line 90 of file OrcCBindings.cpp.

References llvm::OrcCBindingsStack::findSymbol(), llvm::JITSymbol::getAddress(), and llvm::unwrap().

void 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 85 of file OrcCBindings.cpp.

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

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

Set the pointer for the given indirect stub.

Definition at line 60 of file OrcCBindings.cpp.

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