Default llc / lli optimization to "Default", which corresponds to -O1 / -O2.
authorEvan Cheng <evan.cheng@apple.com>
Mon, 4 May 2009 23:05:19 +0000 (23:05 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Mon, 4 May 2009 23:05:19 +0000 (23:05 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70934 91177308-0d34-0410-b5e6-96231b3b80d8

tools/llc/llc.cpp
tools/lli/lli.cpp

index e5560dad05966c89ad5d5e00822d87dd705d8bf0..4808f0e529cc435694ea1b0dc991bfbbeb2829e4 100644 (file)
@@ -55,10 +55,11 @@ OutputFilename("o", cl::desc("Output filename"), cl::value_desc("filename"));
 
 static cl::opt<bool> Force("f", cl::desc("Overwrite output files"));
 
-// Determine optimization level. Level -O0 is equivalent to "fast" code gen.
+// Determine optimization level.
 static cl::opt<char>
 OptLevel("O",
-         cl::desc("Optimization level. [-O0, -O1, -O2, or -O3]"),
+         cl::desc("Optimization level. [-O0, -O1, -O2, or -O3] "
+                  "(default = '-O2')"),
          cl::Prefix,
          cl::ZeroOrMore,
          cl::init(' '));
@@ -253,8 +254,7 @@ int main(int argc, char **argv) {
   raw_ostream *Out = GetOutputStream(argv[0]);
   if (Out == 0) return 1;
 
-  CodeGenOpt::Level OLvl = CodeGenOpt::Aggressive;
-
+  CodeGenOpt::Level OLvl = CodeGenOpt::Default;
   switch (OptLevel) {
   default:
     std::cerr << argv[0] << ": invalid optimization level.\n";
index 812e52c8a963dd23a6ba623a23226aa29993a738..6d3cbbc1f5fc4a3ba2de01802a7ad1138a15e588 100644 (file)
@@ -43,10 +43,14 @@ namespace {
                                  cl::desc("Force interpretation: disable JIT"),
                                  cl::init(false));
 
-  cl::opt<bool> Fast("fast", 
-                     cl::desc("Generate code quickly, "
-                              "potentially sacrificing code quality"),
-                     cl::init(false));
+  // Determine optimization level.
+  cl::opt<char>
+  OptLevel("O",
+           cl::desc("Optimization level. [-O0, -O1, -O2, or -O3] "
+                    "(default = '-O2')"),
+           cl::Prefix,
+           cl::ZeroOrMore,
+           cl::init(' '));
 
   cl::opt<std::string>
   TargetTriple("mtriple", cl::desc("Override target triple for module"));
@@ -122,9 +126,19 @@ int main(int argc, char **argv, char * const *envp) {
   if (!TargetTriple.empty())
     Mod->setTargetTriple(TargetTriple);
 
-  EE = ExecutionEngine::create(MP, ForceInterpreter, &ErrorMsg,
-                               Fast ?
-                                 CodeGenOpt::None : CodeGenOpt::Aggressive);
+  CodeGenOpt::Level OLvl = CodeGenOpt::Default;
+  switch (OptLevel) {
+  default:
+    std::cerr << argv[0] << ": invalid optimization level.\n";
+    return 1;
+  case ' ': break;
+  case '0': OLvl = CodeGenOpt::None; break;
+  case '1':
+  case '2': OLvl = CodeGenOpt::Default; break;
+  case '3': OLvl = CodeGenOpt::Aggressive; break;
+  }
+
+  EE = ExecutionEngine::create(MP, ForceInterpreter, &ErrorMsg, OLvl);
   if (!EE && !ErrorMsg.empty()) {
     std::cerr << argv[0] << ":error creating EE: " << ErrorMsg << "\n";
     exit(1);