Lines Matching defs:PredDep
1222 bool ScheduleDAGInstrs::addEdge(SUnit *SuccSU, const SDep &PredDep) {
1226 if (Topo.IsReachable(PredDep.getSUnit(), SuccSU))
1228 Topo.AddPredQueued(SuccSU, PredDep.getSUnit());
1230 SuccSU->addPred(PredDep, /*Required=*/!PredDep.isArtificial());
1301 for (const SDep &PredDep : SU->Preds) {
1302 if (PredDep.getKind() != SDep::Data)
1304 unsigned PredNum = PredDep.getSUnit()->NodeNum;
1306 joinPredSubtree(PredDep, SU, /*CheckLimit=*/false);
1330 void visitPostorderEdge(const SDep &PredDep, const SUnit *Succ) {
1332 += R.DFSNodeData[PredDep.getSUnit()->NodeNum].InstrCount;
1333 joinPredSubtree(PredDep, Succ);
1337 void visitCrossEdge(const SDep &PredDep, const SUnit *Succ) {
1338 ConnectionPairs.emplace_back(PredDep.getSUnit(), Succ);
1380 bool joinPredSubtree(const SDep &PredDep, const SUnit *Succ,
1382 assert(PredDep.getKind() == SDep::Data && "Subtrees are for data edges");
1385 const SUnit *PredSU = PredDep.getSUnit();
1484 const SDep &PredDep = *DFS.getPred();
1487 if (PredDep.getKind() != SDep::Data
1488 || PredDep.getSUnit()->isBoundaryNode()) {
1492 if (Impl.isVisited(PredDep.getSUnit())) {
1493 Impl.visitCrossEdge(PredDep, DFS.getCurr());
1496 Impl.visitPreorder(PredDep.getSUnit());
1497 DFS.follow(PredDep.getSUnit());
1501 const SDep *PredDep = DFS.backtrack();
1503 if (PredDep)
1504 Impl.visitPostorderEdge(*PredDep, DFS.getCurr());