[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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@226946 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Lang Hames 2015-01-23 22:11:07 +00:00
parent 511a3c71fc
commit 0ace78e7d4
2 changed files with 11 additions and 45 deletions

View File

@ -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 Functor to create RTDyldMemoryManager instances.
typedef std::function<std::unique_ptr<RTDyldMemoryManager>()> CreateRTDyldMMFtor;
/// @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 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

View File

@ -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());