diff options
author | Pierre van Houtryve <pierre.vanhoutryve@amd.com> | 2024-06-14 08:34:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-14 08:34:53 +0200 |
commit | d890dda16bf65bc36b783194afbe2ebc3e709afb (patch) | |
tree | d72133fe02c6c74cfc6738161cd7ef14480fa282 /llvm/lib/ProfileData/Coverage/CoverageMapping.cpp | |
parent | f2d215f572affc9ad73da07763ce1831de7f2d4d (diff) | |
download | llvm-d890dda16bf65bc36b783194afbe2ebc3e709afb.zip llvm-d890dda16bf65bc36b783194afbe2ebc3e709afb.tar.gz llvm-d890dda16bf65bc36b783194afbe2ebc3e709afb.tar.bz2 |
[NFCI][AMDGPU] Try to use PressureDiff to Calculate RegPressure. (#94221)
PressureDiff is reliable most of the time, and it's pretty much free
compared to RPTracker. We can use it whenever there is no subregister
definitions, or physregs invovled. No subregs because PDiff doesn't take
into account lane liveness, and no Physreg because it seems to get
PhysReg liveness completely wrong. Sometimes it adds a diff, sometimes
itt doesn't - I didn't look at that one for long so maybe there is
something we can eventually do to make it better.
This allows us to save a ton of calls to RPTracker and LIS too. On a
huge IR module (100+MB), it went from about 20M calls to RPTracker in this
function down to 3.4, with the rest being PressureDiffs.
I also added an expensive check to verify correctness of PressureDiff.
Diffstat (limited to 'llvm/lib/ProfileData/Coverage/CoverageMapping.cpp')
0 files changed, 0 insertions, 0 deletions