[PATCH] D54538: [LV] Avoid vectorizing unsafe dependencies in uniform address

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 14 13:14:36 PST 2018


efriedma added inline comments.


================
Comment at: lib/Analysis/LoopAccessAnalysis.cpp:1927
+        UniformStores.find(Ptr) != UniformStores.end() &&
+        !DT->dominates(UniformStoreMap[Ptr], LD)) {
+      LLVM_DEBUG(dbgs() << "LAA: Found an unsafe dependency between a uniform "
----------------
I'm not sure the dominance check is sufficient. Yes, if the store dominates the load, it's theoretically possible to vectorize the loop, but only if vectorizer has a special case to forward the stored values to the load.  Otherwise, the load will get values from the wrong loop iteration.


Repository:
  rL LLVM

https://reviews.llvm.org/D54538





More information about the llvm-commits mailing list