Lines Matching refs:SUnit
52 EntrySU = SUnit();
53 ExitSU = SUnit();
65 bool SUnit::addPred(const SDep &D, bool Required) {
76 SUnit *PredSU = I->getSUnit();
95 SUnit *N = D.getSUnit();
133 void SUnit::removePred(const SDep &D) {
141 SUnit *N = D.getSUnit();
178 void SUnit::setDepthDirty() {
180 SmallVector<SUnit*, 8> WorkList;
183 SUnit *SU = WorkList.pop_back_val();
185 for (SUnit::const_succ_iterator I = SU->Succs.begin(),
187 SUnit *SuccSU = I->getSUnit();
194 void SUnit::setHeightDirty() {
196 SmallVector<SUnit*, 8> WorkList;
199 SUnit *SU = WorkList.pop_back_val();
201 for (SUnit::const_pred_iterator I = SU->Preds.begin(),
203 SUnit *PredSU = I->getSUnit();
213 void SUnit::setDepthToAtLeast(unsigned NewDepth) {
224 void SUnit::setHeightToAtLeast(unsigned NewHeight) {
234 void SUnit::ComputeDepth() {
235 SmallVector<SUnit*, 8> WorkList;
238 SUnit *Cur = WorkList.back();
242 for (SUnit::const_pred_iterator I = Cur->Preds.begin(),
244 SUnit *PredSU = I->getSUnit();
267 void SUnit::ComputeHeight() {
268 SmallVector<SUnit*, 8> WorkList;
271 SUnit *Cur = WorkList.back();
275 for (SUnit::const_succ_iterator I = Cur->Succs.begin(),
277 SUnit *SuccSU = I->getSUnit();
298 void SUnit::biasCriticalPath() {
302 SUnit::pred_iterator BestI = Preds.begin();
304 for (SUnit::pred_iterator I = std::next(BestI), E = Preds.end(); I != E;
314 /// SUnit - Scheduling unit. It's an wrapper around either a single SDNode or
316 void SUnit::dump(const ScheduleDAG *G) const {
321 void SUnit::dumpAll(const ScheduleDAG *G) const {
337 for (SUnit::const_succ_iterator I = Preds.begin(), E = Preds.end();
357 for (SUnit::const_succ_iterator I = Succs.begin(), E = Succs.end();
461 std::vector<SUnit*> WorkList;
471 SUnit *SU = &SUnits[i];
479 assert(SU->Succs.empty() && "SUnit should have no successors");
487 SUnit *SU = WorkList.back();
491 for (SUnit::const_pred_iterator I = SU->Preds.begin(), E = SU->Preds.end();
493 SUnit *SU = I->getSUnit();
506 SUnit *SU = &SUnits[i];
507 for (SUnit::const_pred_iterator I = SU->Preds.begin(), E = SU->Preds.end();
517 /// to be added from SUnit X to SUnit Y.
518 void ScheduleDAGTopologicalSort::AddPred(SUnit *Y, SUnit *X) {
537 void ScheduleDAGTopologicalSort::RemovePred(SUnit *M, SUnit *N) {
544 void ScheduleDAGTopologicalSort::DFS(const SUnit *SU, int UpperBound,
546 std::vector<const SUnit*> WorkList;
601 bool ScheduleDAGTopologicalSort::WillCreateCycle(SUnit *TargetSU, SUnit *SU) {
605 for (SUnit::pred_iterator
614 bool ScheduleDAGTopologicalSort::IsReachable(const SUnit *SU,
615 const SUnit *TargetSU) {
638 ScheduleDAGTopologicalSort(std::vector<SUnit> &sunits, SUnit *exitsu)