Report the number of stores that were found in the debug message.
authorNadav Rotem <nrotem@apple.com>
Sat, 20 Apr 2013 05:23:11 +0000 (05:23 +0000)
committerNadav Rotem <nrotem@apple.com>
Sat, 20 Apr 2013 05:23:11 +0000 (05:23 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179929 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Vectorize/SLPVectorizer.cpp

index 6d4c36aacdc5b90d9282fc2f56b7ecb85a948a2e..a9ec243bc01009e512bd95c321a1b5a8c115af51 100644 (file)
@@ -89,8 +89,8 @@ struct SLPVectorizer : public FunctionPass {
       BBChanged |= vectorizeReductions(BB, R);
 
       // Vectorize trees that end at stores.
-      if (collectStores(BB, R)) {
-        DEBUG(dbgs()<<"SLP: Found stores to vectorize.\n");
+      if (unsigned count = collectStores(BB, R)) {
+        DEBUG(dbgs()<<"SLP: Found " << count << " stores to vectorize.\n");
         BBChanged |= vectorizeStoreChains(R);
       }
 
@@ -121,7 +121,7 @@ private:
   /// object. We sort the stores to their base objects to reduce the cost of the
   /// quadratic search on the stores. TODO: We can further reduce this cost
   /// if we flush the chain creation every time we run into a memory barrier.
-  bool collectStores(BasicBlock *BB, BoUpSLP &R);
+  unsigned collectStores(BasicBlock *BB, BoUpSLP &R);
 
   /// \brief Try to vectorize a chain that starts at two arithmetic instrs.
   bool tryToVectorizePair(Value *A, Value *B,  BoUpSLP &R);
@@ -144,7 +144,8 @@ private:
   StoreListMap StoreRefs;
 };
 
-bool SLPVectorizer::collectStores(BasicBlock *BB, BoUpSLP &R) {
+unsigned SLPVectorizer::collectStores(BasicBlock *BB, BoUpSLP &R) {
+  unsigned count = 0;
   StoreRefs.clear();
   for (BasicBlock::iterator it = BB->begin(), e = BB->end(); it != e; ++it) {
     StoreInst *SI = dyn_cast<StoreInst>(it);
@@ -153,7 +154,7 @@ bool SLPVectorizer::collectStores(BasicBlock *BB, BoUpSLP &R) {
 
     // Check that the pointer points to scalars.
     if (SI->getValueOperand()->getType()->isAggregateType())
-      return false;
+      return 0;
 
     // Find the base of the GEP.
     Value *Ptr = SI->getPointerOperand();
@@ -162,8 +163,9 @@ bool SLPVectorizer::collectStores(BasicBlock *BB, BoUpSLP &R) {
 
     // Save the store locations.
     StoreRefs[Ptr].push_back(SI);
+    count++;
   }
-  return true;
+  return count;
 }
 
 bool SLPVectorizer::tryToVectorizePair(Value *A, Value *B,  BoUpSLP &R) {