Lines Matching defs:PredDep
1219 bool ScheduleDAGInstrs::addEdge(SUnit *SuccSU, const SDep &PredDep) {
1223 if (Topo.IsReachable(PredDep.getSUnit(), SuccSU))
1225 Topo.AddPredQueued(SuccSU, PredDep.getSUnit());
1227 SuccSU->addPred(PredDep, /*Required=*/!PredDep.isArtificial());
1298 for (const SDep &PredDep : SU->Preds) {
1299 if (PredDep.getKind() != SDep::Data)
1301 unsigned PredNum = PredDep.getSUnit()->NodeNum;
1303 joinPredSubtree(PredDep, SU, /*CheckLimit=*/false);
1327 void visitPostorderEdge(const SDep &PredDep, const SUnit *Succ) {
1329 += R.DFSNodeData[PredDep.getSUnit()->NodeNum].InstrCount;
1330 joinPredSubtree(PredDep, Succ);
1334 void visitCrossEdge(const SDep &PredDep, const SUnit *Succ) {
1335 ConnectionPairs.emplace_back(PredDep.getSUnit(), Succ);
1377 bool joinPredSubtree(const SDep &PredDep, const SUnit *Succ,
1379 assert(PredDep.getKind() == SDep::Data && "Subtrees are for data edges");
1382 const SUnit *PredSU = PredDep.getSUnit();
1481 const SDep &PredDep = *DFS.getPred();
1484 if (PredDep.getKind() != SDep::Data
1485 || PredDep.getSUnit()->isBoundaryNode()) {
1489 if (Impl.isVisited(PredDep.getSUnit())) {
1490 Impl.visitCrossEdge(PredDep, DFS.getCurr());
1493 Impl.visitPreorder(PredDep.getSUnit());
1494 DFS.follow(PredDep.getSUnit());
1498 const SDep *PredDep = DFS.backtrack();
1500 if (PredDep)
1501 Impl.visitPostorderEdge(*PredDep, DFS.getCurr());