class VPDef
Declaration
class VPDef { /* full declaration omitted */ };
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.
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:312
Member Variables
- private const unsigned char SubclassID
- Subclass identifier (for isa/dyn_cast).
- private TinyPtrVector<llvm::VPValue*> DefinedValues
- The VPValues defined by this VPDef.
Method Overview
- public VPDef(const unsigned char SC)
- private void addDefinedValue(llvm::VPValue * V)
- public ArrayRef<llvm::VPValue *> definedValues()
- public ArrayRef<llvm::VPValue *> definedValues() const
- public void dump() const
- public unsigned int getNumDefinedValues() const
- public unsigned int getVPDefID() const
- public llvm::VPValue * getVPSingleValue()
- public const llvm::VPValue * getVPSingleValue() const
- public llvm::VPValue * getVPValue(unsigned int I)
- public const llvm::VPValue * getVPValue(unsigned int I) const
- public virtual void print(llvm::raw_ostream & O, const llvm::Twine & Indent, llvm::VPSlotTracker & SlotTracker) const
- private void removeDefinedValue(llvm::VPValue * V)
- public virtual ~VPDef()
Methods
¶VPDef(const unsigned char SC)
VPDef(const unsigned char SC)
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:373
Parameters
- const unsigned char SC
¶void addDefinedValue(llvm::VPValue* V)
void addDefinedValue(llvm::VPValue* V)
Description
Add \p V as a defined value by this VPDef.
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:322
Parameters
¶ArrayRef<llvm::VPValue*> definedValues()
ArrayRef<llvm::VPValue*> definedValues()
Description
Returns an ArrayRef of the values defined by the VPDef.
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:410
¶ArrayRef<llvm::VPValue*> definedValues() const
ArrayRef<llvm::VPValue*> definedValues() const
Description
Returns an ArrayRef of the values defined by the VPDef.
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:412
¶void dump() const
void dump() const
Description
Dump the VPDef to stderr (for debugging).
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:424
¶unsigned int getNumDefinedValues() const
unsigned int getNumDefinedValues() const
Description
Returns the number of values defined by the VPDef.
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:415
¶unsigned int getVPDefID() const
unsigned int getVPDefID() const
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:420
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.
¶llvm::VPValue* getVPSingleValue()
llvm::VPValue* getVPSingleValue()
Description
Returns the only VPValue defined by the VPDef. Can only be called for VPDefs with a single defined value.
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:388
¶const llvm::VPValue* getVPSingleValue() const
const llvm::VPValue* getVPSingleValue() const
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:393
¶llvm::VPValue* getVPValue(unsigned int I)
llvm::VPValue* getVPValue(unsigned int I)
Description
Returns the VPValue with index \p I defined by the VPDef.
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:400
Parameters
- unsigned int I
¶const llvm::VPValue* getVPValue(
unsigned int I) const
const llvm::VPValue* getVPValue(
unsigned int I) const
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:404
Parameters
- unsigned int I
¶virtual void print(
llvm::raw_ostream& O,
const llvm::Twine& Indent,
llvm::VPSlotTracker& SlotTracker) const
virtual void print(
llvm::raw_ostream& O,
const llvm::Twine& Indent,
llvm::VPSlotTracker& SlotTracker) const
Description
Each concrete VPDef prints itself.
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:427
Parameters
- llvm::raw_ostream& O
- const llvm::Twine& Indent
- llvm::VPSlotTracker& SlotTracker
¶void removeDefinedValue(llvm::VPValue* V)
void removeDefinedValue(llvm::VPValue* V)
Description
Remove \p V from the values defined by this VPDef. \p V must be a defined value of this VPDef.
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:330
Parameters
¶virtual ~VPDef()
virtual ~VPDef()
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:375