[libcxx-commits] [libcxx] [llvm] [lld] [libc] [flang] [compiler-rt] [libcxxabi] [clang] [clang-tools-extra] [CSSPGO] Compute and report post-match profile staleness (PR #79090)
Lei Wang via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Jan 29 11:02:18 PST 2024
================
@@ -2205,93 +2230,141 @@ void SampleProfileMatcher::countMismatchedSamples(const FunctionSamples &FS) {
countMismatchedSamples(CS.second);
}
-void SampleProfileMatcher::countProfileMismatches(
- const Function &F, const FunctionSamples &FS,
- const std::map<LineLocation, StringRef> &IRAnchors,
+void ProfileMatchStats::countMismatchedCallsites(
+ const Function &F, const std::map<LineLocation, StringRef> &IRAnchors,
+ const std::map<LineLocation, std::unordered_set<FunctionId>>
+ &ProfileAnchors,
+ const LocToLocMap &IRToProfileLocationMap) {
+ auto &MismatchedCallsites =
+ FuncMismatchedCallsites[FunctionSamples::getCanonicalFnName(F.getName())];
+
+ auto MapIRLocToProfileLoc = [&](const LineLocation &IRLoc) {
----------------
wlei-llvm wrote:
Yep, the benefit here is pre-match and post-match using the same function`countMismatchedCallsites`, no special process to parsing the matching results. For pre-match, we just pass a empty `IRToProfileLocationMap` and no changes to `RunStaleProfileMatching`.
https://github.com/llvm/llvm-project/pull/79090
More information about the libcxx-commits
mailing list