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

Methods

VPDef(const unsigned char SC)

Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:373

Parameters

const unsigned char SC

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

llvm::VPValue* V

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

Description

Returns an ArrayRef of the values defined by the VPDef.

Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:412

void dump() const

Description

Dump the VPDef to stderr (for debugging).

Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:424

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

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()

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

Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:393

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

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

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)

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

llvm::VPValue* V

virtual ~VPDef()

Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:375