From 370bdd3a0f12629789d3b18b4bea178ee5cf2a23 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Thu, 26 Jul 2018 03:20:27 +0000 Subject: [PATCH] [X86] Remove some unnecessary explicit calls to DCI.AddToWorkList. These calls were making sure some newly created nodes were added to worklist, but the DAGCombiner has internal support for ensuring it has visited all nodes. Any time it visits a node it ensures the operands have been queued to be visited as well. This means if we only need to return the last new node. The DAGCombiner will take care of adding its inputs thus walking backwards through all the new nodes. llvm-svn: 337996 --- llvm/lib/Target/X86/X86ISelLowering.cpp | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index ce1e1a5..48093b4 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -30627,7 +30627,6 @@ static SDValue combineTargetShuffle(SDValue N, SelectionDAG &DAG, Hi = BC1.getOperand(Opcode == X86ISD::UNPCKH ? 1 : 0); } SDValue Horiz = DAG.getNode(Opcode0, DL, VT0, Lo, Hi); - DCI.AddToWorklist(Horiz.getNode()); return DAG.getBitcast(VT, Horiz); } } @@ -30718,10 +30717,6 @@ static SDValue combineTargetShuffle(SDValue N, SelectionDAG &DAG, N11 = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, SVT, N11, ZeroIdx); SDValue Scl = DAG.getNode(Opcode1, DL, SVT, N10, N11); SDValue SclVec = DAG.getNode(ISD::SCALAR_TO_VECTOR, DL, VT, Scl); - DCI.AddToWorklist(N10.getNode()); - DCI.AddToWorklist(N11.getNode()); - DCI.AddToWorklist(Scl.getNode()); - DCI.AddToWorklist(SclVec.getNode()); return DAG.getNode(Opcode, DL, VT, N0, SclVec); } } @@ -30843,10 +30838,8 @@ static SDValue combineTargetShuffle(SDValue N, SelectionDAG &DAG, DMask[DOffset + 1] = DOffset + 0; MVT DVT = MVT::getVectorVT(MVT::i32, VT.getVectorNumElements() / 2); V = DAG.getBitcast(DVT, V); - DCI.AddToWorklist(V.getNode()); V = DAG.getNode(X86ISD::PSHUFD, DL, DVT, V, getV4X86ShuffleImm8ForMask(DMask, DL, DAG)); - DCI.AddToWorklist(V.getNode()); return DAG.getBitcast(VT, V); } @@ -30877,7 +30870,6 @@ static SDValue combineTargetShuffle(SDValue N, SelectionDAG &DAG, makeArrayRef(MappedMask).equals({4, 4, 5, 5, 6, 6, 7, 7})) { // We can replace all three shuffles with an unpack. V = DAG.getBitcast(VT, D.getOperand(0)); - DCI.AddToWorklist(V.getNode()); return DAG.getNode(MappedMask[0] == 0 ? X86ISD::UNPCKL : X86ISD::UNPCKH, DL, VT, V, V); @@ -32807,7 +32799,6 @@ static SDValue combineSelect(SDNode *N, SelectionDAG &DAG, (VT.getVectorElementType() == MVT::i8 || VT.getVectorElementType() == MVT::i16)) { Cond = DAG.getNode(ISD::SIGN_EXTEND, DL, VT, Cond); - DCI.AddToWorklist(Cond.getNode()); return DAG.getNode(N->getOpcode(), DL, VT, Cond, LHS, RHS); } @@ -39254,7 +39245,6 @@ static SDValue combineInsertSubvector(SDNode *N, SelectionDAG &DAG, if (!Vec.getOperand(0).isUndef() && Vec.hasOneUse()) { Vec = DAG.getNode(ISD::INSERT_SUBVECTOR, dl, OpVT, DAG.getUNDEF(OpVT), SubVec2, Vec.getOperand(2)); - DCI.AddToWorklist(Vec.getNode()); return DAG.getNode(ISD::INSERT_SUBVECTOR, dl, OpVT, Vec, SubVec, N->getOperand(2)); -- 2.7.4