[PATCH] D147545: [CSSPGO] Stale profile matching(part 2)
Lei Wang via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 18 10:13:48 PDT 2023
wlei added inline comments.
================
Comment at: llvm/lib/Transforms/IPO/SampleProfile.cpp:2262-2264
+ std::set<LineLocation> AllLocations;
+ // Direct call's callee name will be used as the matching anchor.
+ std::unordered_map<LineLocation, StringRef, LineLocationHash> DirectCallSites;
----------------
wenlei wrote:
> wlei wrote:
> > wenlei wrote:
> > > Wondering if we can simplify by merging the two containers, i.e use `std::map<LineLocation, StringRef>`, and empty StringRef value for non-direct-callsite, then we avoid the 2nd map, and also avoid the map look up in `runStaleProfileMatching`. It may use slightly more memory, but feels a bit cleaner.
> > >
> > > Or even something like `std::map<LineLocation, std::pair<StringRef, bool>>` to have `MatchedCallsiteLocs` merged in as well. These containers feel a bit duplicated.
> > Good point! going to remove the `MatchedCallsiteLocs `, so changed to use `std::map<LineLocation, StringRef>`
> Looks like MatchedCallsiteLocs is still there?
Sorry for confusion, it will also be in a separate diff, same diff with checking big profile change. I plan to use the IRLocations to directly match profile locations, there will be no this `MatchedCallsiteLocs` and use it to guid if the mismatch is big to drop or not.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D147545/new/
https://reviews.llvm.org/D147545
More information about the llvm-commits
mailing list