mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
[DAGCombiner] Remove unnecessary recursive DAGCombiner::visitINSERT_SUBVECTOR call.
As discussed on D55511, this caused an issue if the inner node deletes a node that the outer node depends upon. As it doesn't affect any lit-tests and I've only been able to expose this with the D55511 change I'm committing this now. llvm-svn: 348781
This commit is contained in:
parent
d2e0645284
commit
5922422fb4
@ -17717,12 +17717,6 @@ SDValue DAGCombiner::visitINSERT_SUBVECTOR(SDNode *N) {
|
|||||||
if (N1.isUndef())
|
if (N1.isUndef())
|
||||||
return N0;
|
return N0;
|
||||||
|
|
||||||
// For nested INSERT_SUBVECTORs, attempt to combine inner node first to allow
|
|
||||||
// us to pull BITCASTs from input to output.
|
|
||||||
if (N0.hasOneUse() && N0->getOpcode() == ISD::INSERT_SUBVECTOR)
|
|
||||||
if (SDValue NN0 = visitINSERT_SUBVECTOR(N0.getNode()))
|
|
||||||
return DAG.getNode(ISD::INSERT_SUBVECTOR, SDLoc(N), VT, NN0, N1, N2);
|
|
||||||
|
|
||||||
// If this is an insert of an extracted vector into an undef vector, we can
|
// If this is an insert of an extracted vector into an undef vector, we can
|
||||||
// just use the input to the extract.
|
// just use the input to the extract.
|
||||||
if (N0.isUndef() && N1.getOpcode() == ISD::EXTRACT_SUBVECTOR &&
|
if (N0.isUndef() && N1.getOpcode() == ISD::EXTRACT_SUBVECTOR &&
|
||||||
|
Loading…
Reference in New Issue
Block a user