Lines Matching defs:SU
55 /// of SU, return it, otherwise return null.
56 SUnit *LatencyPriorityQueue::getSingleUnscheduledPred(SUnit *SU) {
58 for (const SDep &P : SU->Preds) {
72 void LatencyPriorityQueue::push(SUnit *SU) {
76 for (const SDep &Succ : SU->Succs)
77 if (getSingleUnscheduledPred(Succ.getSUnit()) == SU)
79 NumNodesSolelyBlocking[SU->NodeNum] = NumNodesBlocking;
81 Queue.push_back(SU);
89 void LatencyPriorityQueue::scheduledNode(SUnit *SU) {
90 for (const SDep &Succ : SU->Succs)
94 /// AdjustPriorityOfUnscheduledPreds - One of the predecessors of SU was just
95 /// scheduled. If SU is not itself available, then there is at least one
96 /// predecessor node that has not been scheduled yet. If SU has exactly ONE
100 void LatencyPriorityQueue::AdjustPriorityOfUnscheduledPreds(SUnit *SU) {
101 if (SU->isAvailable) return; // All preds scheduled.
103 SUnit *OnlyAvailablePred = getSingleUnscheduledPred(SU);
129 void LatencyPriorityQueue::remove(SUnit *SU) {
131 std::vector<SUnit *>::iterator I = find(Queue, SU);
132 assert(I != Queue.end() && "Queue doesn't contain the SU being removed!");
142 for (const SUnit *SU : Queue) {
144 DAG->dumpNode(*SU);