This is an archive of the discontinued LLVM Phabricator instance.

DAGCombiner: Don't search up chain through non-memory dependencies
AbandonedPublic

Authored by arsenm on Jul 10 2015, 1:21 PM.

Details

Reviewers
hfinkel
Summary

Diff Detail

Event Timeline

arsenm updated this revision to Diff 29484.Jul 10 2015, 1:21 PM
arsenm retitled this revision from to DAGCombiner: Don't search up chain through non-memory dependencies.
arsenm updated this object.
arsenm added a reviewer: hfinkel.
arsenm added a subscriber: llvm-commits.
hfinkel added inline comments.Jul 10 2015, 2:15 PM
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
14022

Can you explain exactly what situation your trying to prevent and why it is bad? I don't understand the problem from the referenced mailing-list message because everything there looks legal.

arsenm added inline comments.Jul 10 2015, 2:55 PM
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
14022

My problem/question is is it allowed for a node using the value out of a CopyFromReg to be on the same chain as the CopyFromReg itself?

I'm not seeing it right now with just the isAlias patch, but it looked something like

PtrVal, Chain0 = CopyFromReg EntryToken ...
LoadVal, Chain1 = load EntryToken, PtrVal

It's possible I had something else broken in my tree that I don't remember. I'll see if I can run into this again with some of the other patches I'm working on.

hfinkel added inline comments.Jul 10 2015, 3:00 PM
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
14022

Yes, I believe this is legal. Data dependencies do not need to be redundantly encoded as chain dependencies also.

arsenm abandoned this revision.Sep 10 2015, 9:48 AM