This is an archive of the discontinued LLVM Phabricator instance.

[DAGCombiner] Fix visitSTORE to continue processing current SDNode, if findBetterNeighborChains doesn't actually CombineTo it.
AbandonedPublic

Authored by timshen on Jun 15 2016, 3:32 PM.

Details

Summary

findBetterNeighborChains may or may not find a better chain for each node it finds, which include the node ("St") that visitSTORE is currently processing. If no better chain is found for St, visitSTORE should continue instead of return SDValue(St, 0), as if it's CombinedTo'ed.

This fixes bug 28130. There might be other ways to make the test pass (see D21409). I think both of the patches are fixing actual bugs revealed by the same testcase.

Diff Detail

Event Timeline

timshen updated this revision to Diff 60921.Jun 15 2016, 3:32 PM
timshen retitled this revision from to [DAGCombiner] Fix visitSTORE to continue processing current SDNode, if findBetterNeighborChains doesn't actually CombineTo it..
timshen updated this object.

I didn't add the testcase, since I'd like to initiate a discussion first.

Friendly ping. :)

timshen updated this revision to Diff 61746.Jun 23 2016, 4:48 PM

Added the testcase.

timshen abandoned this revision.Jun 24 2016, 11:04 AM

Sorry I totally forgot to add llvm-commits. Created a new revision D21692.