class VPUser
Declaration
class VPUser { /* full declaration omitted */ };
Description
This class augments VPValue with operands which provide the inverse def-use edges from VPValue's users to their defs.
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:207
Member Variables
- private SmallVector<llvm::VPValue*, 2> Operands
- private llvm::VPUser::VPUserID ID
Method Overview
- protected VPUser(ArrayRef<llvm::VPValue *> Operands, llvm::VPUser::VPUserID ID)
- protected template <typename IterT> VPUser(iterator_range<IterT> Operands, llvm::VPUser::VPUserID ID)
- public VPUser(const llvm::VPUser &)
- protected VPUser(std::initializer_list<VPValue *> Operands, llvm::VPUser::VPUserID ID)
- public VPUser()
- public void addOperand(llvm::VPValue * Operand)
- public static inline bool classof(const llvm::VPDef * Recipe)
- public unsigned int getNumOperands() const
- public inline llvm::VPValue * getOperand(unsigned int N) const
- public llvm::VPUser::VPUserID getVPUserID() const
- public virtual bool onlyFirstLaneUsed(const llvm::VPValue * Op) const
- public llvm::VPUser::operand_iterator op_begin()
- public llvm::VPUser::const_operand_iterator op_begin() const
- public llvm::VPUser::operand_iterator op_end()
- public llvm::VPUser::const_operand_iterator op_end() const
- public llvm::VPUser::operand_range operands()
- public llvm::VPUser::const_operand_range operands() const
- protected void printOperands(llvm::raw_ostream & O, llvm::VPSlotTracker & SlotTracker) const
- public void removeLastOperand()
- public void setOperand(unsigned int I, llvm::VPValue * New)
- public virtual bool usesScalars(const llvm::VPValue * Op) const
- public virtual ~VPUser()
Methods
¶VPUser(ArrayRef<llvm::VPValue*> Operands,
llvm::VPUser::VPUserID ID)
VPUser(ArrayRef<llvm::VPValue*> Operands,
llvm::VPUser::VPUserID ID)
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:226
Parameters
- ArrayRef<llvm::VPValue*> Operands
- llvm::VPUser::VPUserID ID
¶template <typename IterT>
VPUser(iterator_range<IterT> Operands,
llvm::VPUser::VPUserID ID)
template <typename IterT>
VPUser(iterator_range<IterT> Operands,
llvm::VPUser::VPUserID ID)
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:235
Templates
- IterT
Parameters
- iterator_range<IterT> Operands
- llvm::VPUser::VPUserID ID
¶VPUser(const llvm::VPUser&)
VPUser(const llvm::VPUser&)
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:242
Parameters
- const llvm::VPUser&
¶VPUser(std::initializer_list<VPValue*> Operands,
llvm::VPUser::VPUserID ID)
VPUser(std::initializer_list<VPValue*> Operands,
llvm::VPUser::VPUserID ID)
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:231
Parameters
- std::initializer_list<VPValue*> Operands
- llvm::VPUser::VPUserID ID
¶VPUser()
VPUser()
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:241
¶void addOperand(llvm::VPValue* Operand)
void addOperand(llvm::VPValue* Operand)
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:251
Parameters
- llvm::VPValue* Operand
¶static inline bool classof(
const llvm::VPDef* Recipe)
static inline bool classof(
const llvm::VPDef* Recipe)
Description
Method to support type inquiry through isa, cast, and dyn_cast.
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:288
Parameters
- const llvm::VPDef* Recipe
¶unsigned int getNumOperands() const
unsigned int getNumOperands() const
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:256
¶inline llvm::VPValue* getOperand(
unsigned int N) const
inline llvm::VPValue* getOperand(
unsigned int N) const
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:257
Parameters
- unsigned int N
¶llvm::VPUser::VPUserID getVPUserID() const
llvm::VPUser::VPUserID getVPUserID() const
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:249
¶virtual bool onlyFirstLaneUsed(
const llvm::VPValue* Op) const
virtual bool onlyFirstLaneUsed(
const llvm::VPValue* Op) const
Description
Returns true if the VPUser only uses the first lane of operand \p Op. Conservatively returns false.
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:300
Parameters
- const llvm::VPValue* Op
¶llvm::VPUser::operand_iterator op_begin()
llvm::VPUser::operand_iterator op_begin()
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:278
¶llvm::VPUser::const_operand_iterator op_begin()
const
llvm::VPUser::const_operand_iterator op_begin()
const
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:279
¶llvm::VPUser::operand_iterator op_end()
llvm::VPUser::operand_iterator op_end()
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:280
¶llvm::VPUser::const_operand_iterator op_end()
const
llvm::VPUser::const_operand_iterator op_end()
const
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:281
¶llvm::VPUser::operand_range operands()
llvm::VPUser::operand_range operands()
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:282
¶llvm::VPUser::const_operand_range operands() const
llvm::VPUser::const_operand_range operands() const
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:283
¶void printOperands(
llvm::raw_ostream& O,
llvm::VPSlotTracker& SlotTracker) const
void printOperands(
llvm::raw_ostream& O,
llvm::VPSlotTracker& SlotTracker) const
Description
Print the operands to \p O.
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:223
Parameters
- llvm::raw_ostream& O
- llvm::VPSlotTracker& SlotTracker
¶void removeLastOperand()
void removeLastOperand()
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:268
¶void setOperand(unsigned int I,
llvm::VPValue* New)
void setOperand(unsigned int I,
llvm::VPValue* New)
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:262
Parameters
- unsigned int I
- llvm::VPValue* New
¶virtual bool usesScalars(
const llvm::VPValue* Op) const
virtual bool usesScalars(
const llvm::VPValue* Op) const
Description
Returns true if the VPUser uses scalars of operand \p Op. Conservatively returns if only first (scalar) lane is used, as default.
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:292
Parameters
- const llvm::VPValue* Op
¶virtual ~VPUser()
virtual ~VPUser()
Declared at: llvm/lib/Transforms/Vectorize/VPlanValue.h:244