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

silviu.baranga@arm.com via llvm-commits llvm-commits at lists.llvm.org
Mon May 9 08:40:55 PDT 2016


sbaranga added a comment.

I think non-zero dependences would have already been rejected by LAA. Would this this be the reason why it is correct to only look at the zero distance ones?

Thanks,
Silviu


================
Comment at: lib/Transforms/Vectorize/LoopVectorize.cpp:932
@@ +931,3 @@
+    if (!Distance && R->mayReadFromMemory() && W->mayWriteToMemory() &&
+        !DT->dominates(R, W))
+      return true;
----------------
I guess we can check this with DT because the loads/stores are not predicated? (same in a bunch of other places).



================
Comment at: lib/Transforms/Vectorize/LoopVectorize.cpp:5162
@@ +5161,3 @@
+          }
+        LoopIndependentRAWStores.push_back(B);
+      }
----------------
Wouldn't we need to add B to LoopIndependentRAWStores even if we add it to StoresToRemove?

================
Comment at: lib/Transforms/Vectorize/LoopVectorize.cpp:5180
@@ +5179,3 @@
+      // the store for removal, and prevent further loads from being added to
+      // the group by breaking.
+      if (A->mayReadFromMemory() && !LoopIndependentRAWStores.empty()) {
----------------
This sentence seems to be unfinished?


http://reviews.llvm.org/D19984





More information about the llvm-commits mailing list