9#ifndef LLVM_TRANSFORMS_VECTORIZE_VPLANANALYSIS_H
10#define LLVM_TRANSFORMS_VECTORIZE_VPLANANALYSIS_H
21class VPWidenCallRecipe;
22class VPWidenIntOrFpInductionRecipe;
23class VPWidenMemoryRecipe;
24struct VPWidenSelectRecipe;
25class VPReplicateRecipe;
55 : CanonicalIVTy(CanonicalIVTy), Ctx(Ctx) {}
This file defines the DenseMap class.
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.
VPTypeAnalysis(Type *CanonicalIVTy, LLVMContext &Ctx)
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.
A recipe for widening Call instructions.
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 copy of vector type its ingredient.
This is an optimization pass for GlobalISel generic memory operations.
A recipe for widening select instructions.