[clang] [analyzer] Add time-trace scopes for high-level analyzer steps (PR #125508)
Gábor Horváth via cfe-commits
cfe-commits at lists.llvm.org
Tue Feb 4 03:20:19 PST 2025
================
@@ -287,6 +288,34 @@ class PathDiagnosticBuilder : public BugReporterContext {
const PathSensitiveBugReport *getBugReport() const { return R; }
};
+std::string timeTraceName(const BugReportEquivClass &EQ) {
+ if (!llvm::timeTraceProfilerEnabled())
+ return "";
+ const auto &bugReports = EQ.getReports();
+ if (bugReports.empty())
+ return "Empty Equivalence Class";
+ const BugReport *R = bugReports.front().get();
+ const auto &BT = R->getBugType();
+ return ("Flushing EQC " + BT.getDescription()).str();
+}
+
+llvm::TimeTraceMetadata timeTraceMetadata(const BugReportEquivClass &EQ) {
+ // Must be called only when constructing non-bogus TimeTraceScope
+ assert(llvm::timeTraceProfilerEnabled());
+
+ const auto &bugReports = EQ.getReports();
+ if (bugReports.empty())
+ return {};
+ const BugReport *R = bugReports.front().get();
+ const auto &BT = R->getBugType();
+ auto Loc = R->getLocation().asLocation();
+ std::string File = "";
+ if (const auto *Entry = Loc.getFileEntry())
+ File = Entry->tryGetRealPathName().str();
+ return {BT.getCheckerName().str(), File,
----------------
Xazax-hun wrote:
Could move File here.
https://github.com/llvm/llvm-project/pull/125508
More information about the cfe-commits
mailing list