summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.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/OrcCBindingsStack.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/OrcCBindingsStack.cpp')
-rw-r--r--llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.cpp13
1 files changed, 4 insertions, 9 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.cpp b/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.cpp
index 93c698da104..7326fa7e2f8 100644
--- a/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.cpp
@@ -17,19 +17,14 @@
using namespace llvm;
-OrcCBindingsStack::CallbackManagerBuilder
-OrcCBindingsStack::createCallbackManagerBuilder(Triple T) {
+std::unique_ptr<OrcCBindingsStack::CompileCallbackMgr>
+OrcCBindingsStack::createCompileCallbackMgr(Triple T) {
switch (T.getArch()) {
default: return nullptr;
case Triple::x86_64: {
- typedef orc::JITCompileCallbackManager<CompileLayerT,
- orc::OrcX86_64> CCMgrT;
- return [](CompileLayerT &CompileLayer, RuntimeDyld::MemoryManager &MemMgr,
- LLVMContext &Context) {
- return llvm::make_unique<CCMgrT>(CompileLayer, MemMgr, Context, 0,
- 64);
- };
+ typedef orc::JITCompileCallbackManager<orc::OrcX86_64> CCMgrT;
+ return llvm::make_unique<CCMgrT>(0);
}
}
}
OpenPOWER on IntegriCloud