Lines Matching defs:SU

25     const SUnit *SU;
29 : SU(SU_), Priority(Priority_) {}
38 bool isScheduled(const SUnit *SU) const {
39 assert(!SU->isBoundaryNode());
40 return NumPreds[SU->NodeNum] == std::numeric_limits<unsigned>::max();
43 void setIsScheduled(const SUnit *SU) {
44 assert(!SU->isBoundaryNode());
45 NumPreds[SU->NodeNum] = std::numeric_limits<unsigned>::max();
48 unsigned getNumPreds(const SUnit *SU) const {
49 assert(!SU->isBoundaryNode());
50 assert(NumPreds[SU->NodeNum] != std::numeric_limits<unsigned>::max());
51 return NumPreds[SU->NodeNum];
54 unsigned decNumPreds(const SUnit *SU) {
55 assert(!SU->isBoundaryNode());
56 assert(NumPreds[SU->NodeNum] != std::numeric_limits<unsigned>::max());
57 return --NumPreds[SU->NodeNum];
62 int getReadySuccessors(const SUnit *SU) const;
63 int getNotReadySuccessors(const SUnit *SU) const;
71 void releaseSuccessors(const SUnit* SU, int Priority);
86 int GCNMinRegScheduler::getReadySuccessors(const SUnit *SU) const {
88 for (auto SDep : SU->Succs) {
93 if (PSU != SU && !isScheduled(PSU)) {
103 int GCNMinRegScheduler::getNotReadySuccessors(const SUnit *SU) const {
104 return SU->Succs.size() - getReadySuccessors(SU);
146 const auto *SU = C.SU;
147 int Res = getNotReadySuccessors(SU);
148 LLVM_DEBUG(dbgs() << "SU(" << SU->NodeNum << ") would left non-ready "
157 const auto *SU = C.SU;
158 auto Res = getReadySuccessors(SU);
159 LLVM_DEBUG(dbgs() << "SU(" << SU->NodeNum << ") would make ready " << Res
170 Num = findMax(Num, [=](const Candidate &C) { return -(int64_t)C.SU->NodeNum; });
193 const auto *SU = Worklist.pop_back_val();
194 assert(!SU->isBoundaryNode());
195 for (const auto &P : SU->Preds) {
201 LLVM_DEBUG(dbgs() << "Make the predecessors of SU(" << SchedSU->NodeNum
205 if (Set.count(C.SU)) {
207 LLVM_DEBUG(dbgs() << " SU(" << C.SU->NodeNum << ')');
213 void GCNMinRegScheduler::releaseSuccessors(const SUnit* SU, int Priority) {
214 for (const auto &S : SU->Succs) {
235 for (const auto *SU : TopRoots) {
236 RQ.push_back(*new (Alloc.Allocate()) Candidate(SU, StepNo));
246 << ' ' << C.SU->NodeNum << "(P" << C.Priority << ')';
252 const auto *SU = C->SU;
253 LLVM_DEBUG(dbgs() << "Selected "; DAG.dumpNode(*SU));
255 releaseSuccessors(SU, StepNo);
256 Schedule.push_back(SU);
257 setIsScheduled(SU);
259 if (getReadySuccessors(SU) == 0)
260 bumpPredsPriority(SU, StepNo);