diff options
author | Alp Toker <alp@nuanti.com> | 2014-07-01 03:19:50 +0000 |
---|---|---|
committer | Alp Toker <alp@nuanti.com> | 2014-07-01 03:19:50 +0000 |
commit | 60c88cbf7fb90ed98caa2c920c01b38f31a3734e (patch) | |
tree | 1ef3bd0d1969867de62c3d5c3f1671f8c5f21631 /clang/examples/clang-interpreter/main.cpp | |
parent | 568c31f236e71e9771c5c076ea51eb01f4e6fa57 (diff) | |
download | bcm5719-llvm-60c88cbf7fb90ed98caa2c920c01b38f31a3734e.tar.gz bcm5719-llvm-60c88cbf7fb90ed98caa2c920c01b38f31a3734e.zip |
clang-interpreter: use LLVM interpreter if JIT is unavailable
Update the strategy in r212083 to try JIT first and otherwise fall back to the
interpreter. This gives the best of both worlds and still builds fine with no
targets enabled.
Requires supporting changes from LLVM r212086.
llvm-svn: 212087
Diffstat (limited to 'clang/examples/clang-interpreter/main.cpp')
-rw-r--r-- | clang/examples/clang-interpreter/main.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/clang/examples/clang-interpreter/main.cpp b/clang/examples/clang-interpreter/main.cpp index c255f51cee8..fb9d298f0ac 100644 --- a/clang/examples/clang-interpreter/main.cpp +++ b/clang/examples/clang-interpreter/main.cpp @@ -18,6 +18,7 @@ #include "clang/Frontend/TextDiagnosticPrinter.h" #include "llvm/ADT/SmallString.h" #include "llvm/ExecutionEngine/ExecutionEngine.h" +#include "llvm/ExecutionEngine/JIT.h" #include "llvm/IR/Module.h" #include "llvm/Support/FileSystem.h" #include "llvm/Support/Host.h" @@ -42,12 +43,11 @@ std::string GetExecutablePath(const char *Argv0) { } static int Execute(llvm::Module *Mod, char * const *envp) { - // To JIT instead of interpreting, call llvm::InitializeNativeTarget() here - // and pass ForceInterpreter=false to ExecutionEngine::create(). + llvm::InitializeNativeTarget(); std::string Error; std::unique_ptr<llvm::ExecutionEngine> EE( - llvm::ExecutionEngine::create(Mod, /*ForceInterpreter*/ true, &Error)); + llvm::ExecutionEngine::create(Mod, /*ForceInterpreter*/ false, &Error)); if (!EE) { llvm::errs() << "unable to make execution engine: " << Error << "\n"; return 255; |