9#ifndef LLVM_TRANSFORMS_VECTORIZE_VPLANANALYSIS_H 
   10#define LLVM_TRANSFORMS_VECTORIZE_VPLANANALYSIS_H 
   72                                     DenseSet<VPRecipeBase *> &EphRecipes);
 
   88                         unsigned OverrideMaxNumRegs = 0) 
const;
 
 
This file defines the DenseMap class.
 
This file defines the DenseSet and SmallDenseSet classes.
 
This file implements a map that provides insertion order iteration.
 
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
 
This is an important class for using LLVM in a threaded context.
 
A templated base class for SmallPtrSet which provides the typesafe interface that is common across al...
 
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
 
The instances of the Type class are immutable: once they are created, they are never changed.
 
A recipe for vectorizing a phi-node as a sequence of mask-based select instructions.
 
This is a concrete Recipe that models a single VPlan-level instruction.
 
VPRecipeBase is a base class modeling a sequence of one or more output IR instructions.
 
VPReplicateRecipe replicates a given instruction producing multiple scalar copies of the original sca...
 
LLVMContext & getContext()
Return the LLVMContext used by the analysis.
 
Type * inferScalarType(const VPValue *V)
Infer the type of V. Returns the scalar type of V.
 
VPTypeAnalysis(const VPlan &Plan)
 
This is the base class of the VPlan Def/Use graph, used for modeling the data flow into,...
 
A recipe for widening Call instructions using library calls.
 
A recipe for handling phi nodes of integer and floating-point inductions, producing their vector valu...
 
A common base class for widening memory operations.
 
VPWidenRecipe is a recipe for producing a widened instruction using the opcode and operands of the re...
 
VPlan models a candidate for vectorization, encoding various decisions take to produce efficient outp...
 
LLVM Value Representation.
 
This is an optimization pass for GlobalISel generic memory operations.
 
SmallVector< VPRegisterUsage, 8 > calculateRegisterUsageForPlan(VPlan &Plan, ArrayRef< ElementCount > VFs, const TargetTransformInfo &TTI, const SmallPtrSetImpl< const Value * > &ValuesToIgnore)
Estimate the register usage for Plan and vectorization factors in VFs by calculating the highest numb...
 
void collectEphemeralRecipesForVPlan(VPlan &Plan, DenseSet< VPRecipeBase * > &EphRecipes)
 
A MapVector that performs no allocations if smaller than a certain size.
 
A struct that represents some properties of the register usage of a loop.
 
SmallMapVector< unsigned, unsigned, 4 > MaxLocalUsers
Holds the maximum number of concurrent live intervals in the loop.
 
bool exceedsMaxNumRegs(const TargetTransformInfo &TTI, unsigned OverrideMaxNumRegs=0) const
Check if any of the tracked live intervals exceeds the number of available registers for the target.
 
SmallMapVector< unsigned, unsigned, 4 > LoopInvariantRegs
Holds the number of loop invariant values that are used in the loop.
 
A recipe for widening select instructions.