search for: profilecount

Displaying 8 results from an estimated 8 matches for "profilecount".

2016 Sep 02
4
[ThinLTO] Importing based on PGO data
...ound - when we calculate the list of imports, we can't get the ProfileSummaryInfo, which is the best and I think only valid way of checking if callsite/callee is hot (isHotCount()). There are 2 solutions that I come up with Teresa and Easwaran: 1. Add PGO data to summary 2. Replace CalleeInfo::ProfileCount with enum {None, Cold, Hot} computed during computing summary. I like the 2. much more. It will reduce the summary size slightly and I don't think we will need ProfileCount anywhere else. The other thing I would like to mention is that I think we should start using the summary versioning and...
2016 Sep 02
4
[ThinLTO] Importing based on PGO data
...he > > ProfileSummaryInfo, which is the best and I > > think only valid way of checking if callsite/callee is hot > (isHotCount()). > > There are 2 solutions that I come up with Teresa and Easwaran: > > > > 1. Add PGO data to summary > > 2. Replace CalleeInfo::ProfileCount with enum {None, Cold, Hot} computed > > during computing summary. > > > Don't we already have edge profile count in the callgraph summary? > I think what is missing is the Profile SUmmary data itself -- that one > should be copied over to thinLTO summary so that the import...
2016 Sep 02
2
[ThinLTO] Importing based on PGO data
...aryInfo, which is the best and I >> > think only valid way of checking if callsite/callee is hot >> (isHotCount()). >> > There are 2 solutions that I come up with Teresa and Easwaran: >> > >> > 1. Add PGO data to summary >> > 2. Replace CalleeInfo::ProfileCount with enum {None, Cold, Hot} computed >> > during computing summary. >> >> >> Don't we already have edge profile count in the callgraph summary? >> I think what is missing is the Profile SUmmary data itself -- that one >> should be copied over to thinLTO su...
2016 Sep 02
3
[ThinLTO] Importing based on PGO data
...t; >> > think only valid way of checking if callsite/callee is hot > >> > (isHotCount()). > >> > There are 2 solutions that I come up with Teresa and Easwaran: > >> > > >> > 1. Add PGO data to summary > >> > 2. Replace CalleeInfo::ProfileCount with enum {None, Cold, Hot} > computed > >> > during computing summary. > >> > >> > >> Don't we already have edge profile count in the callgraph summary? > >> I think what is missing is the Profile SUmmary data itself -- that one > >>...
2016 Mar 11
5
RFC: Pass to prune redundant profiling instrumentation
...runing: 0.606s (8.6% performance win, _42_ aliases) O3 + CoverageInstr + Pruning: 0.610s (11.6% performance win, _44_ aliases) 2. >> Determine which profile counters are essential. > > What is an "essential counter"? The pass I proposed works like this: for (PC : ProfileCounters) { if (Update-Sites-Of(PC) == Update-Sites-Of(Other-PC)) { mark PC as "essential" mark Other-PC as "redundant" (i.e, alias of PC) } } Where Update-Sites-Of(PC) is the set of basic blocks in which PC is updated. If there are multiple counters updated in...
2016 Mar 12
2
RFC: Pass to prune redundant profiling instrumentation
...es) > O3 + CoverageInstr + Pruning: 0.610s (11.6% performance win, _44_ aliases) > > 2. > > >> Determine which profile counters are essential. > > > > What is an "essential counter"? > > The pass I proposed works like this: > > for (PC : ProfileCounters) { > if (Update-Sites-Of(PC) == Update-Sites-Of(Other-PC)) { > mark PC as "essential" > mark Other-PC as "redundant" (i.e, alias of PC) > } > } > > Where Update-Sites-Of(PC) is the set of basic blocks in which PC is updated. > If...
2016 Mar 12
2
RFC: Pass to prune redundant profiling instrumentation
...t;> > >> > 2. >> > >> > >> Determine which profile counters are essential. >> > > >> > > What is an "essential counter"? >> > >> > The pass I proposed works like this: >> > >> > for (PC : ProfileCounters) { >> > if (Update-Sites-Of(PC) == Update-Sites-Of(Other-PC)) { >> > mark PC as "essential" >> > mark Other-PC as "redundant" (i.e, alias of PC) >> > } >> > } >> > >> > Where Update-Sites-Of(...
2016 Mar 11
8
RFC: Pass to prune redundant profiling instrumentation
Hi, I'd like to add a new pass to LLVM which removes redundant profile counter updates. The goal is to speed up code coverage testing and profile generation for PGO. I'm sending this email out to describe my approach, share some early results, and gather feedback. Problem Overview ================ A profile counter is redundant if it's incremented in exactly the same basic blocks