This is an archive of the discontinued LLVM Phabricator instance.

AArch64: avoid cycle when forming post-increment NEON loads
ClosedPublic

Authored by t.p.northover on Aug 23 2019, 4:03 AM.

Details

Reviewers
efriedma
Summary

Inserting a value into Visited has the effect of terminating a search for predecessors if that node is seen. This is legitimate for the base address (as used in DAGCombiner.cpp), and acts as a slight performance optimization. But the vector-building node here can be part of a legitimate cycle so we shouldn't stop searching there.

Should fix https://bugs.llvm.org/show_bug.cgi?id=43056.

Diff Detail

Event Timeline

t.p.northover created this revision.Aug 23 2019, 4:03 AM
efriedma accepted this revision.Aug 23 2019, 3:01 PM
efriedma added a subscriber: efriedma.

LGTM

On a side-note, we really should try to come up with a better algorithm for forming pre/post-increment operations; hasPredecessorHelper is slow.

This revision is now accepted and ready to land.Aug 23 2019, 3:02 PM
t.p.northover closed this revision.Aug 27 2019, 3:21 AM

Thanks Eli. r370036.