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; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits