LLVM  8.0.1
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
llvm::VPValue Class Reference

#include "Transforms/Vectorize/VPlanValue.h"

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

Public Types

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

 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)
 

Protected Member Functions

 VPValue (const unsigned char SC, Value *UV=nullptr)
 
ValuegetUnderlyingValue ()
 Return the underlying Value attached to this VPValue. More...
 
void setUnderlyingValue (Value *Val)
 

Protected Attributes

ValueUnderlyingVal
 

Friends

class VPBuilder
 
class VPlanHCFGTransforms
 
class VPBasicBlock
 
class VPInterleavedAccessInfo
 

Detailed Description

Definition at line 39 of file VPlanValue.h.

Member Typedef Documentation

◆ const_user_iterator

Definition at line 97 of file VPlanValue.h.

◆ const_user_range

Definition at line 99 of file VPlanValue.h.

◆ user_iterator

Definition at line 96 of file VPlanValue.h.

◆ user_range

Definition at line 98 of file VPlanValue.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

An enumeration for keeping track of the concrete subclass of VPValue that are actually instantiated.

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

Enumerator
VPValueSC 
VPUserSC 
VPInstructionSC 

Definition at line 78 of file VPlanValue.h.

Constructor & Destructor Documentation

◆ VPValue() [1/3]

llvm::VPValue::VPValue ( const unsigned char  SC,
Value UV = nullptr 
)
inlineprotected

Definition at line 54 of file VPlanValue.h.

Referenced by VPValue().

◆ VPValue() [2/3]

llvm::VPValue::VPValue ( Value UV = nullptr)
inline

Definition at line 80 of file VPlanValue.h.

References operator=(), and VPValue().

◆ VPValue() [3/3]

llvm::VPValue::VPValue ( const VPValue )
delete

Member Function Documentation

◆ addUser()

void llvm::VPValue::addUser ( VPUser User)
inline

Definition at line 94 of file VPlanValue.h.

References llvm::SmallVectorTemplateBase< T >::push_back().

Referenced by llvm::VPUser::addOperand().

◆ getNumUsers()

unsigned llvm::VPValue::getNumUsers ( ) const
inline

Definition at line 93 of file VPlanValue.h.

References llvm::SmallVectorBase::size().

Referenced by hasMoreThanOneUniqueUser().

◆ getUnderlyingValue()

Value* llvm::VPValue::getUnderlyingValue ( )
inlineprotected

Return the underlying Value attached to this VPValue.

Definition at line 65 of file VPlanValue.h.

References UnderlyingVal.

Referenced by llvm::VPBasicBlock::execute(), and llvm::VPlanHCFGTransforms::VPInstructionsToVPRecipes().

◆ getVPValueID()

unsigned llvm::VPValue::getVPValueID ( ) 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 87 of file VPlanValue.h.

Referenced by llvm::VPUser::classof(), and llvm::VPInstruction::classof().

◆ hasMoreThanOneUniqueUser()

bool llvm::VPValue::hasMoreThanOneUniqueUser ( )
inline

Returns true if the value has more than one unique user.

Definition at line 111 of file VPlanValue.h.

References getNumUsers(), replaceAllUsesWith(), user_begin(), and user_end().

◆ operator=()

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

Referenced by llvm::VPUser::VPUser(), and VPValue().

◆ printAsOperand()

void llvm::VPValue::printAsOperand ( raw_ostream OS) const
inline

Definition at line 89 of file VPlanValue.h.

Referenced by llvm::VPlan::execute(), and llvm::operator<<().

◆ replaceAllUsesWith()

void VPValue::replaceAllUsesWith ( VPValue New)

◆ setUnderlyingValue()

void llvm::VPValue::setUnderlyingValue ( Value Val)
inlineprotected

Definition at line 68 of file VPlanValue.h.

References assert().

Referenced by llvm::VPBuilder::createNaryOp().

◆ user_begin() [1/2]

user_iterator llvm::VPValue::user_begin ( )
inline

Definition at line 101 of file VPlanValue.h.

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

Referenced by hasMoreThanOneUniqueUser(), and users().

◆ user_begin() [2/2]

const_user_iterator llvm::VPValue::user_begin ( ) const
inline

Definition at line 102 of file VPlanValue.h.

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

◆ user_end() [1/2]

user_iterator llvm::VPValue::user_end ( )
inline

Definition at line 103 of file VPlanValue.h.

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

Referenced by hasMoreThanOneUniqueUser(), and users().

◆ user_end() [2/2]

const_user_iterator llvm::VPValue::user_end ( ) const
inline

Definition at line 104 of file VPlanValue.h.

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

◆ users() [1/2]

user_range llvm::VPValue::users ( )
inline

Definition at line 105 of file VPlanValue.h.

References user_begin(), and user_end().

◆ users() [2/2]

const_user_range llvm::VPValue::users ( ) const
inline

Definition at line 106 of file VPlanValue.h.

References user_begin(), and user_end().

Friends And Related Function Documentation

◆ VPBasicBlock

friend class VPBasicBlock
friend

Definition at line 42 of file VPlanValue.h.

◆ VPBuilder

friend class VPBuilder
friend

Definition at line 40 of file VPlanValue.h.

◆ VPInterleavedAccessInfo

friend class VPInterleavedAccessInfo
friend

Definition at line 43 of file VPlanValue.h.

◆ VPlanHCFGTransforms

friend class VPlanHCFGTransforms
friend

Definition at line 41 of file VPlanValue.h.

Member Data Documentation

◆ UnderlyingVal

Value* llvm::VPValue::UnderlyingVal
protected

Definition at line 52 of file VPlanValue.h.

Referenced by getUnderlyingValue().


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