diff options
author | Fangrui Song <i@maskray.me> | 2025-01-12 13:17:49 -0800 |
---|---|---|
committer | Fangrui Song <i@maskray.me> | 2025-01-12 13:17:49 -0800 |
commit | 5c0aa31c3cb448065f12ede53e4dd54a9a98f650 (patch) | |
tree | b30a23bdc1ddd8271754fbe6e180df8a8d954895 | |
parent | f5a35a31bfe6cbc16bec0c130f2bb3632dbf1fbf (diff) | |
download | llvm-5c0aa31c3cb448065f12ede53e4dd54a9a98f650.zip llvm-5c0aa31c3cb448065f12ede53e4dd54a9a98f650.tar.gz llvm-5c0aa31c3cb448065f12ede53e4dd54a9a98f650.tar.bz2 |
-ftime-report: Move FrontendTimer closer to TimeTraceScope
... to improve consistency and make "Clang time report" cover
`FrontendAction::BeginSourceFile` and `FrontendAction::EndSourceFile`.
-rw-r--r-- | clang/include/clang/Frontend/CompilerInstance.h | 2 | ||||
-rw-r--r-- | clang/lib/Frontend/CompilerInstance.cpp | 3 | ||||
-rw-r--r-- | clang/lib/Frontend/FrontendAction.cpp | 7 | ||||
-rw-r--r-- | clang/tools/driver/cc1_main.cpp | 4 |
4 files changed, 5 insertions, 11 deletions
diff --git a/clang/include/clang/Frontend/CompilerInstance.h b/clang/include/clang/Frontend/CompilerInstance.h index 4a79b8d..8b539df 100644 --- a/clang/include/clang/Frontend/CompilerInstance.h +++ b/clang/include/clang/Frontend/CompilerInstance.h @@ -632,8 +632,6 @@ public: llvm::TimerGroup &getTimerGroup() const { return *timerGroup; } - bool hasFrontendTimer() const { return (bool)FrontendTimer; } - llvm::Timer &getFrontendTimer() const { assert(FrontendTimer && "Compiler instance has no frontend timer!"); return *FrontendTimer; diff --git a/clang/lib/Frontend/CompilerInstance.cpp b/clang/lib/Frontend/CompilerInstance.cpp index b00a4ac..c11c857 100644 --- a/clang/lib/Frontend/CompilerInstance.cpp +++ b/clang/lib/Frontend/CompilerInstance.cpp @@ -1038,9 +1038,6 @@ bool CompilerInstance::ExecuteAction(FrontendAction &Act) { << LLVM_VERSION_STRING << " default target " << llvm::sys::getDefaultTargetTriple() << "\n"; - if (getCodeGenOpts().TimePasses) - createFrontendTimer(); - if (getFrontendOpts().ShowStats || !getFrontendOpts().StatsFile.empty()) llvm::EnableStatistics(false); diff --git a/clang/lib/Frontend/FrontendAction.cpp b/clang/lib/Frontend/FrontendAction.cpp index 9a50e745..9f789f0 100644 --- a/clang/lib/Frontend/FrontendAction.cpp +++ b/clang/lib/Frontend/FrontendAction.cpp @@ -1069,12 +1069,7 @@ bool FrontendAction::BeginSourceFile(CompilerInstance &CI, llvm::Error FrontendAction::Execute() { CompilerInstance &CI = getCompilerInstance(); - - if (CI.hasFrontendTimer()) { - llvm::TimeRegion Timer(CI.getFrontendTimer()); - ExecuteAction(); - } - else ExecuteAction(); + ExecuteAction(); // If we are supposed to rebuild the global module index, do so now unless // there were any module-build failures. diff --git a/clang/tools/driver/cc1_main.cpp b/clang/tools/driver/cc1_main.cpp index d14058f..26b5e78 100644 --- a/clang/tools/driver/cc1_main.cpp +++ b/clang/tools/driver/cc1_main.cpp @@ -283,6 +283,10 @@ int cc1_main(ArrayRef<const char *> Argv, const char *Argv0, void *MainAddr) { // Execute the frontend actions. { llvm::TimeTraceScope TimeScope("ExecuteCompiler"); + bool TimePasses = Clang->getCodeGenOpts().TimePasses; + if (TimePasses) + Clang->createFrontendTimer(); + llvm::TimeRegion Timer(TimePasses ? &Clang->getFrontendTimer() : nullptr); Success = ExecuteCompilerInvocation(Clang.get()); } |