9#ifndef LLVM_TRANSFORMS_VECTORIZE_VPLANANALYSIS_H
10#define LLVM_TRANSFORMS_VECTORIZE_VPLANANALYSIS_H
23class VPWidenCallRecipe;
24class VPWidenIntOrFpInductionRecipe;
25class VPWidenMemoryRecipe;
26struct VPWidenSelectRecipe;
27class VPReplicateRecipe;
59 : CanonicalIVTy(CanonicalIVTy), Ctx(CanonicalIVTy->
getContext()) {}
70 DenseSet<VPRecipeBase *> &EphRecipes);
This file defines the DenseMap class.
This file defines the DenseSet and SmallDenseSet classes.
This is an important class for using LLVM in a threaded context.
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.
VPReplicateRecipe replicates a given instruction producing multiple scalar copies of the original sca...
An analysis for type-inference for VPValues.
LLVMContext & getContext()
Return the LLVMContext used by the analysis.
VPTypeAnalysis(Type *CanonicalIVTy)
Type * inferScalarType(const VPValue *V)
Infer the type of V. Returns the scalar type of V.
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...
This is an optimization pass for GlobalISel generic memory operations.
void collectEphemeralRecipesForVPlan(VPlan &Plan, DenseSet< VPRecipeBase * > &EphRecipes)
A recipe for widening select instructions.