From 6543cc4bfc6fadd9474a0a2f71cbf3a2f5a21b75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Bylica?= Date: Thu, 18 Dec 2014 14:32:30 +0100 Subject: [PATCH] Execution Engine cleanups (reverted from commit bd85efa299e661228a1ac6283b5fad14e09f88d9) --- libevmjit/ExecutionEngine.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libevmjit/ExecutionEngine.cpp b/libevmjit/ExecutionEngine.cpp index 17d57818c..162851ae8 100644 --- a/libevmjit/ExecutionEngine.cpp +++ b/libevmjit/ExecutionEngine.cpp @@ -52,11 +52,14 @@ ReturnCode ExecutionEngine::run(std::unique_ptr _module, RuntimeDa static const auto program = "EVM JIT"; llvm::PrettyStackTraceProgram X(1, &program); + llvm::InitializeNativeTarget(); llvm::InitializeNativeTargetAsmPrinter(); llvm::EngineBuilder builder(_module.get()); builder.setEngineKind(llvm::EngineKind::JIT); builder.setUseMCJIT(true); + std::unique_ptr memoryManager(new llvm::SectionMemoryManager); + builder.setMCJITMemoryManager(memoryManager.get()); builder.setOptLevel(llvm::CodeGenOpt::None); auto triple = llvm::Triple(llvm::sys::getProcessTriple()); @@ -69,6 +72,7 @@ ReturnCode ExecutionEngine::run(std::unique_ptr _module, RuntimeDa if (!exec.engine) return ReturnCode::LLVMConfigError; _module.release(); // Successfully created llvm::ExecutionEngine takes ownership of the module + memoryManager.release(); // and memory manager exec.engine->setObjectCache(Cache::getObjectCache());