[clang-tools-extra] 46a08ce - [clang-tidy][NFC] simplify `TimerGroup` in `ClangTidyProfiling` (#123958)
via cfe-commits
cfe-commits at lists.llvm.org
Fri Jan 24 03:29:28 PST 2025
Author: Congcong Cai
Date: 2025-01-24T19:29:24+08:00
New Revision: 46a08ce83262767b3aae5c9828fabcd13f2e8a96
URL: https://github.com/llvm/llvm-project/commit/46a08ce83262767b3aae5c9828fabcd13f2e8a96
DIFF: https://github.com/llvm/llvm-project/commit/46a08ce83262767b3aae5c9828fabcd13f2e8a96.diff
LOG: [clang-tidy][NFC] simplify `TimerGroup` in `ClangTidyProfiling` (#123958)
`TimerGroup` don't need to use as field of `ClangTidyProfiling`.
We can construct it local during destructing.
Added:
Modified:
clang-tools-extra/clang-tidy/ClangTidyProfiling.cpp
clang-tools-extra/clang-tidy/ClangTidyProfiling.h
Removed:
################################################################################
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;
More information about the cfe-commits
mailing list