Skip to content

Commit 565703d

Browse files
bcheng0127igcbot
authored andcommitted
fix the issue in SWSB dependence reduction for DPAS
fix the issue in SWSB dependence reduction for DPAS
1 parent 523cd8c commit 565703d

File tree

1 file changed

+8
-12
lines changed

1 file changed

+8
-12
lines changed

visa/LocalScheduler/SWSB_G4IR.cpp

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5656,33 +5656,29 @@ void G4_BB_SB::SBDDD(G4_BB* bb,
56565656

56575657

56585658
// Add buckets of current instruction to bucket list
5659-
std::vector<SBBucketNode*> bucketNodes(Opnd_total_num, nullptr); //The coarse grained footprint of operands
56605659
if (node->instVec.size() > 1)
56615660
{
5661+
std::map<G4_INST*, std::vector<SBBucketNode*>> bucketNodes;
56625662
for (const SBBucketDescr& BD : liveBDvec)
56635663
{
5664-
if (bucketNodes[BD.opndNum] == nullptr)
5664+
auto iter = std::find_if(bucketNodes[BD.inst].begin(), bucketNodes[BD.inst].end(),
5665+
[&BD](SBBucketNode* node) {return BD.opndNum == node->opndNum; });
5666+
if (iter != bucketNodes[BD.inst].end())
56655667
{
5666-
void* allocedMem = mem.alloc(sizeof(SBBucketNode));
5667-
SBBucketNode* newNode = new (allocedMem)SBBucketNode(node, BD.opndNum, BD.inst);
5668-
bucketNodes[BD.opndNum] = newNode;
5668+
LB->add((*iter), BD.bucket);
56695669
}
5670-
5671-
if (bucketNodes[BD.opndNum] != nullptr &&
5672-
node->ALUPipe == PIPE_INT && bucketNodes[BD.opndNum]->inst != BD.inst)
5670+
else
56735671
{
56745672
void* allocedMem = mem.alloc(sizeof(SBBucketNode));
56755673
SBBucketNode* newNode = new (allocedMem)SBBucketNode(node, BD.opndNum, BD.inst);
5674+
bucketNodes[BD.inst].push_back(newNode);
56765675
LB->add(newNode, BD.bucket);
56775676
}
5678-
else
5679-
{
5680-
LB->add(bucketNodes[BD.opndNum], BD.bucket);
5681-
}
56825677
}
56835678
}
56845679
else
56855680
{
5681+
std::vector<SBBucketNode*> bucketNodes(Opnd_total_num, nullptr); //The coarse grained footprint of operands
56865682
for (const SBBucketDescr& BD : BDvec)
56875683
{
56885684
if (bucketNodes[BD.opndNum] == nullptr)

0 commit comments

Comments
 (0)