summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2015-01-23 22:11:07 +0000
committerLang Hames <lhames@gmail.com>2015-01-23 22:11:07 +0000
commit28452d85c8dbefcca27ee849c748f9c03d8af01b (patch)
tree9dc713fc3a31e1c901f702fe90e474c4a4cb8d73
parent20f6c0732f8b9e50c66dcb1f65782bd0124b5f5c (diff)
downloadbcm5719-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.h53
-rw-r--r--llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h3
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());
OpenPOWER on IntegriCloud