Author: Stefan Gränitz Date: 2021-01-15T12:53:24+01:00 New Revision: a5eb9df1e3ba0a1c5d755f29f6f4cdcca4aec285
URL: https://github.com/llvm/llvm-project/commit/a5eb9df1e3ba0a1c5d755f29f6f4cdcca4aec285 DIFF: https://github.com/llvm/llvm-project/commit/a5eb9df1e3ba0a1c5d755f29f6f4cdcca4aec285.diff LOG: [Orc][NFC] Turn LLJIT member ObjTransformLayer into unique_ptr All other layers in LLJIT are stored as unique_ptr's already. At this point, it is not strictly necessary for ObjTransformLayer, but it makes a follow-up change more straightforward. Reviewed By: lhames Differential Revision: https://reviews.llvm.org/D94689 Added: Modified: llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h llvm/lib/ExecutionEngine/Orc/LLJIT.cpp Removed: ################################################################################ diff --git a/llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h b/llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h index 354cf8ff757e..b0a06aa9cb4b 100644 --- a/llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h +++ b/llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h @@ -19,7 +19,6 @@ #include "llvm/ExecutionEngine/Orc/IRCompileLayer.h" #include "llvm/ExecutionEngine/Orc/IRTransformLayer.h" #include "llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h" -#include "llvm/ExecutionEngine/Orc/ObjectTransformLayer.h" #include "llvm/ExecutionEngine/Orc/ThreadSafeModule.h" #include "llvm/Support/Debug.h" #include "llvm/Support/ThreadPool.h" @@ -29,6 +28,7 @@ namespace orc { class LLJITBuilderState; class LLLazyJITBuilderState; +class ObjectTransformLayer; class TargetProcessControl; /// A pre-fabricated ORC JIT stack that can serve as an alternative to MCJIT. @@ -169,7 +169,7 @@ class LLJIT { ObjectLayer &getObjLinkingLayer() { return *ObjLinkingLayer; } /// Returns a reference to the object transform layer. - ObjectTransformLayer &getObjTransformLayer() { return ObjTransformLayer; } + ObjectTransformLayer &getObjTransformLayer() { return *ObjTransformLayer; } /// Returns a reference to the IR transform layer. IRTransformLayer &getIRTransformLayer() { return *TransformLayer; } @@ -209,7 +209,7 @@ class LLJIT { std::unique_ptr<ThreadPool> CompileThreads; std::unique_ptr<ObjectLayer> ObjLinkingLayer; - ObjectTransformLayer ObjTransformLayer; + std::unique_ptr<ObjectTransformLayer> ObjTransformLayer; std::unique_ptr<IRCompileLayer> CompileLayer; std::unique_ptr<IRTransformLayer> TransformLayer; std::unique_ptr<IRTransformLayer> InitHelperTransformLayer; diff --git a/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp b/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp index 13d447563d37..056f7b7e5cc0 100644 --- a/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp +++ b/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp @@ -11,6 +11,7 @@ #include "llvm/ExecutionEngine/JITLink/JITLinkMemoryManager.h" #include "llvm/ExecutionEngine/Orc/MachOPlatform.h" #include "llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h" +#include "llvm/ExecutionEngine/Orc/ObjectTransformLayer.h" #include "llvm/ExecutionEngine/Orc/OrcError.h" #include "llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h" #include "llvm/ExecutionEngine/Orc/TargetProcessControl.h" @@ -997,7 +998,7 @@ Error LLJIT::addObjectFile(ResourceTrackerSP RT, std::unique_ptr<MemoryBuffer> Obj) { assert(Obj && "Can not add null object"); - return ObjTransformLayer.add(std::move(RT), std::move(Obj)); + return ObjTransformLayer->add(std::move(RT), std::move(Obj)); } Error LLJIT::addObjectFile(JITDylib &JD, std::unique_ptr<MemoryBuffer> Obj) { @@ -1057,8 +1058,7 @@ LLJIT::createCompileFunction(LLJITBuilderState &S, LLJIT::LLJIT(LLJITBuilderState &S, Error &Err) : ES(S.ES ? std::move(S.ES) : std::make_unique<ExecutionSession>()), Main(), DL(""), TT(S.JTMB->getTargetTriple()), - ObjLinkingLayer(createObjectLinkingLayer(S, *ES)), - ObjTransformLayer(*this->ES, *ObjLinkingLayer) { + ObjLinkingLayer(createObjectLinkingLayer(S, *ES)) { ErrorAsOutParameter _(&Err); @@ -1078,6 +1078,9 @@ LLJIT::LLJIT(LLJITBuilderState &S, Error &Err) return; } + ObjTransformLayer = + std::make_unique<ObjectTransformLayer>(*ES, *ObjLinkingLayer); + { auto CompileFunction = createCompileFunction(S, std::move(*S.JTMB)); if (!CompileFunction) { @@ -1085,7 +1088,7 @@ LLJIT::LLJIT(LLJITBuilderState &S, Error &Err) return; } CompileLayer = std::make_unique<IRCompileLayer>( - *ES, ObjTransformLayer, std::move(*CompileFunction)); + *ES, *ObjTransformLayer, std::move(*CompileFunction)); TransformLayer = std::make_unique<IRTransformLayer>(*ES, *CompileLayer); InitHelperTransformLayer = std::make_unique<IRTransformLayer>(*ES, *TransformLayer); _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits