@@ -3217,16 +3217,11 @@ void GlobalRA::verifyRA(LivenessAnalysis & liveAnalysis)
32173217 {
32183218 auto dstLB = dst->getLinearizedStart ();
32193219 auto dstRB = dst->getLinearizedEnd ();
3220- uint32_t idx = dstLB / G4_WSIZE;
32213220
3222- for (unsigned int dstOffset = dstLB; dstOffset <= dstRB; dstOffset += std::max (( unsigned int )dst-> getExecTypeSize (), ( unsigned int ) G4_WSIZE) )
3221+ for (unsigned int dstOffset = dstLB; dstOffset <= dstRB; dstOffset += G4_WSIZE)
32233222 {
3224- for (unsigned int elementOffset = 0 ; elementOffset < dst->getElemSize (); elementOffset += G4_WSIZE)
3225- {
3226- idx = (dstOffset + elementOffset) / G4_WSIZE;
3227-
3228- verifyDstRA (idx, regNum, regOff, suppressWarning);
3229- }
3223+ uint32_t idx = dstOffset / G4_WSIZE;
3224+ verifyDstRA (idx, regNum, regOff, suppressWarning);
32303225 }
32313226 }
32323227 }
@@ -3397,19 +3392,10 @@ void GlobalRA::verifyRA(LivenessAnalysis & liveAnalysis)
33973392 {
33983393 auto srcLB = src->getLinearizedStart ();
33993394 auto srcRB = src->getLinearizedEnd ();
3400- for (int i = 0 ; i < inst-> getExecSize (); ++i )
3395+ for (unsigned int srcOffset = srcLB; srcOffset <= srcRB; srcOffset += G4_WSIZE )
34013396 {
3402- unsigned off = srcLB + srcrgn->getByteOffset (i);
3403- // Here we check src within RB only. In some
3404- // cases like send instruction, RB is limited
3405- // to the size of variable.
3406- if (off + srcrgn->getElemSize () >= srcRB)
3407- break ;
3408- for (unsigned int suboff = 0 ; suboff < srcrgn->getElemSize (); suboff += G4_WSIZE)
3409- {
3410- unsigned idx = (off + suboff) / G4_WSIZE;
3411- verifySrcRA (idx, regNum, regOff);
3412- }
3397+ unsigned idx = srcOffset / G4_WSIZE;
3398+ verifySrcRA (idx, regNum, regOff);
34133399 }
34143400 }
34153401 }
0 commit comments