diff options
author | Lang Hames <lhames@gmail.com> | 2015-01-23 22:11:07 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2015-01-23 22:11:07 +0000 |
commit | 28452d85c8dbefcca27ee849c748f9c03d8af01b (patch) | |
tree | 9dc713fc3a31e1c901f702fe90e474c4a4cb8d73 | |
parent | 20f6c0732f8b9e50c66dcb1f65782bd0124b5f5c (diff) | |
download | bcm5719-llvm-28452d85c8dbefcca27ee849c748f9c03d8af01b.tar.gz bcm5719-llvm-28452d85c8dbefcca27ee849c748f9c03d8af01b.zip |
[Orc] Remove a bunch of constructors from ObjectLinkingLayer.
These constructors were causing trouble for MSVC and older GCCs. This should
fix more of the build failures from r226940.
llvm-svn: 226946
-rw-r--r-- | llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h | 53 | ||||
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h | 3 |
2 files changed, 11 insertions, 45 deletions
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h b/llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h index a1d6c48ecd0..ff358007a72 100644 --- a/llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h +++ b/llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h @@ -94,59 +94,24 @@ public: template <typename NotifyLoadedFtor = DoNothingOnNotifyLoaded> class ObjectLinkingLayer : public ObjectLinkingLayerBase { public: + /// @brief LoadedObjectInfo list. Contains a list of owning pointers to /// RuntimeDyld::LoadedObjectInfo instances. typedef std::vector<std::unique_ptr<RuntimeDyld::LoadedObjectInfo>> LoadedObjInfoList; - /// @brief Default construct an ObjectLinkingLayer. - ObjectLinkingLayer() {} - - /// @brief Construct an ObjectLinkingLayer with the given NotifyLoaded - /// functor. - ObjectLinkingLayer(NotifyLoadedFtor NotifyLoaded) - : NotifyLoaded(std::move(NotifyLoaded)) {} - - /// @brief Construct an ObjectLinkingLayer with the given NotifyFinalized - /// functor. - ObjectLinkingLayer(std::function<void(ObjSetHandleT)> NotifyFinalized) - : NotifyFinalized(std::move(NotifyFinalized)) {} - - /// @brief Construct an ObjectLinkingLayer with the given CreateMemoryManager - /// functor. - ObjectLinkingLayer( - std::function<std::unique_ptr<RTDyldMemoryManager>()> CreateMemoryManager) - : CreateMemoryManager(std::move(CreateMemoryManager)) {} - - /// @brief Construct an ObjectLinkingLayer with the given NotifyLoaded and - /// NotifyFinalized functors. - ObjectLinkingLayer(NotifyLoadedFtor NotifyLoaded, - std::function<void(ObjSetHandleT)> NotifyFinalized) - : NotifyLoaded(std::move(NotifyLoaded)), - NotifyFinalized(std::move(NotifyFinalized)) {} - - /// @brief Construct an ObjectLinkingLayer with the given NotifyLoaded and - /// CreateMemoryManager functors. - ObjectLinkingLayer( - NotifyLoadedFtor NotifyLoaded, - std::function<std::unique_ptr<RTDyldMemoryManager>()> CreateMemoryManager) - : NotifyLoaded(std::move(NotifyLoaded)), - CreateMemoryManager(std::move(CreateMemoryManager)) {} + /// @brief Functor to create RTDyldMemoryManager instances. + typedef std::function<std::unique_ptr<RTDyldMemoryManager>()> CreateRTDyldMMFtor; - /// @brief Construct an ObjectLinkingLayer with the given NotifyFinalized and - /// CreateMemoryManager functors. - ObjectLinkingLayer( - std::function<void(ObjSetHandleT)> NotifyFinalized, - std::function<std::unique_ptr<RTDyldMemoryManager>()> CreateMemoryManager) - : NotifyFinalized(std::move(NotifyFinalized)), - CreateMemoryManager(std::move(CreateMemoryManager)) {} + /// @brief Functor for receiving finalization notifications. + typedef std::function<void(ObjSetHandleT)> NotifyFinalizedFtor; /// @brief Construct an ObjectLinkingLayer with the given NotifyLoaded, /// NotifyFinalized and CreateMemoryManager functors. ObjectLinkingLayer( + CreateRTDyldMMFtor CreateMemoryManager, NotifyLoadedFtor NotifyLoaded, - std::function<void(ObjSetHandleT)> NotifyFinalized, - std::function<std::unique_ptr<RTDyldMemoryManager>()> CreateMemoryManager) + NotifyFinalizedFtor NotifyFinalized) : NotifyLoaded(std::move(NotifyLoaded)), NotifyFinalized(std::move(NotifyFinalized)), CreateMemoryManager(std::move(CreateMemoryManager)) {} @@ -245,8 +210,8 @@ public: private: LinkedObjectSetListT LinkedObjSetList; NotifyLoadedFtor NotifyLoaded; - std::function<void(ObjSetHandleT)> NotifyFinalized; - std::function<std::unique_ptr<RTDyldMemoryManager>()> CreateMemoryManager; + NotifyFinalizedFtor NotifyFinalized; + CreateRTDyldMMFtor CreateMemoryManager; }; } // end namespace llvm diff --git a/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h b/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h index 9fdf0efdd90..aea58575629 100644 --- a/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h +++ b/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h @@ -122,7 +122,8 @@ public: : TM(std::move(TM)), MM(std::move(MM)), Mang(this->TM->getSubtargetImpl()->getDataLayout()), NotifyObjectLoaded(*this), NotifyFinalized(*this), - ObjectLayer(NotifyObjectLoaded, NotifyFinalized), + ObjectLayer(ObjectLayerT::CreateRTDyldMMFtor(), NotifyObjectLoaded, + NotifyFinalized), CompileLayer(ObjectLayer, SimpleCompiler(*this->TM)), LazyEmitLayer(CompileLayer) { setDataLayout(this->TM->getSubtargetImpl()->getDataLayout()); |