From 8e7050569275493e9a1aed54dacb039320abe853 Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Mon, 30 Nov 2009 08:39:52 +0000 Subject: [PATCH] Eliminate CodeGenOptions::TimePasses. llvm-svn: 90118 --- clang/include/clang/Frontend/ASTConsumers.h | 1 + clang/lib/Driver/CC1Options.cpp | 1 - clang/lib/Frontend/Backend.cpp | 27 +++++++++++---------- clang/lib/Frontend/FrontendActions.cpp | 3 ++- clang/tools/clang-cc/Options.cpp | 4 +-- clang/tools/clang-cc/Options.h | 3 +-- clang/tools/clang-cc/clang-cc.cpp | 3 +-- 7 files changed, 20 insertions(+), 22 deletions(-) diff --git a/clang/include/clang/Frontend/ASTConsumers.h b/clang/include/clang/Frontend/ASTConsumers.h index 0e7d55e6e45b..26efa9745600 100644 --- a/clang/include/clang/Frontend/ASTConsumers.h +++ b/clang/include/clang/Frontend/ASTConsumers.h @@ -83,6 +83,7 @@ ASTConsumer *CreateBackendConsumer(BackendAction Action, 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/clang/lib/Driver/CC1Options.cpp b/clang/lib/Driver/CC1Options.cpp index 103f645103d4..f2a8492f0a8b 100644 --- a/clang/lib/Driver/CC1Options.cpp +++ b/clang/lib/Driver/CC1Options.cpp @@ -194,7 +194,6 @@ static void ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, // FIXME: Eliminate this dependency? // if (Lang.CPlusPlus) // Opts.NoCommon = 1; -// Opts.TimePasses = TimePasses; // FIXME: Put elsewhere? #ifdef NDEBUG diff --git a/clang/lib/Frontend/Backend.cpp b/clang/lib/Frontend/Backend.cpp index e895a666973f..31c6c5027be2 100644 --- a/clang/lib/Frontend/Backend.cpp +++ b/clang/lib/Frontend/Backend.cpp @@ -76,8 +76,9 @@ namespace { 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 @@ namespace { 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 @@ namespace { virtual void Initialize(ASTContext &Ctx) { Context = &Ctx; - if (CodeGenOpts.TimePasses) + if (llvm::TimePassesIsEnabled) LLVMIRGeneration.startTimer(); Gen->Initialize(Ctx); @@ -117,7 +117,7 @@ namespace { ModuleProvider = new ExistingModuleProvider(TheModule); TheTargetData = new llvm::TargetData(Ctx.Target.getTargetDescription()); - if (CodeGenOpts.TimePasses) + if (llvm::TimePassesIsEnabled) LLVMIRGeneration.stopTimer(); } @@ -126,24 +126,24 @@ namespace { 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 @@ bool BackendConsumer::AddEmitPasses(std::string &Error) { 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 @@ void BackendConsumer::EmitAssembly() { 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 @@ ASTConsumer *clang::CreateBackendConsumer(BackendAction Action, 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/clang/lib/Frontend/FrontendActions.cpp b/clang/lib/Frontend/FrontendActions.cpp index 8092b715e362..27e194e6f108 100644 --- a/clang/lib/Frontend/FrontendActions.cpp +++ b/clang/lib/Frontend/FrontendActions.cpp @@ -170,7 +170,8 @@ ASTConsumer *CodeGenAction::CreateASTConsumer(CompilerInstance &CI, 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/clang/tools/clang-cc/Options.cpp b/clang/tools/clang-cc/Options.cpp index 710a928da6d7..ed491d8e977c 100644 --- a/clang/tools/clang-cc/Options.cpp +++ b/clang/tools/clang-cc/Options.cpp @@ -795,8 +795,7 @@ void clang::InitializeAnalyzerOptions(AnalyzerOptions &Opts) { } void clang::InitializeCodeGenOptions(CodeGenOptions &Opts, - const LangOptions &Lang, - bool TimePasses) { + const LangOptions &Lang) { using namespace codegenoptions; // -Os implies -O2 @@ -830,7 +829,6 @@ void clang::InitializeCodeGenOptions(CodeGenOptions &Opts, // FIXME: Eliminate this dependency? if (Lang.CPlusPlus) Opts.NoCommon = 1; - Opts.TimePasses = TimePasses; #ifdef NDEBUG Opts.VerifyModule = 0; diff --git a/clang/tools/clang-cc/Options.h b/clang/tools/clang-cc/Options.h index 83672231ca1b..91e37f261103 100644 --- a/clang/tools/clang-cc/Options.h +++ b/clang/tools/clang-cc/Options.h @@ -30,8 +30,7 @@ class TargetOptions; void InitializeAnalyzerOptions(AnalyzerOptions &Opts); void InitializeCodeGenOptions(CodeGenOptions &Opts, - const LangOptions &Lang, - bool TimePasses); + const LangOptions &Lang); void InitializeDependencyOutputOptions(DependencyOutputOptions &Opts); diff --git a/clang/tools/clang-cc/clang-cc.cpp b/clang/tools/clang-cc/clang-cc.cpp index ab3ede965874..8eae5a1fac7a 100644 --- a/clang/tools/clang-cc/clang-cc.cpp +++ b/clang/tools/clang-cc/clang-cc.cpp @@ -183,8 +183,7 @@ static bool ConstructCompilerInvocation(CompilerInvocation &Opts, InitializePreprocessorOutputOptions(Opts.getPreprocessorOutputOpts()); // Initialize backend options. - InitializeCodeGenOptions(Opts.getCodeGenOpts(), Opts.getLangOpts(), - Opts.getFrontendOpts().ShowTimers); + InitializeCodeGenOptions(Opts.getCodeGenOpts(), Opts.getLangOpts()); return true; }