Skip to content

Commit 15e12ac

Browse files
bcheng0127igcbot
authored andcommitted
Update the S0 allocation algorithm in indirect send
_OS_DESCRIPTION
1 parent fa485b1 commit 15e12ac

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

visa/Passes/SRSubstitution.cpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -772,18 +772,20 @@ unsigned short SRSubPassAfterRA::allocateS0(unsigned short UQNum) {
772772
if (!UsedS0SubReg.isSet(freeSRSub) &&
773773
!UsedS0SubReg.isSet(freeSRSub + 1)) {
774774
find = true;
775-
S0Index += 2;
775+
S0Index = freeSRSub + 2;
776776
break;
777777
}
778778
} else if ((UQNum == 1) && !UsedS0SubReg.isSet(freeSRSub)) {
779779
find = true;
780-
S0Index++;
780+
S0Index = freeSRSub + 1;
781781
break;
782782
}
783-
S0Index++;
784783
}
785784

786785
if (find) {
786+
if (S0Index >= S0SubRegNum) {
787+
S0Index = 0;
788+
}
787789
return freeSRSub;
788790
}
789791

@@ -792,15 +794,14 @@ unsigned short SRSubPassAfterRA::allocateS0(unsigned short UQNum) {
792794
if (!UsedS0SubReg.isSet(freeSRSub) &&
793795
!UsedS0SubReg.isSet(freeSRSub + 1)) {
794796
find = true;
795-
S0Index += 2;
797+
S0Index = freeSRSub + 2;
796798
break;
797799
}
798800
} else if ((UQNum == 1) && !UsedS0SubReg.isSet(freeSRSub)) {
799801
find = true;
800-
S0Index++;
802+
S0Index = freeSRSub + 1;
801803
break;
802804
}
803-
S0Index++;
804805
}
805806

806807
if (S0Index >= S0SubRegNum) {

0 commit comments

Comments
 (0)