summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2015-11-03 16:10:18 +0000
committerLang Hames <lhames@gmail.com>2015-11-03 16:10:18 +0000
commita4a227f7e881de24ab150d6277d59b256b55d99a (patch)
tree912c05ce58292facd2e6713c95b78045d8fda0bb /llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp
parent862432c90e25f0901b77aff92cc6e48acd4b212b (diff)
downloadbcm5719-llvm-a4a227f7e881de24ab150d6277d59b256b55d99a.tar.gz
bcm5719-llvm-a4a227f7e881de24ab150d6277d59b256b55d99a.zip
[Orc] Directly emit machine code for the x86 resolver block and trampolines.
Bypassing LLVM for this has a number of benefits: 1) Laziness support becomes asm-syntax agnostic (previously lazy jitting didn't work on Windows as the resolver block was in Darwin asm). 2) For cross-process JITs, it allows resolver blocks and trampolines to be emitted directly in the target process, reducing cross process traffic. 3) It should be marginally faster. llvm-svn: 251933
Diffstat (limited to 'llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp')
-rw-r--r--llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp b/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp
index d3effeec97e..d2379cd441d 100644
--- a/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp
@@ -12,20 +12,18 @@
using namespace llvm;
-LLVMOrcJITStackRef LLVMOrcCreateInstance(LLVMTargetMachineRef TM,
- LLVMContextRef Context) {
+LLVMOrcJITStackRef LLVMOrcCreateInstance(LLVMTargetMachineRef TM) {
TargetMachine *TM2(unwrap(TM));
- LLVMContext &Ctx = *unwrap(Context);
Triple T(TM2->getTargetTriple());
- auto CallbackMgrBuilder = OrcCBindingsStack::createCallbackManagerBuilder(T);
+ auto CompileCallbackMgr = OrcCBindingsStack::createCompileCallbackMgr(T);
auto IndirectStubsMgrBuilder =
OrcCBindingsStack::createIndirectStubsMgrBuilder(T);
OrcCBindingsStack *JITStack =
- new OrcCBindingsStack(*TM2, Ctx, CallbackMgrBuilder,
- IndirectStubsMgrBuilder);
+ new OrcCBindingsStack(*TM2, std::move(CompileCallbackMgr),
+ IndirectStubsMgrBuilder);
return wrap(JITStack);
}
OpenPOWER on IntegriCloud