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 | 4a5697e659a29cf258708097d65a9882b2598958 (patch) | |
tree | 654dc24e6461f496f465d7e15a150a9d24cdf1a1 /llvm/lib/ExecutionEngine/ExecutionEngine.cpp | |
parent | 01fa7701e6ddaba68ed9e093c9cb637138cc2698 (diff) | |
download | bcm5719-llvm-4a5697e659a29cf258708097d65a9882b2598958.tar.gz bcm5719-llvm-4a5697e659a29cf258708097d65a9882b2598958.zip |
[MCJIT] Unique-ptrify the RTDyldMemoryManager member of MCJIT. NFC.
llvm-svn: 223183
Diffstat (limited to 'llvm/lib/ExecutionEngine/ExecutionEngine.cpp')
-rw-r--r-- | llvm/lib/ExecutionEngine/ExecutionEngine.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/llvm/lib/ExecutionEngine/ExecutionEngine.cpp b/llvm/lib/ExecutionEngine/ExecutionEngine.cpp index 9ca0330d792..32d20ea0e30 100644 --- a/llvm/lib/ExecutionEngine/ExecutionEngine.cpp +++ b/llvm/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); |