diff options
author | Carl Ritson <carl.ritson@amd.com> | 2018-12-19 10:17:49 +0000 |
---|---|---|
committer | Carl Ritson <carl.ritson@amd.com> | 2018-12-19 10:17:49 +0000 |
commit | c521ac3a44a8ecdc1e2e362ce8c321ca9c76f25f (patch) | |
tree | c2e80a9b2348c40eccdcc581f186856d01e62133 /llvm/lib/Target | |
parent | 6c35a1e5afb8a5c0c02a77b46226ea6daccd1be4 (diff) | |
download | bcm5719-llvm-c521ac3a44a8ecdc1e2e362ce8c321ca9c76f25f.tar.gz bcm5719-llvm-c521ac3a44a8ecdc1e2e362ce8c321ca9c76f25f.zip |
AMDGPU/InsertWaitcnts: Update VGPR/SGPR bounds when brackets are merged
Summary:
Fix an issue where VGPR/SGPR bounds are not properly extended when brackets are merged.
This manifests as missing waitcnt insertions when multiple brackets are forwarded to a successor block and the first forward has lower VGPR/SGPR bounds.
Irreducible loop test has been extended based on a CTS failure detected for GFX9.
Reviewers: nhaehnle
Reviewed By: nhaehnle
Subscribers: arsenm, kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, jfb, llvm-commits
Differential Revision: https://reviews.llvm.org/D55602
llvm-svn: 349611
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r-- | llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp b/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp index 79674046fce..afc0b446761 100644 --- a/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp +++ b/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp @@ -1216,6 +1216,9 @@ bool WaitcntBrackets::merge(const WaitcntBrackets &Other) { StrictDom = true; } + VgprUB = std::max(getMaxVGPR(), Other.getMaxVGPR()); + SgprUB = std::max(getMaxSGPR(), Other.getMaxSGPR()); + return StrictDom; } |