@@ -802,18 +802,21 @@ bool LocalRA::assignUniqueRegisters(bool twoBanksRA, bool twoDirectionsAssign,
802
802
: bankAlign;
803
803
G4_SubReg_Align subAlign =
804
804
builder.GRFAlign () ? builder.getGRFAlign () : gra.getSubRegAlign (dcl);
805
+ auto dclLR = gra.getLocalLR (dcl);
805
806
806
807
if (assignFromFront) {
807
808
BankAlign preferBank = BankAlign::Either;
808
809
unsigned short occupiedBundles =
809
810
getOccupiedBundle (builder, gra, dcl, preferBank);
810
811
nrows = phyRegMgr.findFreeRegs (
811
812
sizeInWords, assignAlign, subAlign, regNum, subregNum, 0 ,
812
- numRegLRA - 1 , occupiedBundles, 0 , false , emptyForbidden);
813
+ numRegLRA - 1 , occupiedBundles, 0 , false ,
814
+ dclLR ? dclLR->getForbidden () : emptyForbidden);
813
815
} else {
814
- nrows = phyRegMgr.findFreeRegs (sizeInWords, assignAlign, subAlign,
815
- regNum, subregNum, numRegLRA - 1 , 0 , 0 ,
816
- 0 , false , emptyForbidden);
816
+ nrows = phyRegMgr.findFreeRegs (
817
+ sizeInWords, assignAlign, subAlign, regNum, subregNum,
818
+ numRegLRA - 1 , 0 , 0 , 0 , false ,
819
+ dclLR ? dclLR->getForbidden () : emptyForbidden);
817
820
}
818
821
819
822
if (nrows) {
0 commit comments