diff --git a/llvm/tools/llc/llc.cpp b/llvm/tools/llc/llc.cpp index 34587173ab97..304638c52f70 100644 --- a/llvm/tools/llc/llc.cpp +++ b/llvm/tools/llc/llc.cpp @@ -210,10 +210,12 @@ int main(int argc, char **argv) { PrettyStackTraceProgram X(argc, argv); LLVMContext &Context = getGlobalContext(); llvm_shutdown_obj Y; // Call llvm_shutdown() on exit. - cl::ParseCommandLineOptions(argc, argv, "llvm system compiler\n"); + // Initialize targets first. InitializeAllTargets(); InitializeAllAsmPrinters(); + + cl::ParseCommandLineOptions(argc, argv, "llvm system compiler\n"); // Load the module to be compiled... std::string ErrorMessage; diff --git a/llvm/tools/lli/lli.cpp b/llvm/tools/lli/lli.cpp index 788aca01d6a0..8afdbcad95b2 100644 --- a/llvm/tools/lli/lli.cpp +++ b/llvm/tools/lli/lli.cpp @@ -96,6 +96,11 @@ int main(int argc, char **argv, char * const *envp) { LLVMContext &Context = getGlobalContext(); atexit(do_shutdown); // Call llvm_shutdown() on exit. + + // If we have a native target, initialize it to ensure it is linked in and + // usable by the JIT. + InitializeNativeTarget(); + cl::ParseCommandLineOptions(argc, argv, "llvm interpreter & dynamic compiler\n"); @@ -142,10 +147,6 @@ int main(int argc, char **argv, char * const *envp) { case '3': OLvl = CodeGenOpt::Aggressive; break; } - // If we have a native target, initialize it to ensure it is linked in and - // usable by the JIT. - InitializeNativeTarget(); - EE = ExecutionEngine::create(MP, ForceInterpreter, &ErrorMsg, OLvl); if (!EE) { if (!ErrorMsg.empty())