[PATCH] D20474: when calculating RegUsages, ignore instructions which are uniformed after vectorization

Michael Kuperstein via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 7 18:30:26 PDT 2016


mkuper added inline comments.

================
Comment at: lib/Transforms/Vectorize/LoopVectorize.cpp:5350
@@ -5349,3 +5349,3 @@
       // Only examine Loads, Stores and PHINodes.
       if (!isa<LoadInst>(it) && !isa<StoreInst>(it) && !isa<PHINode>(it))
         continue;
----------------
Another side point - should we remove this?
Looking at http://reviews.llvm.org/rL172178, the reason that we only look at loads, stores, and PHIs is that "We don't have a detailed analysis on which values are vectorized and which stay scalars in the vectorized loop so we use another method. We look at reduction variables, loads and stores, which are the only ways to get information in and out of loop iterations".

That was true at the time, but since then we've gained a precise way of knowing which instructions are uniform, and with this patch will actually use that for ValuesToIgnore. So this check will now only miss instructions that ought to be taken into account, right?


Repository:
  rL LLVM

http://reviews.llvm.org/D20474





More information about the llvm-commits mailing list