summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2015-10-30 03:20:21 +0000
committerLang Hames <lhames@gmail.com>2015-10-30 03:20:21 +0000
commitfd6e8dc36948766db07f7f469c151dad01e45a1a (patch)
treee3253fb71adc8b859a23e36d2a858a5fe90d3154 /llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp
parent9ef327c962b392eac8edb03507818d0dc11932a5 (diff)
downloadbcm5719-llvm-fd6e8dc36948766db07f7f469c151dad01e45a1a.tar.gz
bcm5719-llvm-fd6e8dc36948766db07f7f469c151dad01e45a1a.zip
[Orc] Expose the compile callback API through the C bindings.
llvm-svn: 251683
Diffstat (limited to 'llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp')
-rw-r--r--llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp25
1 files changed, 22 insertions, 3 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp b/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp
index 055636f2a6f..d3effeec97e 100644
--- a/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp
@@ -12,9 +12,6 @@
using namespace llvm;
-DEFINE_SIMPLE_CONVERSION_FUNCTIONS(OrcCBindingsStack, LLVMOrcJITStackRef)
-DEFINE_SIMPLE_CONVERSION_FUNCTIONS(TargetMachine, LLVMTargetMachineRef)
-
LLVMOrcJITStackRef LLVMOrcCreateInstance(LLVMTargetMachineRef TM,
LLVMContextRef Context) {
TargetMachine *TM2(unwrap(TM));
@@ -45,6 +42,28 @@ void LLVMOrcDisposeMangledSymbol(char *MangledName) {
delete[] MangledName;
}
+LLVMOrcTargetAddress
+LLVMOrcCreateLazyCompileCallback(LLVMOrcJITStackRef JITStack,
+ LLVMOrcLazyCompileCallbackFn Callback,
+ void *CallbackCtx) {
+ OrcCBindingsStack &J = *unwrap(JITStack);
+ return J.createLazyCompileCallback(Callback, CallbackCtx);
+}
+
+void LLVMOrcCreateIndirectStub(LLVMOrcJITStackRef JITStack,
+ const char *StubName,
+ LLVMOrcTargetAddress InitAddr) {
+ OrcCBindingsStack &J = *unwrap(JITStack);
+ J.createIndirectStub(StubName, InitAddr);
+}
+
+void LLVMOrcSetIndirectStubPointer(LLVMOrcJITStackRef JITStack,
+ const char *StubName,
+ LLVMOrcTargetAddress NewAddr) {
+ OrcCBindingsStack &J = *unwrap(JITStack);
+ J.setIndirectStubPointer(StubName, NewAddr);
+}
+
LLVMOrcModuleHandle
LLVMOrcAddEagerlyCompiledIR(LLVMOrcJITStackRef JITStack, LLVMModuleRef Mod,
LLVMOrcSymbolResolverFn SymbolResolver,
OpenPOWER on IntegriCloud