summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2018-02-14 22:13:02 +0000
committerLang Hames <lhames@gmail.com>2018-02-14 22:13:02 +0000
commit1cd3dd0bd8ba00a9a613f651fe74868276301f03 (patch)
treed56a717bf2daebc2c9a58132ab7709d29839e0b5 /llvm/lib
parente833fe8ec31e1bc51d59c84af158ac44ed423153 (diff)
downloadbcm5719-llvm-1cd3dd0bd8ba00a9a613f651fe74868276301f03.tar.gz
bcm5719-llvm-1cd3dd0bd8ba00a9a613f651fe74868276301f03.zip
[ORC] Consolidate RTDyldObjectLinkingLayer GetMemMgr and GetResolver into a
unified GetResources callback. Having a single 'GetResources' callback will simplify adding new resources in the future. llvm-svn: 325180
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h6
-rw-r--r--llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h9
2 files changed, 8 insertions, 7 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h b/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h
index 499708e7847..7dc39ebba12 100644
--- a/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h
+++ b/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h
@@ -205,16 +205,14 @@ public:
: ES(SSP), DL(TM.createDataLayout()),
IndirectStubsMgr(IndirectStubsMgrBuilder()), CCMgr(std::move(CCMgr)),
ObjectLayer(ES,
- [](orc::VModuleKey K) {
- return std::make_shared<SectionMemoryManager>();
- },
[this](orc::VModuleKey K) {
auto ResolverI = Resolvers.find(K);
assert(ResolverI != Resolvers.end() &&
"No resolver for module K");
auto Resolver = std::move(ResolverI->second);
Resolvers.erase(ResolverI);
- return Resolver;
+ return ObjLayerT::Resources{
+ std::make_shared<SectionMemoryManager>(), Resolver};
}),
CompileLayer(ObjectLayer, orc::SimpleCompiler(TM)),
CODLayer(ES, CompileLayer,
diff --git a/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h b/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
index 579d68b1333..7e412f677db 100644
--- a/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
+++ b/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
@@ -229,9 +229,12 @@ public:
Resolver(std::make_shared<LinkingORCResolver>(*this)),
ClientResolver(std::move(ClientResolver)), NotifyObjectLoaded(*this),
NotifyFinalized(*this),
- ObjectLayer(ES, [this](VModuleKey K) { return this->MemMgr; },
- [this](VModuleKey K) { return this->Resolver; },
- NotifyObjectLoaded, NotifyFinalized),
+ ObjectLayer(
+ ES,
+ [this](VModuleKey K) {
+ return ObjectLayerT::Resources{this->MemMgr, this->Resolver};
+ },
+ NotifyObjectLoaded, NotifyFinalized),
CompileLayer(ObjectLayer, SimpleCompiler(*this->TM)),
LazyEmitLayer(CompileLayer) {}
OpenPOWER on IntegriCloud