aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
diff options
context:
space:
mode:
authorPierre van Houtryve <pierre.vanhoutryve@amd.com>2024-06-14 08:34:53 +0200
committerGitHub <noreply@github.com>2024-06-14 08:34:53 +0200
commitd890dda16bf65bc36b783194afbe2ebc3e709afb (patch)
treed72133fe02c6c74cfc6738161cd7ef14480fa282 /llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
parentf2d215f572affc9ad73da07763ce1831de7f2d4d (diff)
downloadllvm-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