[PATCH] D16300: Enable LoopLoadElimination by default

Adam Nemet via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 22 12:16:18 PST 2016


anemet added a comment.

It seems to me that partial redundancy means slightly different things between GVN Load-PRE and LLE.

In LLE, a load is partially redundant, if the forwarding store does not dominate all the loop latches.  To make it fully redundant we would have to add loads on the unavailable paths.

I think that in GVN, the loopy case is always considered a partial redundancy case because you'd have to insert a load in the preheader.  Let me know if I am getting this wrong.

So it seems to me that the LLE partial redundancy case is equivalent to the case in GVN Load-PRE when we need *more than one* load inserted.

Does this make sense?


http://reviews.llvm.org/D16300





More information about the llvm-commits mailing list