mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01:00
[ORC] Add operations to create and lookup JITDylibs to OrcV2 C bindings.
This commit is contained in:
parent
dcfdc54cf8
commit
a2132fa761
@ -112,6 +112,42 @@ LLVMOrcExecutionSessionIntern(LLVMOrcExecutionSessionRef ES, const char *Name);
|
||||
*/
|
||||
void LLVMOrcReleaseSymbolStringPoolEntry(LLVMOrcSymbolStringPoolEntryRef S);
|
||||
|
||||
/**
|
||||
* Create a "bare" JITDylib.
|
||||
*
|
||||
* The client is responsible for ensuring that the JITDylib's name is unique,
|
||||
* e.g. by calling LLVMOrcExecutionSessionGetJTIDylibByName first.
|
||||
*
|
||||
* This call does not install any library code or symbols into the newly
|
||||
* created JITDylib. The client is responsible for all configuration.
|
||||
*/
|
||||
LLVMOrcJITDylibRef
|
||||
LLVMOrcExecutionSessionCreateBareJITDylib(LLVMOrcExecutionSessionRef ES,
|
||||
const char *Name);
|
||||
|
||||
/**
|
||||
* Create a JITDylib.
|
||||
*
|
||||
* The client is responsible for ensuring that the JITDylib's name is unique,
|
||||
* e.g. by calling LLVMOrcExecutionSessionGetJTIDylibByName first.
|
||||
*
|
||||
* If a Platform is attached to the ExecutionSession then
|
||||
* Platform::setupJITDylib will be called to install standard platform symbols
|
||||
* (e.g. standard library interposes). If no Platform is installed then this
|
||||
* call is equivalent to LLVMExecutionSessionRefCreateBareJITDylib and will
|
||||
* always return success.
|
||||
*/
|
||||
LLVMErrorRef
|
||||
LLVMOrcExecutionSessionCreateJITDylib(LLVMOrcExecutionSessionRef ES,
|
||||
LLVMOrcJITDylibRef *Result,
|
||||
const char *Name);
|
||||
|
||||
/**
|
||||
* Returns the JITDylib with the given name, or NULL if no such JITDylib
|
||||
* exists.
|
||||
*/
|
||||
LLVMOrcJITDylibRef LLVMOrcExecutionSessionGetJITDylibByName(const char *Name);
|
||||
|
||||
/**
|
||||
* Dispose of a JITDylib::DefinitionGenerator. This should only be called if
|
||||
* ownership has not been passed to a JITDylib (e.g. because some error
|
||||
|
@ -68,6 +68,29 @@ void LLVMOrcReleaseSymbolStringPoolEntry(LLVMOrcSymbolStringPoolEntryRef S) {
|
||||
OrcV2CAPIHelper::releasePoolEntry(unwrap(S));
|
||||
}
|
||||
|
||||
LLVMOrcJITDylibRef
|
||||
LLVMOrcExecutionSessionCreateBareJITDylib(LLVMOrcExecutionSessionRef ES,
|
||||
const char *Name) {
|
||||
return wrap(&unwrap(ES)->createBareJITDylib(Name));
|
||||
}
|
||||
|
||||
LLVMErrorRef
|
||||
LLVMOrcExecutionSessionCreateJITDylib(LLVMOrcExecutionSessionRef ES,
|
||||
LLVMOrcJITDylibRef *Result,
|
||||
const char *Name) {
|
||||
auto JD = unwrap(ES)->createJITDylib(Name);
|
||||
if (!JD)
|
||||
return wrap(JD.takeError());
|
||||
*Result = wrap(&*JD);
|
||||
return LLVMErrorSuccess;
|
||||
}
|
||||
|
||||
LLVMOrcJITDylibRef
|
||||
LLVMOrcExecutionSessionGetJITDylibByName(LLVMOrcExecutionSessionRef ES,
|
||||
const char *Name) {
|
||||
return wrap(unwrap(ES)->getJITDylibByName(Name));
|
||||
}
|
||||
|
||||
void LLVMOrcDisposeJITDylibDefinitionGenerator(
|
||||
LLVMOrcJITDylibDefinitionGeneratorRef DG) {
|
||||
delete unwrap(DG);
|
||||
|
Loading…
x
Reference in New Issue
Block a user