From 494d663175bbaa7db4743105d1efdf78be9cdb03 Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Thu, 16 Jul 2009 02:04:54 +0000 Subject: [PATCH] Make sure targets are initialized before we do anything, even command line processing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75888 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/llc/llc.cpp | 4 +++- tools/lli/lli.cpp | 9 +++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/tools/llc/llc.cpp b/tools/llc/llc.cpp index 34587173ab9..304638c52f7 100644 --- a/tools/llc/llc.cpp +++ b/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/tools/lli/lli.cpp b/tools/lli/lli.cpp index 788aca01d6a..8afdbcad95b 100644 --- a/tools/lli/lli.cpp +++ b/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()) -- 2.34.1