[PATCH] D11107: DAGCombiner: Don't search up chain through non-memory dependencies
hfinkel at anl.gov
hfinkel at anl.gov
Fri Jul 10 15:00:03 PDT 2015
hfinkel added inline comments.
================
Comment at: lib/CodeGen/SelectionDAG/DAGCombiner.cpp:14022
@@ +14021,3 @@
+ // e.g. we could have a dependency on a CopyFromReg into the pointer
+ // value of a load.
+ Chains.push_back(Chain);
----------------
arsenm wrote:
> hfinkel wrote:
> > 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.
> >
> 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.
Yes, I believe this is legal. Data dependencies do not need to be redundantly encoded as chain dependencies also.
http://reviews.llvm.org/D11107
More information about the llvm-commits
mailing list