Lines Matching defs:SU
55 /// of SU, return it, otherwise return null.
56 SUnit *LatencyPriorityQueue::getSingleUnscheduledPred(SUnit *SU) {
58 for (SUnit::const_pred_iterator I = SU->Preds.begin(), E = SU->Preds.end();
73 void LatencyPriorityQueue::push(SUnit *SU) {
77 for (SUnit::const_succ_iterator I = SU->Succs.begin(), E = SU->Succs.end();
79 if (getSingleUnscheduledPred(I->getSUnit()) == SU)
82 NumNodesSolelyBlocking[SU->NodeNum] = NumNodesBlocking;
84 Queue.push_back(SU);
92 void LatencyPriorityQueue::scheduledNode(SUnit *SU) {
93 for (SUnit::const_succ_iterator I = SU->Succs.begin(), E = SU->Succs.end();
99 /// AdjustPriorityOfUnscheduledPreds - One of the predecessors of SU was just
100 /// scheduled. If SU is not itself available, then there is at least one
101 /// predecessor node that has not been scheduled yet. If SU has exactly ONE
105 void LatencyPriorityQueue::AdjustPriorityOfUnscheduledPreds(SUnit *SU) {
106 if (SU->isAvailable) return; // All preds scheduled.
108 SUnit *OnlyAvailablePred = getSingleUnscheduledPred(SU);
134 void LatencyPriorityQueue::remove(SUnit *SU) {
136 std::vector<SUnit *>::iterator I = find(Queue, SU);
137 assert(I != Queue.end() && "Queue doesn't contain the SU being removed!");
147 for (const SUnit *SU : Queue) {
149 DAG->dumpNode(*SU);