return true;
}
- bool removePred(SUnit *N, bool isCtrl, bool isArtificial) {
+ bool removePred(SUnit *N, bool isCtrl, bool isArtificial, bool isAntiDep) {
for (SmallVector<SDep, 4>::iterator I = Preds.begin(), E = Preds.end();
I != E; ++I)
if (I->Dep == N && I->isCtrl == isCtrl && I->isArtificial == isArtificial) {
for (SmallVector<SDep, 4>::iterator II = N->Succs.begin(),
EE = N->Succs.end(); II != EE; ++II)
if (II->Dep == this &&
- II->isCtrl == isCtrl && II->isArtificial == isArtificial) {
+ II->isCtrl == isCtrl && II->isArtificial == isArtificial &&
+ II->isAntiDep == isAntiDep) {
FoundSucc = true;
N->Succs.erase(II);
break;
/// the current node M.
bool ScheduleDAGFast::RemovePred(SUnit *M, SUnit *N,
bool isCtrl, bool isArtificial) {
- return M->removePred(N, isCtrl, isArtificial);
+ return M->removePred(N, isCtrl, isArtificial, false);
}
/// CopyAndMoveSuccessors - Clone the specified node and move its scheduled
bool ScheduleDAGRRList::RemovePred(SUnit *M, SUnit *N,
bool isCtrl, bool isArtificial) {
// InitDAGTopologicalSorting();
- return M->removePred(N, isCtrl, isArtificial);
+ return M->removePred(N, isCtrl, isArtificial, false);
}
/// DFS - Make a DFS traversal to mark all nodes reachable from SU and mark