LLVM  8.0.1
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
llvm::VPUser Class Reference

This class augments VPValue with operands which provide the inverse def-use edges from VPValue's users to their defs. More...

#include "Transforms/Vectorize/VPlanValue.h"

Inheritance diagram for llvm::VPUser:
Inheritance graph
[legend]
Collaboration diagram for llvm::VPUser:
Collaboration graph
[legend]

Public Types

typedef SmallVectorImpl< VPValue * >::iterator operand_iterator
 
typedef SmallVectorImpl< VPValue * >::const_iterator const_operand_iterator
 
typedef iterator_range< operand_iteratoroperand_range
 
typedef iterator_range< const_operand_iteratorconst_operand_range
 
- Public Types inherited from llvm::VPValue
enum  { VPValueSC, VPUserSC, VPInstructionSC }
 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_iteratoruser_range
 
typedef iterator_range< const_user_iteratorconst_user_range
 

Public Member Functions

 VPUser ()
 
 VPUser (ArrayRef< VPValue *> Operands)
 
 VPUser (std::initializer_list< VPValue *> Operands)
 
 VPUser (const VPUser &)=delete
 
VPUseroperator= (const VPUser &)=delete
 
void addOperand (VPValue *Operand)
 
unsigned getNumOperands () const
 
VPValuegetOperand (unsigned N) const
 
void setOperand (unsigned I, VPValue *New)
 
operand_iterator op_begin ()
 
const_operand_iterator op_begin () const
 
operand_iterator op_end ()
 
const_operand_iterator op_end () const
 
operand_range operands ()
 
const_operand_range operands () const
 
- Public Member Functions inherited from llvm::VPValue
 VPValue (Value *UV=nullptr)
 
 VPValue (const VPValue &)=delete
 
VPValueoperator= (const VPValue &)=delete
 
unsigned getVPValueID () const
 
void printAsOperand (raw_ostream &OS) const
 
unsigned getNumUsers () const
 
void addUser (VPUser &User)
 
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 hasMoreThanOneUniqueUser ()
 Returns true if the value has more than one unique user. More...
 
void replaceAllUsesWith (VPValue *New)
 

Static Public Member Functions

static bool classof (const VPValue *V)
 Method to support type inquiry through isa, cast, and dyn_cast. More...
 

Protected Member Functions

 VPUser (const unsigned char SC)
 
 VPUser (const unsigned char SC, ArrayRef< VPValue *> Operands)
 
- Protected Member Functions inherited from llvm::VPValue
 VPValue (const unsigned char SC, Value *UV=nullptr)
 
ValuegetUnderlyingValue ()
 Return the underlying Value attached to this VPValue. More...
 
void setUnderlyingValue (Value *Val)
 

Additional Inherited Members

- Protected Attributes inherited from llvm::VPValue
ValueUnderlyingVal
 

Detailed Description

This class augments VPValue with operands which provide the inverse def-use edges from VPValue's users to their defs.

Definition at line 132 of file VPlanValue.h.

Member Typedef Documentation

◆ const_operand_iterator

Definition at line 171 of file VPlanValue.h.

◆ const_operand_range

Definition at line 173 of file VPlanValue.h.

◆ operand_iterator

Definition at line 170 of file VPlanValue.h.

◆ operand_range

Definition at line 172 of file VPlanValue.h.

Constructor & Destructor Documentation

◆ VPUser() [1/6]

llvm::VPUser::VPUser ( const unsigned char  SC)
inlineprotected

Definition at line 137 of file VPlanValue.h.

◆ VPUser() [2/6]

llvm::VPUser::VPUser ( const unsigned char  SC,
ArrayRef< VPValue *>  Operands 
)
inlineprotected

Definition at line 138 of file VPlanValue.h.

References addOperand().

◆ VPUser() [3/6]

llvm::VPUser::VPUser ( )
inline

Definition at line 144 of file VPlanValue.h.

◆ VPUser() [4/6]

llvm::VPUser::VPUser ( ArrayRef< VPValue *>  Operands)
inline

Definition at line 145 of file VPlanValue.h.

◆ VPUser() [5/6]

llvm::VPUser::VPUser ( std::initializer_list< VPValue *>  Operands)
inline

Definition at line 146 of file VPlanValue.h.

References llvm::VPValue::operator=().

◆ VPUser() [6/6]

llvm::VPUser::VPUser ( const VPUser )
delete

Member Function Documentation

◆ addOperand()

void llvm::VPUser::addOperand ( VPValue Operand)
inline

◆ classof()

static bool llvm::VPUser::classof ( const VPValue V)
inlinestatic

Method to support type inquiry through isa, cast, and dyn_cast.

Definition at line 152 of file VPlanValue.h.

References llvm::VPValue::getVPValueID(), llvm::VPValue::VPInstructionSC, and llvm::VPValue::VPUserSC.

◆ getNumOperands()

unsigned llvm::VPUser::getNumOperands ( ) const
inline

Definition at line 162 of file VPlanValue.h.

References llvm::SmallVectorBase::size().

◆ getOperand()

VPValue* llvm::VPUser::getOperand ( unsigned  N) const
inline

Definition at line 163 of file VPlanValue.h.

References assert(), N, and llvm::SmallVectorBase::size().

◆ op_begin() [1/2]

operand_iterator llvm::VPUser::op_begin ( )
inline

Definition at line 175 of file VPlanValue.h.

References llvm::SmallVectorTemplateCommon< T >::begin().

◆ op_begin() [2/2]

const_operand_iterator llvm::VPUser::op_begin ( ) const
inline

Definition at line 176 of file VPlanValue.h.

References llvm::SmallVectorTemplateCommon< T >::begin().

◆ op_end() [1/2]

operand_iterator llvm::VPUser::op_end ( )
inline

Definition at line 177 of file VPlanValue.h.

References llvm::SmallVectorTemplateCommon< T >::end().

◆ op_end() [2/2]

const_operand_iterator llvm::VPUser::op_end ( ) const
inline

Definition at line 178 of file VPlanValue.h.

References llvm::SmallVectorTemplateCommon< T >::end().

◆ operands() [1/2]

operand_range llvm::VPUser::operands ( )
inline

Definition at line 179 of file VPlanValue.h.

◆ operands() [2/2]

const_operand_range llvm::VPUser::operands ( ) const
inline

Definition at line 180 of file VPlanValue.h.

◆ operator=()

VPUser& llvm::VPUser::operator= ( const VPUser )
delete

◆ setOperand()

void llvm::VPUser::setOperand ( unsigned  I,
VPValue New 
)
inline

Definition at line 168 of file VPlanValue.h.

References I.


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