[llvm] r214487 - SLP Vectorizer: added statistics counter

Eric Christopher echristo at gmail.com
Fri Aug 1 11:19:33 PDT 2014


Hey, cool. Thanks for splitting this up.

-eric

On Fri, Aug 1, 2014 at 1:14 AM, Erik Eckstein <eeckstein at apple.com> wrote:
> Author: eeckstein
> Date: Fri Aug  1 03:14:28 2014
> New Revision: 214487
>
> URL: http://llvm.org/viewvc/llvm-project?rev=214487&view=rev
> Log:
> SLP Vectorizer: added statistics counter
>
>
> 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=214487&r1=214486&r2=214487&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp (original)
> +++ llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp Fri Aug  1 03:14:28 2014
> @@ -19,6 +19,7 @@
>  #include "llvm/ADT/MapVector.h"
>  #include "llvm/ADT/PostOrderIterator.h"
>  #include "llvm/ADT/SetVector.h"
> +#include "llvm/ADT/Statistic.h"
>  #include "llvm/Analysis/AliasAnalysis.h"
>  #include "llvm/Analysis/LoopInfo.h"
>  #include "llvm/Analysis/ScalarEvolution.h"
> @@ -48,6 +49,8 @@ using namespace llvm;
>  #define SV_NAME "slp-vectorizer"
>  #define DEBUG_TYPE "SLP"
>
> +STATISTIC(NumVectorInstructions, "Number of vector instructions generated");
> +
>  static cl::opt<int>
>      SLPCostThreshold("slp-threshold", cl::init(0), cl::Hidden,
>                       cl::desc("Only vectorize if you gain more than this "
> @@ -1720,6 +1723,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry
>        CastInst *CI = dyn_cast<CastInst>(VL0);
>        Value *V = Builder.CreateCast(CI->getOpcode(), InVec, VecTy);
>        E->VectorizedValue = V;
> +      ++NumVectorInstructions;
>        return V;
>      }
>      case Instruction::FCmp:
> @@ -1746,6 +1750,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry
>          V = Builder.CreateICmp(P0, L, R);
>
>        E->VectorizedValue = V;
> +      ++NumVectorInstructions;
>        return V;
>      }
>      case Instruction::Select: {
> @@ -1767,6 +1772,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry
>
>        Value *V = Builder.CreateSelect(Cond, True, False);
>        E->VectorizedValue = V;
> +      ++NumVectorInstructions;
>        return V;
>      }
>      case Instruction::Add:
> @@ -1811,6 +1817,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry
>        BinaryOperator *BinOp = cast<BinaryOperator>(VL0);
>        Value *V = Builder.CreateBinOp(BinOp->getOpcode(), LHS, RHS);
>        E->VectorizedValue = V;
> +      ++NumVectorInstructions;
>
>        if (Instruction *I = dyn_cast<Instruction>(V))
>          return propagateMetadata(I, E->Scalars);
> @@ -1833,6 +1840,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry
>          Alignment = DL->getABITypeAlignment(LI->getPointerOperand()->getType());
>        LI->setAlignment(Alignment);
>        E->VectorizedValue = LI;
> +      ++NumVectorInstructions;
>        return propagateMetadata(LI, E->Scalars);
>      }
>      case Instruction::Store: {
> @@ -1854,6 +1862,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry
>          Alignment = DL->getABITypeAlignment(SI->getPointerOperand()->getType());
>        S->setAlignment(Alignment);
>        E->VectorizedValue = S;
> +      ++NumVectorInstructions;
>        return propagateMetadata(S, E->Scalars);
>      }
>      case Instruction::GetElementPtr: {
> @@ -1878,6 +1887,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry
>
>        Value *V = Builder.CreateGEP(Op0, OpVecs);
>        E->VectorizedValue = V;
> +      ++NumVectorInstructions;
>
>        if (Instruction *I = dyn_cast<Instruction>(V))
>          return propagateMetadata(I, E->Scalars);
> @@ -1918,6 +1928,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry
>        Function *CF = Intrinsic::getDeclaration(M, ID, Tys);
>        Value *V = Builder.CreateCall(CF, OpVecs);
>        E->VectorizedValue = V;
> +      ++NumVectorInstructions;
>        return V;
>      }
>      case Instruction::ShuffleVector: {
> @@ -1958,6 +1969,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry
>
>        Value *V = Builder.CreateShuffleVector(V0, V1, ShuffleMask);
>        E->VectorizedValue = V;
> +      ++NumVectorInstructions;
>        if (Instruction *I = dyn_cast<Instruction>(V))
>          return propagateMetadata(I, E->Scalars);
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list