[llvm] r179932 - refactor tryToVectorizePair to a new method that supports vectorization of lists.

Nadav Rotem nrotem at apple.com
Sat Apr 20 00:22:58 PDT 2013


Author: nadav
Date: Sat Apr 20 02:22:58 2013
New Revision: 179932

URL: http://llvm.org/viewvc/llvm-project?rev=179932&view=rev
Log:
refactor tryToVectorizePair to a new method that supports vectorization of lists.

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=179932&r1=179931&r2=179932&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp (original)
+++ llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp Sat Apr 20 02:22:58 2013
@@ -127,6 +127,9 @@ private:
   /// \brief Try to vectorize a chain that starts at two arithmetic instrs.
   bool tryToVectorizePair(Value *A, Value *B,  BoUpSLP &R);
 
+  /// \brief Try to vectorize a list of operands.
+  bool tryToVectorizeList(BoUpSLP::ValueList &VL, BoUpSLP &R);
+
   /// \brief Try to vectorize a chain that may start at the operands of \V;
   bool tryToVectorize(BinaryOperator *V,  BoUpSLP &R);
 
@@ -174,6 +177,11 @@ bool SLPVectorizer::tryToVectorizePair(V
   BoUpSLP::ValueList VL;
   VL.push_back(A);
   VL.push_back(B);
+  return tryToVectorizeList(VL, R);
+}
+
+bool SLPVectorizer::tryToVectorizeList(BoUpSLP::ValueList &VL,  BoUpSLP &R) {
+  DEBUG(dbgs()<<"SLP: Vectorizing a list of length = " << VL.size() << ".\n");
   int Cost = R.getTreeCost(VL);
   int ExtrCost = R.getScalarizationCost(VL);
   DEBUG(dbgs()<<"SLP: Cost of pair:" << Cost <<





More information about the llvm-commits mailing list