|
| class | llvm::VPBlockBase |
| | VPBlockBase is the building block of the Hierarchical Control-Flow Graph. More...
|
| class | llvm::VPRecipeBase |
| | VPRecipeBase is a base class modeling a sequence of one or more output IR instructions. More...
|
| class | llvm::VPSingleDefRecipe |
| | VPSingleDef is a base class for recipes for modeling a sequence of one or more output IR that define a single result VPValue. More...
|
| class | llvm::VPIRFlags |
| | Class to record and manage LLVM IR flags. More...
|
| struct | llvm::VPIRFlags::WrapFlagsTy |
| struct | llvm::VPIRFlags::TruncFlagsTy |
| struct | llvm::VPIRFlags::DisjointFlagsTy |
| struct | llvm::VPIRFlags::NonNegFlagsTy |
| struct | llvm::VPRecipeWithIRFlags |
| | A pure-virtual common base class for recipes defining a single VPValue and using IR flags. More...
|
| class | llvm::VPUnrollPartAccessor< PartOpIdx > |
| | Helper to access the operand that contains the unroll part for this recipe after unrolling. More...
|
| class | llvm::VPIRMetadata |
| | Helper to manage IR metadata for recipes. More...
|
| class | llvm::VPInstruction |
| | This is a concrete Recipe that models a single VPlan-level instruction. More...
|
| class | llvm::VPInstructionWithType |
| | A specialization of VPInstruction augmenting it with a dedicated result type, to be used when the opcode and operands of the VPInstruction don't directly determine the result type. More...
|
| class | llvm::VPPhiAccessors |
| | Helper type to provide functions to access incoming values and blocks for phi-like recipes. More...
|
| struct | llvm::VPPhi |
| class | llvm::VPIRInstruction |
| | A recipe to wrap on original IR instruction not to be modified during execution, except for PHIs. More...
|
| struct | llvm::VPIRPhi |
| | An overlay for VPIRInstructions wrapping PHI nodes enabling convenient use cast/dyn_cast/isa and execute() implementation. More...
|
| class | llvm::VPWidenRecipe |
| | VPWidenRecipe is a recipe for producing a widened instruction using the opcode and operands of the recipe. More...
|
| class | llvm::VPWidenCastRecipe |
| | VPWidenCastRecipe is a recipe to create vector cast instructions. More...
|
| class | llvm::VPWidenIntrinsicRecipe |
| | A recipe for widening vector intrinsics. More...
|
| class | llvm::VPWidenCallRecipe |
| | A recipe for widening Call instructions using library calls. More...
|
| class | llvm::VPHistogramRecipe |
| | A recipe representing a sequence of load -> update -> store as part of a histogram operation. More...
|
| struct | llvm::VPWidenSelectRecipe |
| | A recipe for widening select instructions. More...
|
| class | llvm::VPWidenGEPRecipe |
| | A recipe for handling GEP instructions. More...
|
| class | llvm::VPVectorEndPointerRecipe |
| | A recipe to compute a pointer to the last element of each part of a widened memory access for widened memory accesses of IndexedTy. More...
|
| class | llvm::VPVectorPointerRecipe |
| | A recipe to compute the pointers for widened memory accesses of IndexTy. More...
|
| | A pure virtual base class for all recipes modeling header phis, including phis for first order recurrences, pointer inductions and reductions. More...
|
| class | llvm::VPWidenInductionRecipe |
| | Base class for widened induction (VPWidenIntOrFpInductionRecipe and VPWidenPointerInductionRecipe), providing shared functionality, including retrieving the step value, induction descriptor and original phi node. More...
|
| class | llvm::VPWidenIntOrFpInductionRecipe |
| | A recipe for handling phi nodes of integer and floating-point inductions, producing their vector values. More...
|
| class | llvm::VPWidenPointerInductionRecipe |
| class | llvm::VPWidenPHIRecipe |
| | A recipe for widened phis. More...
|
| struct | llvm::VPFirstOrderRecurrencePHIRecipe |
| | A recipe for handling first-order recurrence phis. More...
|
| class | llvm::VPReductionPHIRecipe |
| | A recipe for handling reduction phis. More...
|
| class | llvm::VPBlendRecipe |
| | A recipe for vectorizing a phi-node as a sequence of mask-based select instructions. More...
|
| class | llvm::VPInterleaveBase |
| | A common base class for interleaved memory operations. More...
|
| class | llvm::VPInterleaveRecipe |
| | VPInterleaveRecipe is a recipe for transforming an interleave group of load or stores into one wide load/store and shuffles. More...
|
| class | llvm::VPInterleaveEVLRecipe |
| | A recipe for interleaved memory operations with vector-predication intrinsics. More...
|
| class | llvm::VPReductionRecipe |
| | A recipe to represent inloop reduction operations, performing a reduction on a vector operand into a scalar value, and adding the result to a chain. More...
|
| class | llvm::VPPartialReductionRecipe |
| | A recipe for forming partial reductions. More...
|
| class | llvm::VPReductionEVLRecipe |
| | A recipe to represent inloop reduction operations with vector-predication intrinsics, performing a reduction on a vector operand with the explicit vector length (EVL) into a scalar value, and adding the result to a chain. More...
|
| class | llvm::VPReplicateRecipe |
| | VPReplicateRecipe replicates a given instruction producing multiple scalar copies of the original scalar type, one per lane, instead of producing a single copy of widened type for all lanes. More...
|
| class | llvm::VPBranchOnMaskRecipe |
| | A recipe for generating conditional branches on the bits of a mask. More...
|
| class | llvm::VPExpressionRecipe |
| | A recipe to combine multiple recipes into a single 'expression' recipe, which should be considered a single entity for cost-modeling and transforms. More...
|
| class | llvm::VPPredInstPHIRecipe |
| | VPPredInstPHIRecipe is a recipe for generating the phi nodes needed when control converges back from a Branch-on-Mask. More...
|
| class | llvm::VPWidenMemoryRecipe |
| | A common base class for widening memory operations. More...
|
| struct | llvm::VPWidenLoadRecipe |
| | A recipe for widening load operations, using the address to load from and an optional mask. More...
|
| struct | llvm::VPWidenLoadEVLRecipe |
| | A recipe for widening load operations with vector-predication intrinsics, using the address to load from, the explicit vector length and an optional mask. More...
|
| struct | llvm::VPWidenStoreRecipe |
| | A recipe for widening store operations, using the stored value, the address to store to and an optional mask. More...
|
| struct | llvm::VPWidenStoreEVLRecipe |
| | A recipe for widening store operations with vector-predication intrinsics, using the value to store, the address to store to, the explicit vector length and an optional mask. More...
|
| class | llvm::VPExpandSCEVRecipe |
| | Recipe to expand a SCEV expression. More...
|
| class | llvm::VPCanonicalIVPHIRecipe |
| | Canonical scalar induction phi of the vector loop. More...
|
| class | llvm::VPActiveLaneMaskPHIRecipe |
| | A recipe for generating the active lane mask for the vector loop that is used to predicate the vector operations. More...
|
| class | llvm::VPEVLBasedIVPHIRecipe |
| | A recipe for generating the phi node for the current index of elements, adjusted in accordance with EVL value. More...
|
| class | llvm::VPWidenCanonicalIVRecipe |
| | A Recipe for widening the canonical induction variable of the vector loop. More...
|
| class | llvm::VPDerivedIVRecipe |
| | A recipe for converting the input value IV value to the corresponding value of an IV with different start and step values, using Start + IV * Step. More...
|
| class | llvm::VPScalarIVStepsRecipe |
| | A recipe for handling phi nodes of integer and floating-point inductions, producing their scalar values. More...
|
| struct | llvm::CastIsPossible< VPPhiAccessors, const VPRecipeBase * > |
| | Casting from VPRecipeBase -> VPPhiAccessors is supported for all recipe types implementing VPPhiAccessors. More...
|
| struct | llvm::CastInfoVPPhiAccessors< SrcTy > |
| | Support casting from VPRecipeBase -> VPPhiAccessors, by down-casting to the recipe types implementing VPPhiAccessors. More...
|
| struct | llvm::CastInfo< VPPhiAccessors, VPRecipeBase * > |
| struct | llvm::CastInfo< VPPhiAccessors, const VPRecipeBase * > |
| class | llvm::VPBasicBlock |
| | VPBasicBlock serves as the leaf of the Hierarchical Control-Flow Graph. More...
|
| class | llvm::VPIRBasicBlock |
| | A special type of VPBasicBlock that wraps an existing IR basic block. More...
|
| class | llvm::VPRegionBlock |
| | VPRegionBlock represents a collection of VPBasicBlocks and VPRegionBlocks which form a Single-Entry-Single-Exiting subgraph of the output IR CFG. More...
|
| class | llvm::VPlan |
| | VPlan models a candidate for vectorization, encoding various decisions take to produce efficient output IR, including which branches, basic-blocks and output IR instructions to generate, and their cost. More...
|
This file contains the declarations of the Vectorization Plan base classes:
- VPBasicBlock and VPRegionBlock that inherit from a common pure virtual VPBlockBase, together implementing a Hierarchical CFG;
- Pure virtual VPRecipeBase serving as the base class for recipes contained within VPBasicBlocks;
- Pure virtual VPSingleDefRecipe serving as a base class for recipes that also inherit from VPValue.
- VPInstruction, a concrete Recipe and VPUser modeling a single planned instruction;
- The VPlan class holding a candidate for vectorization; These are documented in docs/VectorizationPlan.rst.
Definition in file VPlan.h.