forked from OSchip/llvm-project
Check in the rest of this change. The isAntiDep flag needs to be passed
to removePred because an SUnit can both data-depend and anti-depend on the same SUnit. llvm-svn: 59969
This commit is contained in:
parent
d2b10368ed
commit
5cc12a8e31
|
@ -164,7 +164,7 @@ namespace llvm {
|
|||
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) {
|
||||
|
@ -172,7 +172,8 @@ namespace llvm {
|
|||
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;
|
||||
|
|
|
@ -198,7 +198,7 @@ bool ScheduleDAGFast::AddPred(SUnit *Y, SUnit *X, bool isCtrl,
|
|||
/// 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
|
||||
|
|
|
@ -506,7 +506,7 @@ bool ScheduleDAGRRList::AddPred(SUnit *Y, SUnit *X, bool isCtrl,
|
|||
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
|
||||
|
|
Loading…
Reference in New Issue