LLVM 22.0.0git
|
Modules | |
LLJIT Utilities | |
Typedefs | |
typedef LLVMOrcObjectLayerRef(* | LLVMOrcLLJITBuilderObjectLinkingLayerCreatorFunction) (void *Ctx, LLVMOrcExecutionSessionRef ES, const char *Triple) |
A function for constructing an ObjectLinkingLayer instance to be used by an LLJIT instance. | |
typedef struct LLVMOrcOpaqueLLJITBuilder * | LLVMOrcLLJITBuilderRef |
A reference to an orc::LLJITBuilder instance. | |
typedef struct LLVMOrcOpaqueLLJIT * | LLVMOrcLLJITRef |
A reference to an orc::LLJIT instance. | |
Functions | |
LLVM_C_ABI LLVMOrcLLJITBuilderRef | LLVMOrcCreateLLJITBuilder (void) |
Create an LLVMOrcLLJITBuilder. | |
LLVM_C_ABI void | LLVMOrcDisposeLLJITBuilder (LLVMOrcLLJITBuilderRef Builder) |
Dispose of an LLVMOrcLLJITBuilderRef. | |
LLVM_C_ABI void | LLVMOrcLLJITBuilderSetJITTargetMachineBuilder (LLVMOrcLLJITBuilderRef Builder, LLVMOrcJITTargetMachineBuilderRef JTMB) |
Set the JITTargetMachineBuilder to be used when constructing the LLJIT instance. | |
LLVM_C_ABI void | LLVMOrcLLJITBuilderSetObjectLinkingLayerCreator (LLVMOrcLLJITBuilderRef Builder, LLVMOrcLLJITBuilderObjectLinkingLayerCreatorFunction F, void *Ctx) |
Set an ObjectLinkingLayer creator function for this LLJIT instance. | |
LLVM_C_ABI LLVMErrorRef | LLVMOrcCreateLLJIT (LLVMOrcLLJITRef *Result, LLVMOrcLLJITBuilderRef Builder) |
Create an LLJIT instance from an LLJITBuilder. | |
LLVM_C_ABI LLVMErrorRef | LLVMOrcDisposeLLJIT (LLVMOrcLLJITRef J) |
Dispose of an LLJIT instance. | |
LLVM_C_ABI LLVMOrcExecutionSessionRef | LLVMOrcLLJITGetExecutionSession (LLVMOrcLLJITRef J) |
Get a reference to the ExecutionSession for this LLJIT instance. | |
LLVM_C_ABI LLVMOrcJITDylibRef | LLVMOrcLLJITGetMainJITDylib (LLVMOrcLLJITRef J) |
Return a reference to the Main JITDylib. | |
LLVM_C_ABI const char * | LLVMOrcLLJITGetTripleString (LLVMOrcLLJITRef J) |
Return the target triple for this LLJIT instance. | |
LLVM_C_ABI char | LLVMOrcLLJITGetGlobalPrefix (LLVMOrcLLJITRef J) |
Returns the global prefix character according to the LLJIT's DataLayout. | |
LLVM_C_ABI LLVMOrcSymbolStringPoolEntryRef | LLVMOrcLLJITMangleAndIntern (LLVMOrcLLJITRef J, const char *UnmangledName) |
Mangles the given string according to the LLJIT instance's DataLayout, then interns the result in the SymbolStringPool and returns a reference to the pool entry. | |
LLVM_C_ABI LLVMErrorRef | LLVMOrcLLJITAddObjectFile (LLVMOrcLLJITRef J, LLVMOrcJITDylibRef JD, LLVMMemoryBufferRef ObjBuffer) |
Add a buffer representing an object file to the given JITDylib in the given LLJIT instance. | |
LLVM_C_ABI LLVMErrorRef | LLVMOrcLLJITAddObjectFileWithRT (LLVMOrcLLJITRef J, LLVMOrcResourceTrackerRef RT, LLVMMemoryBufferRef ObjBuffer) |
Add a buffer representing an object file to the given ResourceTracker's JITDylib in the given LLJIT instance. | |
LLVM_C_ABI LLVMErrorRef | LLVMOrcLLJITAddLLVMIRModule (LLVMOrcLLJITRef J, LLVMOrcJITDylibRef JD, LLVMOrcThreadSafeModuleRef TSM) |
Add an IR module to the given JITDylib in the given LLJIT instance. | |
LLVM_C_ABI LLVMErrorRef | LLVMOrcLLJITAddLLVMIRModuleWithRT (LLVMOrcLLJITRef J, LLVMOrcResourceTrackerRef JD, LLVMOrcThreadSafeModuleRef TSM) |
Add an IR module to the given ResourceTracker's JITDylib in the given LLJIT instance. | |
LLVM_C_ABI LLVMErrorRef | LLVMOrcLLJITLookup (LLVMOrcLLJITRef J, LLVMOrcExecutorAddress *Result, const char *Name) |
Look up the given symbol in the main JITDylib of the given LLJIT instance. | |
LLVM_C_ABI LLVMOrcObjectLayerRef | LLVMOrcLLJITGetObjLinkingLayer (LLVMOrcLLJITRef J) |
Returns a non-owning reference to the LLJIT instance's object linking layer. | |
LLVM_C_ABI LLVMOrcObjectTransformLayerRef | LLVMOrcLLJITGetObjTransformLayer (LLVMOrcLLJITRef J) |
Returns a non-owning reference to the LLJIT instance's object linking layer. | |
LLVM_C_ABI LLVMOrcIRTransformLayerRef | LLVMOrcLLJITGetIRTransformLayer (LLVMOrcLLJITRef J) |
Returns a non-owning reference to the LLJIT instance's IR transform layer. | |
LLVM_C_ABI const char * | LLVMOrcLLJITGetDataLayoutStr (LLVMOrcLLJITRef J) |
Get the LLJIT instance's default data layout string. | |
typedef LLVMOrcObjectLayerRef( * LLVMOrcLLJITBuilderObjectLinkingLayerCreatorFunction) (void *Ctx, LLVMOrcExecutionSessionRef ES, const char *Triple) |
A function for constructing an ObjectLinkingLayer instance to be used by an LLJIT instance.
Clients can call LLVMOrcLLJITBuilderSetObjectLinkingLayerCreator to set the creator function to use when constructing an LLJIT instance. This can be used to override the default linking layer implementation that would otherwise be chosen by LLJITBuilder.
Object linking layers returned by this function will become owned by the LLJIT instance. The client is not responsible for managing their lifetimes after the function returns.
typedef struct LLVMOrcOpaqueLLJITBuilder* LLVMOrcLLJITBuilderRef |
typedef struct LLVMOrcOpaqueLLJIT* LLVMOrcLLJITRef |
LLVM_C_ABI LLVMErrorRef LLVMOrcCreateLLJIT | ( | LLVMOrcLLJITRef * | Result, |
LLVMOrcLLJITBuilderRef | Builder | ||
) |
Create an LLJIT instance from an LLJITBuilder.
This operation takes ownership of the Builder argument: clients should not dispose of the builder after calling this function (even if the function returns an error). If a null Builder argument is provided then a default-constructed LLJITBuilder will be used.
On success the resulting LLJIT instance is uniquely owned by the client and automatically manages the memory of all JIT'd code and all modules that are transferred to it (e.g. via LLVMOrcLLJITAddLLVMIRModule). Disposing of the LLJIT instance will free all memory managed by the JIT, including JIT'd code and not-yet compiled modules.
Definition at line 921 of file OrcV2CBindings.cpp.
References assert(), LLVMErrorSuccess, LLVMOrcCreateLLJITBuilder(), LLVMOrcDisposeLLJITBuilder(), llvm::orc::Result, unwrap(), and wrap().
LLVM_C_ABI LLVMOrcLLJITBuilderRef LLVMOrcCreateLLJITBuilder | ( | void | ) |
Create an LLVMOrcLLJITBuilder.
The client owns the resulting LLJITBuilder and should dispose of it using LLVMOrcDisposeLLJITBuilder once they are done with it.
Definition at line 897 of file OrcV2CBindings.cpp.
References wrap().
Referenced by LLVMOrcCreateLLJIT().
LLVM_C_ABI LLVMErrorRef LLVMOrcDisposeLLJIT | ( | LLVMOrcLLJITRef | J | ) |
Dispose of an LLJIT instance.
Definition at line 940 of file OrcV2CBindings.cpp.
References LLVMErrorSuccess, and unwrap().
LLVM_C_ABI void LLVMOrcDisposeLLJITBuilder | ( | LLVMOrcLLJITBuilderRef | Builder | ) |
Dispose of an LLVMOrcLLJITBuilderRef.
This should only be called if ownership has not been passed to LLVMOrcCreateLLJIT (e.g. because some error prevented that function from being called).
Definition at line 901 of file OrcV2CBindings.cpp.
References unwrap().
Referenced by LLVMOrcCreateLLJIT().
LLVM_C_ABI LLVMErrorRef LLVMOrcLLJITAddLLVMIRModule | ( | LLVMOrcLLJITRef | J, |
LLVMOrcJITDylibRef | JD, | ||
LLVMOrcThreadSafeModuleRef | TSM | ||
) |
Add an IR module to the given JITDylib in the given LLJIT instance.
This operation transfers ownership of the TSM argument to the LLJIT instance. The TSM argument should not be disposed of or referenced once this function returns.
Resources associated with the given Module will be tracked by the given JITDylib's default resource tracker.
Definition at line 981 of file OrcV2CBindings.cpp.
LLVM_C_ABI LLVMErrorRef LLVMOrcLLJITAddLLVMIRModuleWithRT | ( | LLVMOrcLLJITRef | J, |
LLVMOrcResourceTrackerRef | JD, | ||
LLVMOrcThreadSafeModuleRef | TSM | ||
) |
Add an IR module to the given ResourceTracker's JITDylib in the given LLJIT instance.
This operation transfers ownership of the TSM argument to the LLJIT instance. The TSM argument should not be disposed of or referenced once this function returns.
Resources associated with the given Module will be tracked by ResourceTracker RT.
Definition at line 988 of file OrcV2CBindings.cpp.
LLVM_C_ABI LLVMErrorRef LLVMOrcLLJITAddObjectFile | ( | LLVMOrcLLJITRef | J, |
LLVMOrcJITDylibRef | JD, | ||
LLVMMemoryBufferRef | ObjBuffer | ||
) |
Add a buffer representing an object file to the given JITDylib in the given LLJIT instance.
This operation transfers ownership of the buffer to the LLJIT instance. The buffer should not be disposed of or referenced once this function returns.
Resources associated with the given object will be tracked by the given JITDylib's default resource tracker.
Definition at line 967 of file OrcV2CBindings.cpp.
LLVM_C_ABI LLVMErrorRef LLVMOrcLLJITAddObjectFileWithRT | ( | LLVMOrcLLJITRef | J, |
LLVMOrcResourceTrackerRef | RT, | ||
LLVMMemoryBufferRef | ObjBuffer | ||
) |
Add a buffer representing an object file to the given ResourceTracker's JITDylib in the given LLJIT instance.
This operation transfers ownership of the buffer to the LLJIT instance. The buffer should not be disposed of or referenced once this function returns.
Resources associated with the given object will be tracked by ResourceTracker RT.
Definition at line 973 of file OrcV2CBindings.cpp.
LLVM_C_ABI void LLVMOrcLLJITBuilderSetJITTargetMachineBuilder | ( | LLVMOrcLLJITBuilderRef | Builder, |
LLVMOrcJITTargetMachineBuilderRef | JTMB | ||
) |
Set the JITTargetMachineBuilder to be used when constructing the LLJIT instance.
Calling this function is optional: if it is not called then the LLJITBuilder will use JITTargeTMachineBuilder::detectHost to construct a JITTargetMachineBuilder.
This function takes ownership of the JTMB argument: clients should not dispose of the JITTargetMachineBuilder after calling this function.
Definition at line 905 of file OrcV2CBindings.cpp.
References LLVMOrcDisposeJITTargetMachineBuilder(), and unwrap().
LLVM_C_ABI void LLVMOrcLLJITBuilderSetObjectLinkingLayerCreator | ( | LLVMOrcLLJITBuilderRef | Builder, |
LLVMOrcLLJITBuilderObjectLinkingLayerCreatorFunction | F, | ||
void * | Ctx | ||
) |
Set an ObjectLinkingLayer creator function for this LLJIT instance.
Definition at line 911 of file OrcV2CBindings.cpp.
References F, llvm::orc::ExecutionSession::getTargetTriple(), unwrap(), and wrap().
LLVM_C_ABI const char * LLVMOrcLLJITGetDataLayoutStr | ( | LLVMOrcLLJITRef | J | ) |
Get the LLJIT instance's default data layout string.
This string is owned by the LLJIT instance and does not need to be freed by the caller.
Definition at line 1154 of file OrcV2CBindings.cpp.
References unwrap().
LLVM_C_ABI LLVMOrcExecutionSessionRef LLVMOrcLLJITGetExecutionSession | ( | LLVMOrcLLJITRef | J | ) |
Get a reference to the ExecutionSession for this LLJIT instance.
The ExecutionSession is owned by the LLJIT instance. The client is not responsible for managing its memory.
Definition at line 945 of file OrcV2CBindings.cpp.
LLVM_C_ABI char LLVMOrcLLJITGetGlobalPrefix | ( | LLVMOrcLLJITRef | J | ) |
Returns the global prefix character according to the LLJIT's DataLayout.
Definition at line 957 of file OrcV2CBindings.cpp.
References unwrap().
LLVM_C_ABI LLVMOrcIRTransformLayerRef LLVMOrcLLJITGetIRTransformLayer | ( | LLVMOrcLLJITRef | J | ) |
Returns a non-owning reference to the LLJIT instance's IR transform layer.
Definition at line 1150 of file OrcV2CBindings.cpp.
LLVM_C_ABI LLVMOrcJITDylibRef LLVMOrcLLJITGetMainJITDylib | ( | LLVMOrcLLJITRef | J | ) |
Return a reference to the Main JITDylib.
The JITDylib is owned by the LLJIT instance. The client is not responsible for managing its memory.
Definition at line 949 of file OrcV2CBindings.cpp.
LLVM_C_ABI LLVMOrcObjectLayerRef LLVMOrcLLJITGetObjLinkingLayer | ( | LLVMOrcLLJITRef | J | ) |
Returns a non-owning reference to the LLJIT instance's object linking layer.
Definition at line 1011 of file OrcV2CBindings.cpp.
LLVM_C_ABI LLVMOrcObjectTransformLayerRef LLVMOrcLLJITGetObjTransformLayer | ( | LLVMOrcLLJITRef | J | ) |
Returns a non-owning reference to the LLJIT instance's object linking layer.
Definition at line 1016 of file OrcV2CBindings.cpp.
LLVM_C_ABI const char * LLVMOrcLLJITGetTripleString | ( | LLVMOrcLLJITRef | J | ) |
Return the target triple for this LLJIT instance.
This string is owned by the LLJIT instance and should not be freed by the client.
Definition at line 953 of file OrcV2CBindings.cpp.
References unwrap().
LLVM_C_ABI LLVMErrorRef LLVMOrcLLJITLookup | ( | LLVMOrcLLJITRef | J, |
LLVMOrcExecutorAddress * | Result, | ||
const char * | Name | ||
) |
Look up the given symbol in the main JITDylib of the given LLJIT instance.
This operation does not take ownership of the Name argument.
Definition at line 996 of file OrcV2CBindings.cpp.
References assert(), LLVMErrorSuccess, Name, llvm::orc::Result, Sym, unwrap(), and wrap().
LLVM_C_ABI LLVMOrcSymbolStringPoolEntryRef LLVMOrcLLJITMangleAndIntern | ( | LLVMOrcLLJITRef | J, |
const char * | UnmangledName | ||
) |
Mangles the given string according to the LLJIT instance's DataLayout, then interns the result in the SymbolStringPool and returns a reference to the pool entry.
Clients should call LLVMOrcReleaseSymbolStringPoolEntry to decrement the ref-count on the pool entry once they are finished with this value.
Definition at line 962 of file OrcV2CBindings.cpp.
References llvm::orc::SymbolStringPoolEntryUnsafe::take(), unwrap(), and wrap().