[PATCH] D22867: [LV] Untangle the concepts of uniform and scalar

Michael Kuperstein via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 29 14:14:37 PDT 2016


mkuper added inline comments.

================
Comment at: lib/Transforms/Vectorize/LoopVectorize.cpp:1539
@@ +1538,3 @@
+  /// during vectorization. Non-uniform scalarized instructions will be
+  /// represted by VF values in the vectorized loop, each corresponding to an
+  /// iteration of the original scalar loop.
----------------
represted -> represented.

================
Comment at: lib/Transforms/Vectorize/LoopVectorize.cpp:4955
@@ -4863,4 +4954,3 @@
 
-  // Also add all consecutive pointer values; these values will be uniform
-  // after vectorization (and subsequent cleanup).
-  for (auto *BB : TheLoop->blocks()) {
+  // Also add all uniform pointer values.
+  for (auto *BB : TheLoop->blocks())
----------------
This is still not quite right.
getUniformPtr() doesn't actually return a pointer if I has a uniform pointer argument. It does for the consecutive and interleaved case, but not for "real" scalar loop-invariant uniform pointers (e.g. a load from a global) - that is, uniform in the Legal->isUniform() sense.

Have I already thanked you for untangling this? :-)


https://reviews.llvm.org/D22867





More information about the llvm-commits mailing list