LLVM  8.0.0svn
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
 

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
 

Detailed Description

Definition at line 39 of file VPlanValue.h.

Member Typedef Documentation

◆ const_user_iterator

Definition at line 96 of file VPlanValue.h.

◆ const_user_range

Definition at line 98 of file VPlanValue.h.

◆ user_iterator

Definition at line 95 of file VPlanValue.h.

◆ user_range

Definition at line 97 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 77 of file VPlanValue.h.

Constructor & Destructor Documentation

◆ VPValue() [1/3]

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

Definition at line 53 of file VPlanValue.h.

Referenced by VPValue().

◆ VPValue() [2/3]

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

Definition at line 79 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

◆ getNumUsers()

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

Definition at line 92 of file VPlanValue.h.

References llvm::SmallVectorBase::size().

◆ getUnderlyingValue()

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

Return the underlying Value attached to this VPValue.

Definition at line 64 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 86 of file VPlanValue.h.

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

◆ 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 88 of file VPlanValue.h.

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

◆ setUnderlyingValue()

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

Definition at line 67 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 100 of file VPlanValue.h.

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

Referenced by users().

◆ user_begin() [2/2]

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

Definition at line 101 of file VPlanValue.h.

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

◆ user_end() [1/2]

user_iterator llvm::VPValue::user_end ( )
inline

Definition at line 102 of file VPlanValue.h.

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

Referenced by users().

◆ user_end() [2/2]

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

Definition at line 103 of file VPlanValue.h.

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

◆ users() [1/2]

user_range llvm::VPValue::users ( )
inline

Definition at line 104 of file VPlanValue.h.

References user_begin(), and user_end().

◆ users() [2/2]

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

Definition at line 105 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.

◆ 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 51 of file VPlanValue.h.

Referenced by getUnderlyingValue().


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