Lines Matching defs:VPUser
13 /// VPValue VPUser VPDef
37 class VPUser;
56 SmallVector<VPUser *, 1> Users;
112 void addUser(VPUser &User) { Users.push_back(&User); }
115 void removeUser(VPUser &User) {
117 // is used twice by the same VPUser. Remove a single one.
123 typedef SmallVectorImpl<VPUser *>::iterator user_iterator;
124 typedef SmallVectorImpl<VPUser *>::const_iterator const_user_iterator;
153 /// by a pair of (VPUser, the use index).
156 llvm::function_ref<bool(VPUser &U, unsigned Idx)> ShouldReplace);
202 class VPUser {
221 VPUser(ArrayRef<VPValue *> Operands, VPUserID ID) : ID(ID) {
226 VPUser(std::initializer_list<VPValue *> Operands, VPUserID ID)
227 : VPUser(ArrayRef<VPValue *>(Operands), ID) {}
230 VPUser(iterator_range<IterT> Operands, VPUserID ID) : ID(ID) {
236 VPUser() = delete;
237 VPUser(const VPUser &) = delete;
238 VPUser &operator=(const VPUser &) = delete;
239 virtual ~VPUser() {
277 /// Returns true if the VPUser uses scalars of operand \p Op. Conservatively
285 /// Returns true if the VPUser only uses the first lane of operand \p Op.
293 /// Returns true if the VPUser only uses the first part of operand \p Op.