mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-26 06:20:09 +01:00
nvc0/ir: skip back edges when determining latest sched value
This commit is contained in:
parent
f07c46a4f4
commit
ac9f19e485
1 changed files with 4 additions and 3 deletions
|
|
@ -2623,15 +2623,16 @@ SchedDataCalculator::visit(BasicBlock *bb)
|
|||
score = &scoreBoards.at(bb->getId());
|
||||
|
||||
for (Graph::EdgeIterator ei = bb->cfg.incident(); !ei.end(); ei.next()) {
|
||||
// back branches will wait until all target dependencies are satisfied
|
||||
if (ei.getType() == Graph::Edge::BACK) // sched would be uninitialized
|
||||
continue;
|
||||
BasicBlock *in = BasicBlock::get(ei.getNode());
|
||||
if (in->getExit()) {
|
||||
if (prevData != 0x04)
|
||||
prevData = in->getExit()->sched;
|
||||
prevOp = in->getExit()->op;
|
||||
}
|
||||
if (ei.getType() != Graph::Edge::BACK)
|
||||
score->setMax(&scoreBoards.at(in->getId()));
|
||||
// back branches will wait until all target dependencies are satisfied
|
||||
score->setMax(&scoreBoards.at(in->getId()));
|
||||
}
|
||||
if (bb->cfg.incidentCount() > 1)
|
||||
prevOp = OP_NOP;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue