class VPValue
Declaration
class VPValue { /* full declaration omitted */ };
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:44
Member Variables
- private const unsigned char SubclassID
- Subclass identifier (for isa/dyn_cast).
- private SmallVector<llvm::VPUser*, 1> Users
- protected llvm::Value* UnderlyingVal
- protected llvm::VPDef* Def
- Pointer to the VPDef that defines this VPValue. If it is nullptr, the VPValue is not defined by any recipe modeled in VPlan.
Method Overview
- public VPValue(llvm::Value * UV = nullptr, llvm::VPDef * Def = nullptr)
- public VPValue(const llvm::VPValue &)
- protected VPValue(const unsigned char SC, llvm::Value * UV = nullptr, llvm::VPDef * Def = nullptr)
- public void addUser(llvm::VPUser & User)
- public void dump() const
- public llvm::VPDef * getDef()
- public const llvm::VPDef * getDef() const
- public const llvm::Value * getLiveInIRValue() const
- public llvm::Value * getLiveInIRValue()
- public unsigned int getNumUsers() const
- public llvm::Value * getUnderlyingValue()
- public const llvm::Value * getUnderlyingValue() const
- public unsigned int getVPValueID() const
- public bool hasMoreThanOneUniqueUser()
- public void print(llvm::raw_ostream & OS, llvm::VPSlotTracker & Tracker) const
- public void printAsOperand(llvm::raw_ostream & OS, llvm::VPSlotTracker & Tracker) const
- public void removeUser(llvm::VPUser & User)
- public void replaceAllUsesWith(llvm::VPValue * New)
- protected void setUnderlyingValue(llvm::Value * Val)
- public llvm::VPValue::const_user_iterator user_begin() const
- public llvm::VPValue::user_iterator user_begin()
- public llvm::VPValue::const_user_iterator user_end() const
- public llvm::VPValue::user_iterator user_end()
- public llvm::VPValue::user_range users()
- public llvm::VPValue::const_user_range users() const
- public virtual ~VPValue()
Methods
¶VPValue(llvm::Value* UV = nullptr,
llvm::VPDef* Def = nullptr)
VPValue(llvm::Value* UV = nullptr,
llvm::VPDef* Def = nullptr)
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:115
Parameters
- llvm::Value* UV = nullptr
- llvm::VPDef* Def = nullptr
¶VPValue(const llvm::VPValue&)
VPValue(const llvm::VPValue&)
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:117
Parameters
- const llvm::VPValue&
¶VPValue(const unsigned char SC,
llvm::Value* UV = nullptr,
llvm::VPDef* Def = nullptr)
VPValue(const unsigned char SC,
llvm::Value* UV = nullptr,
llvm::VPDef* Def = nullptr)
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:67
Parameters
- const unsigned char SC
- llvm::Value* UV = nullptr
- llvm::VPDef* Def = nullptr
¶void addUser(llvm::VPUser& User)
void addUser(llvm::VPUser& User)
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:136
Parameters
- llvm::VPUser& User
¶void dump() const
void dump() const
Description
Dump the value to stderr (for debugging).
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:132
¶llvm::VPDef* getDef()
llvm::VPDef* getDef()
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:182
¶const llvm::VPDef* getDef() const
const llvm::VPDef* getDef() const
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:183
¶const llvm::Value* getLiveInIRValue() const
const llvm::Value* getLiveInIRValue() const
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:193
¶llvm::Value* getLiveInIRValue()
llvm::Value* getLiveInIRValue()
Description
Returns the underlying IR value, if this VPValue is defined outside the scope of VPlan. Returns nullptr if the VPValue is defined by a VPDef inside a VPlan.
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:188
¶unsigned int getNumUsers() const
unsigned int getNumUsers() const
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:135
¶llvm::Value* getUnderlyingValue()
llvm::Value* getUnderlyingValue()
Description
Return the underlying Value attached to this VPValue.
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:84
¶const llvm::Value* getUnderlyingValue() const
const llvm::Value* getUnderlyingValue() const
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:85
¶unsigned int getVPValueID() const
unsigned int getVPValueID() const
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:125
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.
¶bool hasMoreThanOneUniqueUser()
bool hasMoreThanOneUniqueUser()
Description
Returns true if the value has more than one unique user.
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:169
¶void print(llvm::raw_ostream& OS,
llvm::VPSlotTracker& Tracker) const
void print(llvm::raw_ostream& OS,
llvm::VPSlotTracker& Tracker) const
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:129
Parameters
- llvm::raw_ostream& OS
- llvm::VPSlotTracker& Tracker
¶void printAsOperand(
llvm::raw_ostream& OS,
llvm::VPSlotTracker& Tracker) const
void printAsOperand(
llvm::raw_ostream& OS,
llvm::VPSlotTracker& Tracker) const
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:128
Parameters
- llvm::raw_ostream& OS
- llvm::VPSlotTracker& Tracker
¶void removeUser(llvm::VPUser& User)
void removeUser(llvm::VPUser& User)
Description
Remove a single \p User from the list of users.
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:139
Parameters
- llvm::VPUser& User
¶void replaceAllUsesWith(llvm::VPValue* New)
void replaceAllUsesWith(llvm::VPValue* New)
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:180
Parameters
- llvm::VPValue* New
¶void setUnderlyingValue(llvm::Value* Val)
void setUnderlyingValue(llvm::Value* Val)
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:77
Parameters
- llvm::Value* Val
¶llvm::VPValue::const_user_iterator user_begin()
const
llvm::VPValue::const_user_iterator user_begin()
const
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:160
¶llvm::VPValue::user_iterator user_begin()
llvm::VPValue::user_iterator user_begin()
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:159
¶llvm::VPValue::const_user_iterator user_end()
const
llvm::VPValue::const_user_iterator user_end()
const
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:162
¶llvm::VPValue::user_iterator user_end()
llvm::VPValue::user_iterator user_end()
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:161
¶llvm::VPValue::user_range users()
llvm::VPValue::user_range users()
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:163
¶llvm::VPValue::const_user_range users() const
llvm::VPValue::const_user_range users() const
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:164
¶virtual ~VPValue()
virtual ~VPValue()
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:120