[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