aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/ExpandIRInsts.cpp
diff options
context:
space:
mode:
authorLucas Ramirez <11032120+lucas-rami@users.noreply.github.com>2026-02-02 01:33:40 +0100
committerGitHub <noreply@github.com>2026-02-02 00:33:40 +0000
commitcf60af88b4d3791b5e225373e51186f4f86ad50f (patch)
tree8215a56025bf9f4098360935d527ffa0360fa7c9 /llvm/lib/CodeGen/ExpandIRInsts.cpp
parent9e5deb963abec2808152b55d826333cba8ad5ab0 (diff)
downloadllvm-main.zip
llvm-main.tar.gz
llvm-main.tar.bz2
[AMDGPU][Scheduler] Revert all regions when remat fails to increase occ. (#177205)HEADmain
When the rematerialization stage fails to increase occupancy in all regions, the current implementation only reverts the effect of re-scheduling in regions in which the increased occupancy target could not be achieved. However, given that re-scheduling with a higher occupancy target puts more pressure on the scheduler to achieve lower maximum RP at the cost of potentially lower ILP as well, region schedules made with higher occupancy targets are generally less desirable if the whole function is not able to meet that target. Therefore, if at least one region cannot reach its target, it makes sense to revert re-scheduling in all affected regions to go back to a schedule that was made with a lower occupancy target. This implements such logic for the rematerialization stage, and adds a test to showcase that re-scheduling is indeed interrupted/reverted as soon as a re-scheduled region that does not meet the increased target occupancy is encountered. As a minor improvement, this also sets higher occupancy targets for re-scheduling at the end of stage initialization in some cases. In cases where rematerializations alone are not able to achieve the target, this can push the scheduler to be more aggressive in reducing RP and achieve the target.
Diffstat (limited to 'llvm/lib/CodeGen/ExpandIRInsts.cpp')
0 files changed, 0 insertions, 0 deletions