[llvm-commits] [llvm-gcc-4.2] r70438 - /llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp

Bill Wendling isanbard at gmail.com
Wed Apr 29 16:28:48 PDT 2009


Author: void
Date: Wed Apr 29 18:28:45 2009
New Revision: 70438

URL: http://llvm.org/viewvc/llvm-project?rev=70438&view=rev
Log:
Use enums for the optimization level instead of a bare "unsigned' value.

Modified:
    llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp

Modified: llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp?rev=70438&r1=70437&r2=70438&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-backend.cpp Wed Apr 29 18:28:45 2009
@@ -587,11 +587,21 @@
     FunctionPassManager *PM = PerFunctionPasses;    
     HasPerFunctionPasses = true;
 
+    CodeGenOpt::Level OptLevel = CodeGenOpt::Default;
+
+    switch (optimize) {
+    default: break;
+    case 1: OptLevel = CodeGenOpt::One; break;
+    case 2: OptLevel = CodeGenOpt::Two; break;
+    case 3: OptLevel = CodeGenOpt::Aggressive; break;
+    case 4: OptLevel = CodeGenOpt::LTO; break;
+    }
+
     // Normal mode, emit a .s file by running the code generator.
     // Note, this also adds codegenerator level optimization passes.
     switch (TheTarget->addPassesToEmitFile(*PM, *AsmOutRawStream,
                                            TargetMachine::AssemblyFile,
-                                           optimize)) {
+                                           OptLevel)) {
     default:
     case FileModel::Error:
       cerr << "Error interfacing to target machine!\n";
@@ -600,7 +610,7 @@
       break;
     }
 
-    if (TheTarget->addPassesToEmitFileFinish(*PM, 0, optimize)) {
+    if (TheTarget->addPassesToEmitFileFinish(*PM, 0, OptLevel)) {
       cerr << "Error interfacing to target machine!\n";
       exit(1);
     }
@@ -733,11 +743,21 @@
         new FunctionPassManager(new ExistingModuleProvider(TheModule));
       PM->add(new TargetData(*TheTarget->getTargetData()));
 
+      CodeGenOpt::Level OptLevel = CodeGenOpt::Default;
+
+      switch (optimize) {
+      default: break;
+      case 1: OptLevel = CodeGenOpt::One; break;
+      case 2: OptLevel = CodeGenOpt::Two; break;
+      case 3: OptLevel = CodeGenOpt::Aggressive; break;
+      case 4: OptLevel = CodeGenOpt::LTO; break;
+      }
+
       // Normal mode, emit a .s file by running the code generator.
       // Note, this also adds codegenerator level optimization passes.
       switch (TheTarget->addPassesToEmitFile(*PM, *AsmOutRawStream,
                                              TargetMachine::AssemblyFile,
-                                             optimize)) {
+                                             OptLevel)) {
       default:
       case FileModel::Error:
         cerr << "Error interfacing to target machine!\n";
@@ -746,7 +766,7 @@
         break;
       }
 
-      if (TheTarget->addPassesToEmitFileFinish(*PM, 0, optimize)) {
+      if (TheTarget->addPassesToEmitFileFinish(*PM, 0, OptLevel)) {
         cerr << "Error interfacing to target machine!\n";
         exit(1);
       }





More information about the llvm-commits mailing list