mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
[X86] Fix a few recursivelyDeleteUnusedNodes calls that were trying to delete nodes before their user was really gone.
We looked through a truncate to get to the load. So we should be deleting the truncate first. There is a check that the node is really unused before deleting so this didn't cause a functional issue.
This commit is contained in:
parent
129b7e4405
commit
e7fae8455d
@ -35705,7 +35705,7 @@ static SDValue combineTargetShuffle(SDValue N, SelectionDAG &DAG,
|
||||
LN->getMemOperand()->getFlags());
|
||||
DCI.CombineTo(N.getNode(), BcastLd);
|
||||
DAG.ReplaceAllUsesOfValueWith(SDValue(LN, 1), BcastLd.getValue(1));
|
||||
DCI.recursivelyDeleteUnusedNodes(LN);
|
||||
DCI.recursivelyDeleteUnusedNodes(Src.getNode());
|
||||
return N; // Return N so it doesn't get rechecked!
|
||||
}
|
||||
}
|
||||
@ -35722,7 +35722,7 @@ static SDValue combineTargetShuffle(SDValue N, SelectionDAG &DAG,
|
||||
LN->getMemoryVT(), LN->getMemOperand());
|
||||
DCI.CombineTo(N.getNode(), BcastLd);
|
||||
DAG.ReplaceAllUsesOfValueWith(SDValue(LN, 1), BcastLd.getValue(1));
|
||||
DCI.recursivelyDeleteUnusedNodes(LN);
|
||||
DCI.recursivelyDeleteUnusedNodes(Src.getNode());
|
||||
return N; // Return N so it doesn't get rechecked!
|
||||
}
|
||||
}
|
||||
@ -35750,7 +35750,7 @@ static SDValue combineTargetShuffle(SDValue N, SelectionDAG &DAG,
|
||||
LN->getMemOperand()->getFlags());
|
||||
DCI.CombineTo(N.getNode(), BcastLd);
|
||||
DAG.ReplaceAllUsesOfValueWith(SDValue(LN, 1), BcastLd.getValue(1));
|
||||
DCI.recursivelyDeleteUnusedNodes(LN);
|
||||
DCI.recursivelyDeleteUnusedNodes(Src.getNode());
|
||||
return N; // Return N so it doesn't get rechecked!
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user