diff options
author | Lang Hames <lhames@gmail.com> | 2014-12-03 00:51:19 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2014-12-03 00:51:19 +0000 |
commit | 5ab94e7135fe4fabbe9934e344b894de21063d92 (patch) | |
tree | 688abd0848ea40f1a3c8352b25aee5a4ca21e722 /lib/ExecutionEngine/ExecutionEngine.cpp | |
parent | 1dce7b19a06742fe8bf7bf1948a8dfdcb71dd118 (diff) |
[MCJIT] Unique-ptrify the RTDyldMemoryManager member of MCJIT. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223183 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/ExecutionEngine/ExecutionEngine.cpp')
-rw-r--r-- | lib/ExecutionEngine/ExecutionEngine.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/lib/ExecutionEngine/ExecutionEngine.cpp b/lib/ExecutionEngine/ExecutionEngine.cpp index 9ca0330d792..32d20ea0e30 100644 --- a/lib/ExecutionEngine/ExecutionEngine.cpp +++ b/lib/ExecutionEngine/ExecutionEngine.cpp @@ -44,7 +44,8 @@ STATISTIC(NumGlobals , "Number of global vars initialized"); ExecutionEngine *(*ExecutionEngine::MCJITCtor)( std::unique_ptr<Module> M, std::string *ErrorStr, - RTDyldMemoryManager *MCJMM, std::unique_ptr<TargetMachine> TM) = nullptr; + std::unique_ptr<RTDyldMemoryManager> MCJMM, + std::unique_ptr<TargetMachine> TM) = nullptr; ExecutionEngine *(*ExecutionEngine::InterpCtor)(std::unique_ptr<Module> M, std::string *ErrorStr) =nullptr; @@ -392,6 +393,19 @@ int ExecutionEngine::runFunctionAsMain(Function *Fn, return runFunction(Fn, GVArgs).IntVal.getZExtValue(); } +EngineBuilder::EngineBuilder(std::unique_ptr<Module> M) + : M(std::move(M)), MCJMM(nullptr) { + InitEngine(); +} + +EngineBuilder::~EngineBuilder() {} + +EngineBuilder &EngineBuilder::setMCJITMemoryManager( + std::unique_ptr<RTDyldMemoryManager> mcjmm) { + MCJMM = std::move(mcjmm); + return *this; +} + void EngineBuilder::InitEngine() { WhichEngine = EngineKind::Either; ErrorStr = nullptr; @@ -443,7 +457,7 @@ ExecutionEngine *EngineBuilder::create(TargetMachine *TM) { ExecutionEngine *EE = nullptr; if (ExecutionEngine::MCJITCtor) - EE = ExecutionEngine::MCJITCtor(std::move(M), ErrorStr, MCJMM, + EE = ExecutionEngine::MCJITCtor(std::move(M), ErrorStr, std::move(MCJMM), std::move(TheTM)); if (EE) { EE->setVerifyModules(VerifyModules); |