OSDN Git Service

[DAGCombine] Don't delete the node if it has uses immediately
authorQingShan Zhang <qshanz@cn.ibm.com>
Fri, 28 Aug 2020 15:21:47 +0000 (15:21 +0000)
committerJinsong Ji <jji@us.ibm.com>
Fri, 28 Aug 2020 16:13:43 +0000 (16:13 +0000)
commitdeb4b2580715810ecd5cb7eefa5ffbe65e5eedc8
treee14ae04113dad81c17f206a5c888cde456cf2875
parent2ddf795e8cac362e142a82ecea805fdf5daa79b8
[DAGCombine] Don't delete the node if it has uses immediately

This is the follow up patch for https://reviews.llvm.org/D86183 as we miss to delete the node if NegX == NegY, which has use after we create the node.
```
    if (NegX && (CostX <= CostY)) {
      Cost = std::min(CostX, CostZ);
      RemoveDeadNode(NegY);
      return DAG.getNode(Opcode, DL, VT, NegX, Y, NegZ, Flags);  #<-- NegY is used here if NegY == NegX.
    }
```

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D86689
llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
llvm/test/CodeGen/PowerPC/fneg.ll