Lines Matching defs:VPDef

13 /// VPValue   VPUser   VPDef
35 class VPDef;
46 friend class VPDef;
62 /// Pointer to the VPDef that defines this VPValue. If it is nullptr, the
64 VPDef *Def;
66 VPValue(const unsigned char SC, Value *UV = nullptr, VPDef *Def = nullptr);
90 VPValue(VPDef *Def, Value *UV = nullptr) : VPValue(VPVRecipeSC, UV, Def) {}
92 VPValue(Value *UV, VPDef *Def) : VPValue(VPValueSC, UV, Def) {}
170 /// scope of VPlan. Returns nullptr if the VPValue is defined by a VPDef
174 "VPValue is not a live-in; it is defined by a VPDef inside a VPlan");
179 "VPValue is not a live-in; it is defined by a VPDef inside a VPlan");
303 /// It allows recipes to define zero, one or multiple VPValues. A VPDef owns
306 /// from VPDef before VPValue.
307 class VPDef {
313 /// The VPValues defined by this VPDef.
316 /// Add \p V as a defined value by this VPDef.
319 "can only add VPValue already linked with this VPDef");
323 /// Remove \p V from the values defined by this VPDef. \p V must be a defined
324 /// value of this VPDef.
326 assert(V->Def == this && "can only remove VPValue linked with this VPDef");
381 VPDef(const unsigned char SC) : SubclassID(SC) {}
383 virtual ~VPDef() {
386 "all defined VPValues should point to the containing VPDef");
394 /// Returns the only VPValue defined by the VPDef. Can only be called for
407 /// Returns the VPValue with index \p I defined by the VPDef.
417 /// Returns an ArrayRef of the values defined by the VPDef.
419 /// Returns an ArrayRef of the values defined by the VPDef.
422 /// Returns the number of values defined by the VPDef.
431 /// Dump the VPDef to stderr (for debugging).
434 /// Each concrete VPDef prints itself.