forked from OSchip/llvm-project
[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
This commit is contained in:
parent
2b8db40c92
commit
a5eb9df1e3
|
@ -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 @@ public:
|
|||
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 @@ protected:
|
|||
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;
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue