OSDN Git Service

[SDAG] Refactor the code which deletes nodes in the DAG combiner to do
authorChandler Carruth <chandlerc@gmail.com>
Sat, 2 Aug 2014 10:02:07 +0000 (10:02 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Sat, 2 Aug 2014 10:02:07 +0000 (10:02 +0000)
commit4e6635e7e6a97e6870bb169871a394f8c6ac87ba
treebbaeef7532f123b410e1de7eb9caae4b28114c88
parentec6d4d8afbd91423c7915b1c35b909a4213ca505
[SDAG] Refactor the code which deletes nodes in the DAG combiner to do
so using a single helper which adds operands back onto the worklist.

Several places didn't rigorously do this but a couple already did.
Factoring them together and doing it rigorously is important to delete
things recursively early on in the combiner and get a chance to see
accurate hasOneUse values. While no existing test cases change, an
upcoming patch to add DAG combining logic for PSHUFB requires this to
work correctly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214623 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/DAGCombiner.cpp