[PATCH] D124490: [InstrProf] Minimal Block Coverage

Ellis Hoag via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 6 11:30:08 PDT 2022


ellis added a comment.

In D124490#3558438 <https://reviews.llvm.org/D124490#3558438>, @MaskRay wrote:

> If this new instrumentation mode is for coverage (non-optimization), why modify `PGOUseFunc`? If just to use PGOVerifyBFI, it doesn't justify modifying `PGOInstrumentation`. It would be cleaner to create a new file based on my current understanding.

Perhaps I should update the description to better explain how this diff is used for optimization. I will update it shortly.

In `PGOUseFunc` we populate edge weights such that `BlockFrequencyInfo` reports uncovered blocks as cold and covered blocks as hot. Obviously this will not be as precise as populating real edge weights from block counts, but this is a trade off from using extremely lightweight instrumented binaries. In the next diff D125743 <https://reviews.llvm.org/D125743> we can take advantage of these imprecise profiles by using block coverage to guide the machine outliner. We have found this to work quite well at reducing binary size without harming runtime performance.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D124490/new/

https://reviews.llvm.org/D124490



More information about the llvm-commits mailing list