LLVM 24.0.0git
llvm::VPSingleDefValue Class Reference

A VPRecipeValue defined by a VPSingleDefRecipe. More...

#include "Transforms/Vectorize/VPlanValue.h"

Inheritance diagram for llvm::VPSingleDefValue:
[legend]

Public Member Functions

 ~VPSingleDefValue () override
Public Member Functions inherited from llvm::VPRecipeValue
virtual LLVM_ABI_FOR_TEST ~VPRecipeValue ()=0
Type * getScalarType () const
 Returns the scalar type of this VPRecipeValue.
Public Member Functions inherited from llvm::VPValue
Value * getUnderlyingValue () const
 Return the underlying Value attached to this VPValue.
Value * getLiveInIRValue () const
 Return the underlying IR value for a VPIRValue.
 VPValue (const VPValue &)=delete
VPValue & operator= (const VPValue &)=delete
virtual ~VPValue ()
unsigned getVPValueID () const
void printAsOperand (raw_ostream &OS, VPSlotTracker &Tracker) const
void print (raw_ostream &OS, VPSlotTracker &Tracker) const
void dump () const
 Dump the value to stderr (for debugging).
void assertNotMaterialized () const
 Assert that this VPValue has not been materialized, if it is a VPSymbolicValue.
unsigned getNumUsers () const
void addUser (VPUser &User)
void removeUser (VPUser &User)
 Remove a single User from the list of users.
user_iterator user_begin ()
const_user_iterator user_begin () const
user_iterator user_end ()
const_user_iterator user_end () const
user_range users ()
const_user_range users () const
bool user_empty () const
bool hasMoreThanOneUniqueUser () const
 Returns true if the value has more than one unique user.
bool hasOneUse () const
VPUser * getSingleUser ()
 Return the single user of this value, or nullptr if there is not exactly one user.
const VPUser * getSingleUser () const
void replaceAllUsesWith (VPValue *New)
void replaceUsesWithIf (VPValue *New, llvm::function_ref< bool(VPUser &U, unsigned Idx)> ShouldReplace)
 Go through the uses list for this VPValue and make each use point to New if the callback ShouldReplace returns true for the given use specified by a pair of (VPUser, the use index).
VPRecipeBase * getDefiningRecipe ()
 Returns the recipe defining this VPValue or nullptr if it is not defined by a recipe, i.e.
const VPRecipeBase * getDefiningRecipe () const
Type * getScalarType () const
 Returns the scalar type of this VPValue, dispatching based on the concrete subclass.
bool hasDefiningRecipe () const
 Returns true if this VPValue is defined by a recipe.
bool isDefinedOutsideLoopRegions () const
 Returns true if the VPValue is defined outside any loop.
void setUnderlyingValue (Value *Val)

Static Public Member Functions

static bool classof (const VPValue *V)
Static Public Member Functions inherited from llvm::VPRecipeValue
static bool classof (const VPValue *V)

Protected Member Functions

LLVM_ABI_FOR_TEST VPSingleDefValue (VPSingleDefRecipe *Def, Value *UV=nullptr, Type *Ty=nullptr)
 Construct a VPSingleDefValue. Must only be used by VPSingleDefRecipe.
Protected Member Functions inherited from llvm::VPRecipeValue
 VPRecipeValue (unsigned char SC, Value *UV, Type *Ty=nullptr)

Friends

class VPDef
class VPSingleDefRecipe

Additional Inherited Members

Public Types inherited from llvm::VPValue
enum  {
  VPVIRValueSC , VPVSymbolicSC , VPVSingleDefValueSC , VPVMultiDefValueSC ,
  VPRegionValueSC
}
 An enumeration for keeping track of the concrete subclass of VPValue that are actually instantiated. More...
typedef SmallVectorImpl< VPUser * >::iterator user_iterator
typedef SmallVectorImpl< VPUser * >::const_iterator const_user_iterator
typedef iterator_range< user_iterator > user_range
typedef iterator_range< const_user_iterator > const_user_range

Detailed Description

A VPRecipeValue defined by a VPSingleDefRecipe.

Definition at line 363 of file VPlanValue.h.

Constructor & Destructor Documentation

◆ VPSingleDefValue()

◆ ~VPSingleDefValue()

VPSingleDefValue::~VPSingleDefValue ( )
override

Definition at line 173 of file VPlan.cpp.

References llvm::VPValue::getDefiningRecipe().

Member Function Documentation

◆ classof()

bool llvm::VPSingleDefValue::classof ( const VPValue * V)
inlinestatic

◆ VPDef

friend class VPDef
friend

Definition at line 364 of file VPlanValue.h.

References VPDef.

Referenced by VPDef.

◆ VPSingleDefRecipe

friend class VPSingleDefRecipe
friend

Definition at line 365 of file VPlanValue.h.

References LLVM_ABI_FOR_TEST, VPSingleDefRecipe, and VPSingleDefValue().

Referenced by VPSingleDefRecipe, and VPSingleDefValue().


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