Lines Matching refs:PredDep
1218 bool ScheduleDAGInstrs::addEdge(SUnit *SuccSU, const SDep &PredDep) { in addEdge() argument
1222 if (Topo.IsReachable(PredDep.getSUnit(), SuccSU)) in addEdge()
1224 Topo.AddPredQueued(SuccSU, PredDep.getSUnit()); in addEdge()
1226 SuccSU->addPred(PredDep, /*Required=*/!PredDep.isArtificial()); in addEdge()
1297 for (const SDep &PredDep : SU->Preds) { in visitPostorderNode() local
1298 if (PredDep.getKind() != SDep::Data) in visitPostorderNode()
1300 unsigned PredNum = PredDep.getSUnit()->NodeNum; in visitPostorderNode()
1302 joinPredSubtree(PredDep, SU, /*CheckLimit=*/false); in visitPostorderNode()
1326 void visitPostorderEdge(const SDep &PredDep, const SUnit *Succ) { in visitPostorderEdge() argument
1328 += R.DFSNodeData[PredDep.getSUnit()->NodeNum].InstrCount; in visitPostorderEdge()
1329 joinPredSubtree(PredDep, Succ); in visitPostorderEdge()
1333 void visitCrossEdge(const SDep &PredDep, const SUnit *Succ) { in visitCrossEdge() argument
1334 ConnectionPairs.emplace_back(PredDep.getSUnit(), Succ); in visitCrossEdge()
1376 bool joinPredSubtree(const SDep &PredDep, const SUnit *Succ, in joinPredSubtree() argument
1378 assert(PredDep.getKind() == SDep::Data && "Subtrees are for data edges"); in joinPredSubtree()
1381 const SUnit *PredSU = PredDep.getSUnit(); in joinPredSubtree()
1480 const SDep &PredDep = *DFS.getPred(); in compute() local
1483 if (PredDep.getKind() != SDep::Data in compute()
1484 || PredDep.getSUnit()->isBoundaryNode()) { in compute()
1488 if (Impl.isVisited(PredDep.getSUnit())) { in compute()
1489 Impl.visitCrossEdge(PredDep, DFS.getCurr()); in compute()
1492 Impl.visitPreorder(PredDep.getSUnit()); in compute()
1493 DFS.follow(PredDep.getSUnit()); in compute()
1497 const SDep *PredDep = DFS.backtrack(); in compute() local
1499 if (PredDep) in compute()
1500 Impl.visitPostorderEdge(*PredDep, DFS.getCurr()); in compute()