[PATCH] D19984: [LV] Handle RAW dependences in interleaved access analysis

Adam Nemet via llvm-commits llvm-commits at lists.llvm.org
Thu May 12 11:05:27 PDT 2016


anemet added a comment.

Hi Silviu,

In http://reviews.llvm.org/D19984#428379, @sbaranga wrote:

> Just to expand on the point above:
>
> From the algorithm of constructing interleaved groups, we should be able to exclude both WAW (from the algorithm, see the comments) and WAR (we're interleaving and then moving stores down and loads up, so we cannot break these) - for both loop-carried and loop independent dependences.


What about moving elements of an interleaved group over other dependent accesses not in the same group?

Adam


================
Comment at: test/Transforms/LoopVectorize/interleaved-accesses.ll:574-579
@@ +573,8 @@
+;
+; void PR27626(struct pair *p, int n) {
+;   for (int i = 0; i < n; i++) {
+;     p->x = p->y;
+;     p->y = p->x;
+;   }
+; }
+
----------------
You mean p[i].x etc in the loop.


http://reviews.llvm.org/D19984





More information about the llvm-commits mailing list