@@ -5133,9 +5133,11 @@ void GraphColor::createLiveRanges(unsigned reserveSpillSize)
51335133 }
51345134 if (dcl->getIsPartialDcl ())
51355135 {
5136- G4_Declare * parentDcl = this ->gra .getSplittedDeclare (dcl);
5137- lrs[var->getId ()]->setParentLRID (parentDcl->getRegVar ()->getId ());
5138- lrs[var->getId ()]->setIsPartialDcl ();
5136+ if (G4_Declare * parentDcl = this ->gra .getSplittedDeclare (dcl))
5137+ {
5138+ lrs[var->getId ()]->setParentLRID (parentDcl->getRegVar ()->getId ());
5139+ lrs[var->getId ()]->setIsPartialDcl ();
5140+ }
51395141 }
51405142 if (dcl->getIsSplittedDcl ())
51415143 {
@@ -5700,19 +5702,22 @@ bool GraphColor::assignColors(ColorHeuristic colorHeuristicGRF, bool doBankConfl
57005702 if (varSplitPass.isPartialDcl (lr->getDcl ()))
57015703 {
57025704 parentDcl = varSplitPass.getParentDcl (lr->getDcl ());
5703- auto parentGRF = parentDcl->getRegVar ()->getPhyReg ();
5704- if (!parentGRF && parentDcl->getRegVar ()->isRegAllocPartaker ())
5705- {
5706- parentGRF = lrs[parentDcl->getRegVar ()->getId ()]->getPhyReg ();
5707- }
5708- if (parentGRF)
5705+ if (parentDcl)
57095706 {
5710- auto siblingNum = varSplitPass.getSiblingNum (lr->getDcl ());
5711- auto parentGRFNum = parentGRF->asGreg ()->getRegNum ();
5712- auto forbiddenStart = parentGRFNum + ((siblingNum + 1 ) * lr->getDcl ()->getNumRows ());
5713- auto forbiddenEnd = parentGRFNum + parentDcl->getNumRows ();
5714- lr->markForbidden (forbiddenStart, forbiddenEnd - forbiddenStart);
5715- skipParentIntf = true ;
5707+ auto parentGRF = parentDcl->getRegVar ()->getPhyReg ();
5708+ if (!parentGRF && parentDcl->getRegVar ()->isRegAllocPartaker ())
5709+ {
5710+ parentGRF = lrs[parentDcl->getRegVar ()->getId ()]->getPhyReg ();
5711+ }
5712+ if (parentGRF)
5713+ {
5714+ auto siblingNum = varSplitPass.getSiblingNum (lr->getDcl ());
5715+ auto parentGRFNum = parentGRF->asGreg ()->getRegNum ();
5716+ auto forbiddenStart = parentGRFNum + ((siblingNum + 1 ) * lr->getDcl ()->getNumRows ());
5717+ auto forbiddenEnd = parentGRFNum + parentDcl->getNumRows ();
5718+ lr->markForbidden (forbiddenStart, forbiddenEnd - forbiddenStart);
5719+ skipParentIntf = true ;
5720+ }
57165721 }
57175722 }
57185723 }
0 commit comments