[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