Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
Show First 20 Lines • Show All 144 Lines • ▼ Show 20 Lines | if (PredSU->NumSuccsLeft == 0) { | ||||
dumpNode(*PredSU); | dumpNode(*PredSU); | ||||
dbgs() << " has been released too many times!\n"; | dbgs() << " has been released too many times!\n"; | ||||
llvm_unreachable(nullptr); | llvm_unreachable(nullptr); | ||||
} | } | ||||
#endif | #endif | ||||
--PredSU->NumSuccsLeft; | --PredSU->NumSuccsLeft; | ||||
// If all the node's successors are scheduled, this node is ready | // If all the node's successors are scheduled, this node is ready | ||||
// to be scheduled. Ignore the special EntrySU node. | // to be scheduled. | ||||
if (PredSU->NumSuccsLeft == 0 && PredSU != &EntrySU) { | if (PredSU->NumSuccsLeft == 0) { | ||||
PredSU->isAvailable = true; | PredSU->isAvailable = true; | ||||
AvailableQueue.push(PredSU); | AvailableQueue.push(PredSU); | ||||
} | } | ||||
} | } | ||||
void ScheduleDAGFast::ReleasePredecessors(SUnit *SU, unsigned CurCycle) { | void ScheduleDAGFast::ReleasePredecessors(SUnit *SU, unsigned CurCycle) { | ||||
// Bottom up: release predecessors | // Bottom up: release predecessors | ||||
for (SDep &Pred : SU->Preds) { | for (SDep &Pred : SU->Preds) { | ||||
▲ Show 20 Lines • Show All 642 Lines • Show Last 20 Lines |