Eliminate CodeGenOptions::TimePasses.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90118 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/clang/Frontend/ASTConsumers.h b/include/clang/Frontend/ASTConsumers.h
index 0e7d55e..26efa97 100644
--- a/include/clang/Frontend/ASTConsumers.h
+++ b/include/clang/Frontend/ASTConsumers.h
@@ -83,6 +83,7 @@
                                    const LangOptions &Features,
                                    const CodeGenOptions &CodeGenOpts,
                                    const TargetOptions &TargetOpts,
+                                   bool TimePasses,
                                    const std::string &ModuleID,
                                    llvm::raw_ostream *OS,
                                    llvm::LLVMContext& C);
diff --git a/lib/Driver/CC1Options.cpp b/lib/Driver/CC1Options.cpp
index 103f645..f2a8492 100644
--- a/lib/Driver/CC1Options.cpp
+++ b/lib/Driver/CC1Options.cpp
@@ -194,7 +194,6 @@
   // FIXME: Eliminate this dependency?
 //   if (Lang.CPlusPlus)
 //     Opts.NoCommon = 1;
-//   Opts.TimePasses = TimePasses;
 
   // FIXME: Put elsewhere?
 #ifdef NDEBUG
diff --git a/lib/Frontend/Backend.cpp b/lib/Frontend/Backend.cpp
index e895a66..31c6c50 100644
--- a/lib/Frontend/Backend.cpp
+++ b/lib/Frontend/Backend.cpp
@@ -76,8 +76,9 @@
   public:
     BackendConsumer(BackendAction action, Diagnostic &Diags,
                     const LangOptions &langopts, const CodeGenOptions &compopts,
-                    const TargetOptions &targetopts, const std::string &infile,
-                    llvm::raw_ostream* OS, LLVMContext& C) :
+                    const TargetOptions &targetopts, bool TimePasses,
+                    const std::string &infile, llvm::raw_ostream *OS,
+                    LLVMContext& C) :
       Action(action),
       CodeGenOpts(compopts),
       LangOpts(langopts),
@@ -93,8 +94,7 @@
         FormattedOutStream.setStream(*AsmOutStream,
                                      formatted_raw_ostream::PRESERVE_STREAM);
 
-      // Enable -time-passes if -ftime-report is enabled.
-      llvm::TimePassesIsEnabled = CodeGenOpts.TimePasses;
+      llvm::TimePassesIsEnabled = TimePasses;
     }
 
     ~BackendConsumer() {
@@ -108,7 +108,7 @@
     virtual void Initialize(ASTContext &Ctx) {
       Context = &Ctx;
 
-      if (CodeGenOpts.TimePasses)
+      if (llvm::TimePassesIsEnabled)
         LLVMIRGeneration.startTimer();
 
       Gen->Initialize(Ctx);
@@ -117,7 +117,7 @@
       ModuleProvider = new ExistingModuleProvider(TheModule);
       TheTargetData = new llvm::TargetData(Ctx.Target.getTargetDescription());
 
-      if (CodeGenOpts.TimePasses)
+      if (llvm::TimePassesIsEnabled)
         LLVMIRGeneration.stopTimer();
     }
 
@@ -126,24 +126,24 @@
                                      Context->getSourceManager(),
                                      "LLVM IR generation of declaration");
 
-      if (CodeGenOpts.TimePasses)
+      if (llvm::TimePassesIsEnabled)
         LLVMIRGeneration.startTimer();
 
       Gen->HandleTopLevelDecl(D);
 
-      if (CodeGenOpts.TimePasses)
+      if (llvm::TimePassesIsEnabled)
         LLVMIRGeneration.stopTimer();
     }
 
     virtual void HandleTranslationUnit(ASTContext &C) {
       {
         PrettyStackTraceString CrashInfo("Per-file LLVM IR generation");
-        if (CodeGenOpts.TimePasses)
+        if (llvm::TimePassesIsEnabled)
           LLVMIRGeneration.startTimer();
 
         Gen->HandleTranslationUnit(C);
 
-        if (CodeGenOpts.TimePasses)
+        if (llvm::TimePassesIsEnabled)
           LLVMIRGeneration.stopTimer();
       }
 
@@ -239,7 +239,7 @@
       BackendArgs.push_back("-nozero-initialized-in-bss");
     BackendArgs.push_back("-relocation-model");
     BackendArgs.push_back(CodeGenOpts.RelocationModel.c_str());
-    if (CodeGenOpts.TimePasses)
+    if (llvm::TimePassesIsEnabled)
       BackendArgs.push_back("-time-passes");
     if (CodeGenOpts.UnwindTables)
       BackendArgs.push_back("-unwind-tables");
@@ -350,7 +350,7 @@
   if (!TheModule || !TheTargetData)
     return;
 
-  TimeRegion Region(CodeGenOpts.TimePasses ? &CodeGenerationTime : 0);
+  TimeRegion Region(llvm::TimePassesIsEnabled ? &CodeGenerationTime : 0);
 
   // Make sure IR generation is happy with the module. This is
   // released by the module provider.
@@ -407,9 +407,10 @@
                                           const LangOptions &LangOpts,
                                           const CodeGenOptions &CodeGenOpts,
                                           const TargetOptions &TargetOpts,
+                                          bool TimePasses,
                                           const std::string& InFile,
                                           llvm::raw_ostream* OS,
                                           LLVMContext& C) {
   return new BackendConsumer(Action, Diags, LangOpts, CodeGenOpts,
-                             TargetOpts, InFile, OS, C);
+                             TargetOpts, TimePasses, InFile, OS, C);
 }
diff --git a/lib/Frontend/FrontendActions.cpp b/lib/Frontend/FrontendActions.cpp
index 8092b71..27e194e 100644
--- a/lib/Frontend/FrontendActions.cpp
+++ b/lib/Frontend/FrontendActions.cpp
@@ -170,7 +170,8 @@
     OS.reset(CI.createDefaultOutputFile(true, InFile, "bc"));
 
   return CreateBackendConsumer(BA, CI.getDiagnostics(), CI.getLangOpts(),
-                               CI.getCodeGenOpts(), CI.getTargetOpts(), InFile,
+                               CI.getCodeGenOpts(), CI.getTargetOpts(),
+                               CI.getFrontendOpts().ShowTimers, InFile,
                                OS.take(), CI.getLLVMContext());
 }
 
diff --git a/tools/clang-cc/Options.cpp b/tools/clang-cc/Options.cpp
index 710a928..ed491d8 100644
--- a/tools/clang-cc/Options.cpp
+++ b/tools/clang-cc/Options.cpp
@@ -795,8 +795,7 @@
 }
 
 void clang::InitializeCodeGenOptions(CodeGenOptions &Opts,
-                                     const LangOptions &Lang,
-                                     bool TimePasses) {
+                                     const LangOptions &Lang) {
   using namespace codegenoptions;
 
   // -Os implies -O2
@@ -830,7 +829,6 @@
   // FIXME: Eliminate this dependency?
   if (Lang.CPlusPlus)
     Opts.NoCommon = 1;
-  Opts.TimePasses = TimePasses;
 
 #ifdef NDEBUG
   Opts.VerifyModule = 0;
diff --git a/tools/clang-cc/Options.h b/tools/clang-cc/Options.h
index 8367223..91e37f2 100644
--- a/tools/clang-cc/Options.h
+++ b/tools/clang-cc/Options.h
@@ -30,8 +30,7 @@
 void InitializeAnalyzerOptions(AnalyzerOptions &Opts);
 
 void InitializeCodeGenOptions(CodeGenOptions &Opts,
-                              const LangOptions &Lang,
-                              bool TimePasses);
+                              const LangOptions &Lang);
 
 void InitializeDependencyOutputOptions(DependencyOutputOptions &Opts);
 
diff --git a/tools/clang-cc/clang-cc.cpp b/tools/clang-cc/clang-cc.cpp
index ab3ede9..8eae5a1 100644
--- a/tools/clang-cc/clang-cc.cpp
+++ b/tools/clang-cc/clang-cc.cpp
@@ -183,8 +183,7 @@
   InitializePreprocessorOutputOptions(Opts.getPreprocessorOutputOpts());
 
   // Initialize backend options.
-  InitializeCodeGenOptions(Opts.getCodeGenOpts(), Opts.getLangOpts(),
-                           Opts.getFrontendOpts().ShowTimers);
+  InitializeCodeGenOptions(Opts.getCodeGenOpts(), Opts.getLangOpts());
 
   return true;
 }