[clang-tools-extra] [clang-tidy][NFC] simplify `TimerGroup` in `ClangTidyProfiling` (PR #123958)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Jan 22 07:30:20 PST 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-tidy
Author: Congcong Cai (HerrCai0907)
<details>
<summary>Changes</summary>
`TimerGroup` don't need to use as field of `ClangTidyProfiling`.
We can construct it local during destructing.
---
Full diff: https://github.com/llvm/llvm-project/pull/123958.diff
2 Files Affected:
- (modified) clang-tools-extra/clang-tidy/ClangTidyProfiling.cpp (+11-10)
- (modified) clang-tools-extra/clang-tidy/ClangTidyProfiling.h (+3-6)
``````````diff
diff --git a/clang-tools-extra/clang-tidy/ClangTidyProfiling.cpp b/clang-tools-extra/clang-tidy/ClangTidyProfiling.cpp
index 07ab34a07cd31d..89867ec30f51f3 100644
--- a/clang-tools-extra/clang-tidy/ClangTidyProfiling.cpp
+++ b/clang-tools-extra/clang-tidy/ClangTidyProfiling.cpp
@@ -36,23 +36,25 @@ ClangTidyProfiling::StorageParams::StorageParams(llvm::StringRef ProfilePrefix,
.str();
}
-void ClangTidyProfiling::printUserFriendlyTable(llvm::raw_ostream &OS) {
- TG->print(OS);
+void ClangTidyProfiling::printUserFriendlyTable(llvm::raw_ostream &OS,
+ llvm::TimerGroup &TG) {
+ TG.print(OS);
OS.flush();
}
-void ClangTidyProfiling::printAsJSON(llvm::raw_ostream &OS) {
+void ClangTidyProfiling::printAsJSON(llvm::raw_ostream &OS,
+ llvm::TimerGroup &TG) {
OS << "{\n";
OS << R"("file": ")" << Storage->SourceFilename << "\",\n";
OS << R"("timestamp": ")" << Storage->Timestamp << "\",\n";
OS << "\"profile\": {\n";
- TG->printJSONValues(OS, "");
+ TG.printJSONValues(OS, "");
OS << "\n}\n";
OS << "}\n";
OS.flush();
}
-void ClangTidyProfiling::storeProfileData() {
+void ClangTidyProfiling::storeProfileData(llvm::TimerGroup &TG) {
assert(Storage && "We should have a filename.");
llvm::SmallString<256> OutputDirectory(Storage->StoreFilename);
@@ -71,19 +73,18 @@ void ClangTidyProfiling::storeProfileData() {
return;
}
- printAsJSON(OS);
+ printAsJSON(OS, TG);
}
ClangTidyProfiling::ClangTidyProfiling(std::optional<StorageParams> Storage)
: Storage(std::move(Storage)) {}
ClangTidyProfiling::~ClangTidyProfiling() {
- TG.emplace("clang-tidy", "clang-tidy checks profiling", Records);
-
+ llvm::TimerGroup TG{"clang-tidy", "clang-tidy checks profiling", Records};
if (!Storage)
- printUserFriendlyTable(llvm::errs());
+ printUserFriendlyTable(llvm::errs(), TG);
else
- storeProfileData();
+ storeProfileData(TG);
}
} // namespace clang::tidy
diff --git a/clang-tools-extra/clang-tidy/ClangTidyProfiling.h b/clang-tools-extra/clang-tidy/ClangTidyProfiling.h
index b6f7d66343fa46..76deede1716f44 100644
--- a/clang-tools-extra/clang-tidy/ClangTidyProfiling.h
+++ b/clang-tools-extra/clang-tidy/ClangTidyProfiling.h
@@ -34,14 +34,11 @@ class ClangTidyProfiling {
};
private:
- std::optional<llvm::TimerGroup> TG;
-
std::optional<StorageParams> Storage;
- void printUserFriendlyTable(llvm::raw_ostream &OS);
- void printAsJSON(llvm::raw_ostream &OS);
-
- void storeProfileData();
+ void printUserFriendlyTable(llvm::raw_ostream &OS, llvm::TimerGroup &TG);
+ void printAsJSON(llvm::raw_ostream &OS, llvm::TimerGroup &TG);
+ void storeProfileData(llvm::TimerGroup &TG);
public:
llvm::StringMap<llvm::TimeRecord> Records;
``````````
</details>
https://github.com/llvm/llvm-project/pull/123958
More information about the cfe-commits
mailing list