LLVM 22.0.0git
llvm::VPDef Class Referenceabstract

This class augments a recipe with a set of VPValues defined by the recipe. More...

#include "Transforms/Vectorize/VPlanValue.h"

Inheritance diagram for llvm::VPDef:
[legend]

Public Types

using VPRecipeTy
 An enumeration for keeping track of the concrete subclass of VPRecipeBase that is actually instantiated.

Public Member Functions

 VPDef (const unsigned char SC)
virtual ~VPDef ()
VPValuegetVPSingleValue ()
 Returns the only VPValue defined by the VPDef.
const VPValuegetVPSingleValue () const
VPValuegetVPValue (unsigned I)
 Returns the VPValue with index I defined by the VPDef.
const VPValuegetVPValue (unsigned I) const
ArrayRef< VPValue * > definedValues ()
 Returns an ArrayRef of the values defined by the VPDef.
ArrayRef< VPValue * > definedValues () const
 Returns an ArrayRef of the values defined by the VPDef.
unsigned getNumDefinedValues () const
 Returns the number of values defined by the VPDef.
unsigned getVPDefID () const
void dump () const
 Dump the VPDef to stderr (for debugging).
virtual void print (raw_ostream &O, const Twine &Indent, VPSlotTracker &SlotTracker) const =0
 Each concrete VPDef prints itself.

Friends

class VPValue

Detailed Description

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 302 of file VPlanValue.h.

Member Typedef Documentation

◆ VPRecipeTy

An enumeration for keeping track of the concrete subclass of VPRecipeBase that is actually instantiated.

Values of this enumeration are kept in the SubclassID field of the VPRecipeBase objects. They are used for concrete type identification.

Definition at line 333 of file VPlanValue.h.

Constructor & Destructor Documentation

◆ VPDef()

llvm::VPDef::VPDef ( const unsigned char SC)
inline

Definition at line 382 of file VPlanValue.h.

Referenced by llvm::VPRecipeBase::classof(), and llvm::VPRecipeBase::VPRecipeBase().

◆ ~VPDef()

virtual llvm::VPDef::~VPDef ( )
inlinevirtual

Definition at line 384 of file VPlanValue.h.

References assert(), D(), llvm::make_early_inc_range(), and VPValue.

Member Function Documentation

◆ definedValues() [1/2]

ArrayRef< VPValue * > llvm::VPDef::definedValues ( )
inline

Returns an ArrayRef of the values defined by the VPDef.

Definition at line 419 of file VPlanValue.h.

Referenced by collectUsersRecursively(), llvm::VPInterleaveRecipe::execute(), and isConsecutiveInterleaveGroup().

◆ definedValues() [2/2]

ArrayRef< VPValue * > llvm::VPDef::definedValues ( ) const
inline

Returns an ArrayRef of the values defined by the VPDef.

Definition at line 421 of file VPlanValue.h.

◆ dump()

void VPDef::dump ( ) const

Dump the VPDef to stderr (for debugging).

Definition at line 126 of file VPlan.cpp.

References llvm::dbgs(), llvm::dyn_cast_or_null(), and print().

Referenced by llvm::VPRecipeBase::cost(), and llvm::VPSingleDefRecipe::dump().

◆ getNumDefinedValues()

unsigned llvm::VPDef::getNumDefinedValues ( ) const
inline

◆ getVPDefID()

unsigned llvm::VPDef::getVPDefID ( ) const
inline
Returns
an ID for the concrete type of this object. This is used to implement the classof checks. This should not be used for any other purpose, as the values may change as LLVM evolves.

Definition at line 429 of file VPlanValue.h.

Referenced by llvm::VPRecipeBase::isPhi(), llvm::VPRecipeBase::mayHaveSideEffects(), llvm::VPRecipeBase::mayReadFromMemory(), and llvm::VPRecipeBase::mayWriteToMemory().

◆ getVPSingleValue() [1/2]

◆ getVPSingleValue() [2/2]

const VPValue * llvm::VPDef::getVPSingleValue ( ) const
inline

Definition at line 402 of file VPlanValue.h.

References assert(), and VPValue.

◆ getVPValue() [1/2]

◆ getVPValue() [2/2]

const VPValue * llvm::VPDef::getVPValue ( unsigned I) const
inline

Definition at line 413 of file VPlanValue.h.

References assert(), I, and VPValue.

◆ print()

◆ VPValue

friend class VPValue
friend

Definition at line 303 of file VPlanValue.h.

References VPValue.

Referenced by getVPSingleValue(), getVPSingleValue(), getVPValue(), getVPValue(), VPValue, and ~VPDef().


The documentation for this class was generated from the following files: