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