[llvm] r306749 - [SLPVectorizer] Moving Entry->NeedToGather check out of inner loop,

Dinar Temirbulatov via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 29 14:56:33 PDT 2017


Author: dinar
Date: Thu Jun 29 14:56:33 2017
New Revision: 306749

URL: http://llvm.org/viewvc/llvm-project?rev=306749&view=rev
Log:
[SLPVectorizer] Moving Entry->NeedToGather check out of inner loop, 
                since it is invariant there. NFCI.

Modified:
    llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp

Modified: llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp?rev=306749&r1=306748&r2=306749&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp (original)
+++ llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp Thu Jun 29 14:56:33 2017
@@ -1062,14 +1062,14 @@ void BoUpSLP::buildTree(ArrayRef<Value *
   for (TreeEntry &EIdx : VectorizableTree) {
     TreeEntry *Entry = &EIdx;
 
+    // No need to handle users of gathered values.
+    if (Entry->NeedToGather)
+      continue;
+
     // For each lane:
     for (int Lane = 0, LE = Entry->Scalars.size(); Lane != LE; ++Lane) {
       Value *Scalar = Entry->Scalars[Lane];
 
-      // No need to handle users of gathered values.
-      if (Entry->NeedToGather)
-        continue;
-
       // Check if the scalar is externally used as an extra arg.
       auto ExtI = ExternallyUsedValues.find(Scalar);
       if (ExtI != ExternallyUsedValues.end()) {




More information about the llvm-commits mailing list