From 26c5f1de0adc6edc443e9608a42b947ab82dd5af Mon Sep 17 00:00:00 2001 From: Rafael Espindola <rafael.espindola@gmail.com> Date: Thu, 24 Jul 2014 17:13:09 +0000 Subject: [PATCH] Use MCJIT. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@213879 91177308-0d34-0410-b5e6-96231b3b80d8 --- examples/clang-interpreter/CMakeLists.txt | 2 +- examples/clang-interpreter/main.cpp | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/examples/clang-interpreter/CMakeLists.txt b/examples/clang-interpreter/CMakeLists.txt index 3c66881d026..74831ded02d 100644 --- a/examples/clang-interpreter/CMakeLists.txt +++ b/examples/clang-interpreter/CMakeLists.txt @@ -1,7 +1,7 @@ set(LLVM_LINK_COMPONENTS Core ExecutionEngine - JIT + MCJIT Support native ) diff --git a/examples/clang-interpreter/main.cpp b/examples/clang-interpreter/main.cpp index 8278d28cf41..19f9f9c4a09 100644 --- a/examples/clang-interpreter/main.cpp +++ b/examples/clang-interpreter/main.cpp @@ -18,7 +18,7 @@ #include "clang/Frontend/TextDiagnosticPrinter.h" #include "llvm/ADT/SmallString.h" #include "llvm/ExecutionEngine/ExecutionEngine.h" -#include "llvm/ExecutionEngine/JIT.h" +#include "llvm/ExecutionEngine/MCJIT.h" #include "llvm/IR/Module.h" #include "llvm/Support/FileSystem.h" #include "llvm/Support/Host.h" @@ -45,6 +45,7 @@ std::string GetExecutablePath(const char *Argv0) { static llvm::ExecutionEngine *createExecutionEngine(llvm::Module *M, std::string *ErrorStr) { llvm::EngineBuilder EB = llvm::EngineBuilder(M) + .setUseMCJIT(true) .setEngineKind(llvm::EngineKind::Either) .setErrorStr(ErrorStr); return EB.create(); @@ -52,6 +53,7 @@ static llvm::ExecutionEngine *createExecutionEngine(llvm::Module *M, static int Execute(llvm::Module *Mod, char * const *envp) { llvm::InitializeNativeTarget(); + llvm::InitializeNativeTargetAsmPrinter(); std::string Error; std::unique_ptr<llvm::ExecutionEngine> EE(createExecutionEngine(Mod, &Error)); @@ -70,6 +72,7 @@ static int Execute(llvm::Module *Mod, char * const *envp) { std::vector<std::string> Args; Args.push_back(Mod->getModuleIdentifier()); + EE->finalizeObject(); return EE->runFunctionAsMain(EntryFn, Args, envp); } -- GitLab