diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-07-16 02:04:54 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-07-16 02:04:54 +0000 |
commit | f2d8f815d7d55412703fdd774532528e5fff722f (patch) | |
tree | 7290794729190259d23db08f67dcd2dd1bf2ef6a | |
parent | bf79dcb6c45fdf395584ce127852e75cf44def3b (diff) | |
download | external_llvm-f2d8f815d7d55412703fdd774532528e5fff722f.zip external_llvm-f2d8f815d7d55412703fdd774532528e5fff722f.tar.gz external_llvm-f2d8f815d7d55412703fdd774532528e5fff722f.tar.bz2 |
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
-rw-r--r-- | tools/llc/llc.cpp | 4 | ||||
-rw-r--r-- | 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 3458717..304638c 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 788aca0..8afdbca 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()) |