Skip to content

Commit d6e626f

Browse files
petechouigcbot
authored andcommitted
Check LB/RB when verifying non-spill/fill var in dst/src reg region.
RA verifier update.
1 parent ceb8220 commit d6e626f

File tree

1 file changed

+6
-20
lines changed

1 file changed

+6
-20
lines changed

visa/RegAlloc.cpp

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)