From 2ecd062c065632eaec6ac7d597c4564955fd4d7d Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Sun, 13 Dec 2020 21:30:38 -0500 Subject: [PATCH] Revert "[JITLink] Add JITLinkDylib type, thread through JITLinkMemoryManager APIs." This reverts commit 8904ee8ac7ebcc50a60de0914abc6862e28b6664. Didn't `git add` llvm/ExecutionEngine/JITLink/JITLinkDylib.h and hence doesn't build anywhere. --- include/llvm/ExecutionEngine/JITLink/JITLink.h | 9 --------- .../JITLink/JITLinkMemoryManager.h | 17 +++-------------- include/llvm/ExecutionEngine/Orc/Core.h | 4 +--- .../Orc/OrcRPCTargetProcessControl.h | 3 +-- .../ExecutionEngine/Orc/OrcRemoteTargetClient.h | 3 +-- lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp | 3 +-- .../JITLink/JITLinkMemoryManager.cpp | 3 +-- lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp | 3 +-- lib/ExecutionEngine/Orc/TPCIndirectionUtils.cpp | 6 +++--- tools/llvm-jitlink/llvm-jitlink.cpp | 2 +- 10 files changed, 13 insertions(+), 40 deletions(-) diff --git a/include/llvm/ExecutionEngine/JITLink/JITLink.h b/include/llvm/ExecutionEngine/JITLink/JITLink.h index 48e64335613..f0b4d9bcd49 100644 --- a/include/llvm/ExecutionEngine/JITLink/JITLink.h +++ b/include/llvm/ExecutionEngine/JITLink/JITLink.h @@ -1270,15 +1270,9 @@ class JITLinkContext { public: using LookupMap = DenseMap; - /// Create a JITLinkContext. - JITLinkContext(const JITLinkDylib *JD) : JD(JD) {} - /// Destroy a JITLinkContext. virtual ~JITLinkContext(); - /// Return the JITLinkDylib that this link is targeting, if any. - const JITLinkDylib *getJITLinkDylib() const { return JD; } - /// Return the MemoryManager to be used for this link. virtual JITLinkMemoryManager &getMemoryManager() = 0; @@ -1330,9 +1324,6 @@ public: /// Called by JITLink to modify the pass pipeline prior to linking. /// The default version performs no modification. virtual Error modifyPassConfig(const Triple &TT, PassConfiguration &Config); - -private: - const JITLinkDylib *JD = nullptr; }; /// Marks all symbols in a graph live. This can be used as a default, diff --git a/include/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h b/include/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h index cee7d6b09c4..a3dc6c1a700 100644 --- a/include/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h +++ b/include/llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h @@ -14,11 +14,10 @@ #define LLVM_EXECUTIONENGINE_JITLINK_JITLINKMEMORYMANAGER_H #include "llvm/ADT/DenseMap.h" -#include "llvm/ExecutionEngine/JITLink/JITLinkDylib.h" #include "llvm/ExecutionEngine/JITSymbol.h" #include "llvm/Support/Error.h" -#include "llvm/Support/MSVCErrorWorkarounds.h" #include "llvm/Support/Memory.h" +#include "llvm/Support/MSVCErrorWorkarounds.h" #include #include @@ -94,25 +93,15 @@ public: virtual ~JITLinkMemoryManager(); /// Create an Allocation object. - /// - /// The JD argument represents the target JITLinkDylib, and can be used by - /// JITLinkMemoryManager implementers to manage per-dylib allocation pools - /// (e.g. one pre-reserved address space slab per dylib to ensure that all - /// allocations for the dylib are within a certain range). The JD argument - /// may be null (representing an allocation not associated with any - /// JITDylib. - /// - /// The request argument describes the segment sizes and permisssions being - /// requested. virtual Expected> - allocate(const JITLinkDylib *JD, const SegmentsRequestMap &Request) = 0; + allocate(const SegmentsRequestMap &Request) = 0; }; /// A JITLinkMemoryManager that allocates in-process memory. class InProcessMemoryManager : public JITLinkMemoryManager { public: Expected> - allocate(const JITLinkDylib *JD, const SegmentsRequestMap &Request) override; + allocate(const SegmentsRequestMap &Request) override; }; } // end namespace jitlink diff --git a/include/llvm/ExecutionEngine/Orc/Core.h b/include/llvm/ExecutionEngine/Orc/Core.h index 3020694ee73..6256872b109 100644 --- a/include/llvm/ExecutionEngine/Orc/Core.h +++ b/include/llvm/ExecutionEngine/Orc/Core.h @@ -17,7 +17,6 @@ #include "llvm/ADT/DenseSet.h" #include "llvm/ADT/FunctionExtras.h" #include "llvm/ADT/IntrusiveRefCntPtr.h" -#include "llvm/ExecutionEngine/JITLink/JITLinkDylib.h" #include "llvm/ExecutionEngine/JITSymbol.h" #include "llvm/ExecutionEngine/Orc/SymbolStringPool.h" #include "llvm/ExecutionEngine/OrcV1Deprecation.h" @@ -888,8 +887,7 @@ public: /// their addresses may be used as keys for resource management. /// JITDylib state changes must be made via an ExecutionSession to guarantee /// that they are synchronized with respect to other JITDylib operations. -class JITDylib : public ThreadSafeRefCountedBase, - public jitlink::JITLinkDylib { +class JITDylib : public ThreadSafeRefCountedBase { friend class AsynchronousSymbolQuery; friend class ExecutionSession; friend class Platform; diff --git a/include/llvm/ExecutionEngine/Orc/OrcRPCTargetProcessControl.h b/include/llvm/ExecutionEngine/Orc/OrcRPCTargetProcessControl.h index 1856e0d7820..0bc209120ce 100644 --- a/include/llvm/ExecutionEngine/Orc/OrcRPCTargetProcessControl.h +++ b/include/llvm/ExecutionEngine/Orc/OrcRPCTargetProcessControl.h @@ -148,8 +148,7 @@ public: OrcRPCTPCJITLinkMemoryManager(OrcRPCTPCImplT &Parent) : Parent(Parent) {} Expected> - allocate(const jitlink::JITLinkDylib *JD, - const SegmentsRequestMap &Request) override { + allocate(const SegmentsRequestMap &Request) override { orcrpctpc::ReserveMemRequest RMR; HostAllocMap HostAllocs; diff --git a/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h b/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h index dfed5e09e4d..b255ddd6416 100644 --- a/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h +++ b/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h @@ -535,8 +535,7 @@ public: } Expected> - allocate(const jitlink::JITLinkDylib *JD, - const SegmentsRequestMap &Request) override { + allocate(const SegmentsRequestMap &Request) override { return RPCMMAlloc::Create(Client, Id, Request); } diff --git a/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp b/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp index 393ed0ea709..7c60d516771 100644 --- a/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp +++ b/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp @@ -266,8 +266,7 @@ Error JITLinkerBase::allocateSegments(const SegmentLayoutMap &Layout) { } LLVM_DEBUG(dbgs() << " }\n"); - if (auto AllocOrErr = - Ctx->getMemoryManager().allocate(Ctx->getJITLinkDylib(), Segments)) + if (auto AllocOrErr = Ctx->getMemoryManager().allocate(Segments)) Alloc = std::move(*AllocOrErr); else return AllocOrErr.takeError(); diff --git a/lib/ExecutionEngine/JITLink/JITLinkMemoryManager.cpp b/lib/ExecutionEngine/JITLink/JITLinkMemoryManager.cpp index fbbb29e9164..68ec9d79af9 100644 --- a/lib/ExecutionEngine/JITLink/JITLinkMemoryManager.cpp +++ b/lib/ExecutionEngine/JITLink/JITLinkMemoryManager.cpp @@ -17,8 +17,7 @@ JITLinkMemoryManager::~JITLinkMemoryManager() = default; JITLinkMemoryManager::Allocation::~Allocation() = default; Expected> -InProcessMemoryManager::allocate(const JITLinkDylib *JD, - const SegmentsRequestMap &Request) { +InProcessMemoryManager::allocate(const SegmentsRequestMap &Request) { using AllocationMap = DenseMap; diff --git a/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp b/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp index f8eb1dcfce4..5dd32fbc224 100644 --- a/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp +++ b/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp @@ -28,8 +28,7 @@ public: ObjectLinkingLayer &Layer, std::unique_ptr MR, std::unique_ptr ObjBuffer) - : JITLinkContext(&MR->getTargetJITDylib()), Layer(Layer), - MR(std::move(MR)), ObjBuffer(std::move(ObjBuffer)) {} + : Layer(Layer), MR(std::move(MR)), ObjBuffer(std::move(ObjBuffer)) {} ~ObjectLinkingLayerJITLinkContext() { // If there is an object buffer return function then use it to diff --git a/lib/ExecutionEngine/Orc/TPCIndirectionUtils.cpp b/lib/ExecutionEngine/Orc/TPCIndirectionUtils.cpp index 7989ec41952..d827cf7b273 100644 --- a/lib/ExecutionEngine/Orc/TPCIndirectionUtils.cpp +++ b/lib/ExecutionEngine/Orc/TPCIndirectionUtils.cpp @@ -109,7 +109,7 @@ Error TPCTrampolinePool::grow() { jitlink::JITLinkMemoryManager::SegmentsRequestMap Request; Request[TrampolinePagePermissions] = {PageSize, static_cast(PageSize), 0}; - auto Alloc = TPC.getMemMgr().allocate(nullptr, Request); + auto Alloc = TPC.getMemMgr().allocate(Request); if (!Alloc) return Alloc.takeError(); @@ -294,7 +294,7 @@ TPCIndirectionUtils::writeResolverBlock(JITTargetAddress ReentryFnAddr, jitlink::JITLinkMemoryManager::SegmentsRequestMap Request; Request[ResolverBlockPermissions] = {TPC.getPageSize(), static_cast(ResolverSize), 0}; - auto Alloc = TPC.getMemMgr().allocate(nullptr, Request); + auto Alloc = TPC.getMemMgr().allocate(Request); if (!Alloc) return Alloc.takeError(); @@ -364,7 +364,7 @@ TPCIndirectionUtils::getIndirectStubs(unsigned NumStubs) { Request[StubPagePermissions] = {PageSize, static_cast(StubBytes), 0}; Request[PointerPagePermissions] = {PageSize, 0, PointerBytes}; - auto Alloc = TPC.getMemMgr().allocate(nullptr, Request); + auto Alloc = TPC.getMemMgr().allocate(Request); if (!Alloc) return Alloc.takeError(); diff --git a/tools/llvm-jitlink/llvm-jitlink.cpp b/tools/llvm-jitlink/llvm-jitlink.cpp index 808a7db9c10..1ba5259988f 100644 --- a/tools/llvm-jitlink/llvm-jitlink.cpp +++ b/tools/llvm-jitlink/llvm-jitlink.cpp @@ -330,7 +330,7 @@ public: } Expected> - allocate(const JITLinkDylib *JD, const SegmentsRequestMap &Request) override { + allocate(const SegmentsRequestMap &Request) override { using AllocationMap = DenseMap;