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