[PATCH] D157089: [AMDGPU] Fix dealing with register interval endpoints in SIInsertWaitcnts.

Ivan Kosarev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 4 11:28:48 PDT 2023


kosarev updated this revision to Diff 547288.
kosarev added a comment.

Update the commit description.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D157089

Files:
  llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp


Index: llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
===================================================================
--- llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
+++ llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
@@ -518,7 +518,7 @@
   unsigned Reg = getRegPoint(Op.getReg(), *ST);
 
   if (TRI->isVectorRegister(*MRI, Op.getReg())) {
-    assert(Reg >= Intervals.VGPR.Start && Reg <= Intervals.VGPR.End);
+    assert(Reg >= Intervals.VGPR.Start && Reg < Intervals.VGPR.End);
     Result.Start = Reg - Intervals.VGPR.Start;
     if (TRI->isAGPR(*MRI, Op.getReg()))
       Result.Start += AGPR_OFFSET;
@@ -1839,9 +1839,9 @@
 
   RegPoolIntervals Intervals = {};
   Intervals.VGPR.Start = getRegPoint(AMDGPU::VGPR0, *ST);
-  Intervals.VGPR.End = Intervals.VGPR.Start + NumVGPRsMax - 1;
+  Intervals.VGPR.End = Intervals.VGPR.Start + NumVGPRsMax;
   Intervals.SGPR.Start = getRegPoint(AMDGPU::SGPR0, *ST);
-  Intervals.SGPR.End = Intervals.SGPR.Start + NumSGPRsMax - 1;
+  Intervals.SGPR.End = Intervals.SGPR.Start + NumSGPRsMax;
 
   TrackedWaitcntSet.clear();
   BlockInfos.clear();


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D157089.547288.patch
Type: text/x-patch
Size: 1084 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230804/1dbbb92c/attachment.bin>


More information about the llvm-commits mailing list