Lines Matching refs:PredDep
1205 bool ScheduleDAGInstrs::addEdge(SUnit *SuccSU, const SDep &PredDep) { in addEdge() argument
1209 if (Topo.IsReachable(PredDep.getSUnit(), SuccSU)) in addEdge()
1211 Topo.AddPredQueued(SuccSU, PredDep.getSUnit()); in addEdge()
1213 SuccSU->addPred(PredDep, /*Required=*/!PredDep.isArtificial()); in addEdge()
1284 for (const SDep &PredDep : SU->Preds) { in visitPostorderNode() local
1285 if (PredDep.getKind() != SDep::Data) in visitPostorderNode()
1287 unsigned PredNum = PredDep.getSUnit()->NodeNum; in visitPostorderNode()
1289 joinPredSubtree(PredDep, SU, /*CheckLimit=*/false); in visitPostorderNode()
1313 void visitPostorderEdge(const SDep &PredDep, const SUnit *Succ) { in visitPostorderEdge() argument
1315 += R.DFSNodeData[PredDep.getSUnit()->NodeNum].InstrCount; in visitPostorderEdge()
1316 joinPredSubtree(PredDep, Succ); in visitPostorderEdge()
1320 void visitCrossEdge(const SDep &PredDep, const SUnit *Succ) { in visitCrossEdge() argument
1321 ConnectionPairs.push_back(std::make_pair(PredDep.getSUnit(), Succ)); in visitCrossEdge()
1363 bool joinPredSubtree(const SDep &PredDep, const SUnit *Succ, in joinPredSubtree() argument
1365 assert(PredDep.getKind() == SDep::Data && "Subtrees are for data edges"); in joinPredSubtree()
1368 const SUnit *PredSU = PredDep.getSUnit(); in joinPredSubtree()
1467 const SDep &PredDep = *DFS.getPred(); in compute() local
1470 if (PredDep.getKind() != SDep::Data in compute()
1471 || PredDep.getSUnit()->isBoundaryNode()) { in compute()
1475 if (Impl.isVisited(PredDep.getSUnit())) { in compute()
1476 Impl.visitCrossEdge(PredDep, DFS.getCurr()); in compute()
1479 Impl.visitPreorder(PredDep.getSUnit()); in compute()
1480 DFS.follow(PredDep.getSUnit()); in compute()
1484 const SDep *PredDep = DFS.backtrack(); in compute() local
1486 if (PredDep) in compute()
1487 Impl.visitPostorderEdge(*PredDep, DFS.getCurr()); in compute()