]> granicus.if.org Git - clang/commitdiff
Use MCJIT.
authorRafael Espindola <rafael.espindola@gmail.com>
Thu, 24 Jul 2014 17:13:09 +0000 (17:13 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Thu, 24 Jul 2014 17:13:09 +0000 (17:13 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@213879 91177308-0d34-0410-b5e6-96231b3b80d8

examples/clang-interpreter/CMakeLists.txt
examples/clang-interpreter/main.cpp

index 3c66881d026b0c48510024d54111074fc67b8f54..74831ded02d5884b5405d93c4a212c4ff2ca9154 100644 (file)
@@ -1,7 +1,7 @@
 set(LLVM_LINK_COMPONENTS
   Core
   ExecutionEngine
-  JIT
+  MCJIT
   Support
   native
   )
index 8278d28cf4131940c0ace19f0c51388bba202da9..19f9f9c4a09cbc97d70b97f72cd244c14e020be7 100644 (file)
@@ -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);
 }