|
LLVM 23.0.0git
|
This class augments a recipe with a set of VPValues defined by the recipe. More...
#include "Transforms/Vectorize/VPlanValue.h"
Public Member Functions | |
| VPDef () | |
| virtual | ~VPDef () |
| VPValue * | getVPSingleValue () |
| Returns the only VPValue defined by the VPDef. | |
| const VPValue * | getVPSingleValue () const |
| VPValue * | getVPValue (unsigned I) |
Returns the VPValue with index I defined by the VPDef. | |
| const VPValue * | getVPValue (unsigned I) const |
| ArrayRef< VPRecipeValue * > | definedValues () |
| Returns an ArrayRef of the values defined by the VPDef. | |
| ArrayRef< VPRecipeValue * > | definedValues () const |
| Returns an ArrayRef of the values defined by the VPDef. | |
| unsigned | getNumDefinedValues () const |
| Returns the number of values defined by the VPDef. | |
Friends | |
| class | VPRecipeValue |
This class augments a recipe with a set of VPValues defined by the recipe.
It allows recipes to define zero, one or multiple VPValues. A VPDef owns the VPValues it defines and is responsible for deleting its defined values. Single-value VPDefs that also inherit from VPValue must make sure to inherit from VPDef before VPValue.
Definition at line 361 of file VPlanValue.h.
|
inline |
Definition at line 386 of file VPlanValue.h.
Referenced by llvm::VPRecipeBase::classof(), and llvm::VPRecipeBase::VPRecipeBase().
|
inlinevirtual |
Definition at line 388 of file VPlanValue.h.
References assert(), D(), llvm::to_vector(), and VPRecipeValue.
|
inline |
Returns an ArrayRef of the values defined by the VPDef.
Definition at line 422 of file VPlanValue.h.
Referenced by collectUsersRecursively(), llvm::VPInterleaveRecipe::execute(), and isConsecutiveInterleaveGroup().
|
inline |
Returns an ArrayRef of the values defined by the VPDef.
Definition at line 424 of file VPlanValue.h.
|
inline |
Returns the number of values defined by the VPDef.
Definition at line 427 of file VPlanValue.h.
Referenced by llvm::VPInterleaveBase::computeCost(), hoistPreviousBeforeFORUsers(), sinkRecurrenceUsersAfterPrevious(), and llvm::VPlanTransforms::tryToConvertVPInstructionsToVPRecipes().
|
inline |
Returns the only VPValue defined by the VPDef.
Can only be called for VPDefs with a single defined value.
Definition at line 400 of file VPlanValue.h.
References assert().
Referenced by llvm::VPlanTransforms::createInterleaveGroups(), llvm::VPlanTransforms::dropPoisonGeneratingRecipes(), hoistPreviousBeforeFORUsers(), llvm::VPRecipeBase::mayHaveSideEffects(), llvm::VPRecipeBase::mayReadFromMemory(), llvm::VPRecipeBase::mayWriteToMemory(), optimizeMaskToEVL(), simplifyRecipe(), sinkRecurrenceUsersAfterPrevious(), and llvm::VPlanTransforms::tryToConvertVPInstructionsToVPRecipes().
Definition at line 405 of file VPlanValue.h.
References assert().
Returns the VPValue with index I defined by the VPDef.
Definition at line 412 of file VPlanValue.h.
Referenced by llvm::VPInterleaveBase::computeCost(), llvm::VPInterleaveEVLRecipe::execute(), isConsecutiveInterleaveGroup(), llvm::VPInterleaveEVLRecipe::printRecipe(), and llvm::VPInterleaveRecipe::printRecipe().
Definition at line 416 of file VPlanValue.h.
|
friend |
Definition at line 362 of file VPlanValue.h.
References VPRecipeValue.
Referenced by VPRecipeValue, and ~VPDef().