Index: llvm/trunk/lib/CodeGen/ScheduleDAGInstrs.cpp =================================================================== --- llvm/trunk/lib/CodeGen/ScheduleDAGInstrs.cpp +++ llvm/trunk/lib/CodeGen/ScheduleDAGInstrs.cpp @@ -969,7 +969,7 @@ CurrentVRegDefs.clear(); CurrentVRegUses.clear(); - Topo.InitDAGTopologicalSorting(); + Topo.MarkDirty(); } raw_ostream &llvm::operator<<(raw_ostream &OS, const PseudoSourceValue* PSV) { @@ -1158,7 +1158,7 @@ // If Pred is reachable from Succ, then the edge creates a cycle. if (Topo.IsReachable(PredDep.getSUnit(), SuccSU)) return false; - Topo.AddPred(SuccSU, PredDep.getSUnit()); + Topo.AddPredQueued(SuccSU, PredDep.getSUnit()); } SuccSU->addPred(PredDep, /*Required=*/!PredDep.isArtificial()); // Return true regardless of whether a new edge needed to be inserted.