Lines Matching defs:VPDef
13 /// VPValue VPUser VPDef
35 class VPDef;
48 friend class VPDef;
67 /// Pointer to the VPDef that defines this VPValue. If it is nullptr, the
69 VPDef *Def;
71 VPValue(const unsigned char SC, Value *UV = nullptr, VPDef *Def = nullptr);
76 VPValue(VPDef *Def, Value *UV = nullptr) : VPValue(VPVRecipeSC, UV, Def) {}
78 VPValue(Value *UV, VPDef *Def) : VPValue(VPValueSC, UV, Def) {}
176 /// scope of VPlan. Returns nullptr if the VPValue is defined by a VPDef
180 "VPValue is not a live-in; it is defined by a VPDef inside a VPlan");
185 "VPValue is not a live-in; it is defined by a VPDef inside a VPlan");
294 /// It allows recipes to define zero, one or multiple VPValues. A VPDef owns
297 /// from VPDef before VPValue.
298 class VPDef {
304 /// The VPValues defined by this VPDef.
307 /// Add \p V as a defined value by this VPDef.
310 "can only add VPValue already linked with this VPDef");
314 /// Remove \p V from the values defined by this VPDef. \p V must be a defined
315 /// value of this VPDef.
317 assert(V->Def == this && "can only remove VPValue linked with this VPDef");
379 VPDef(const unsigned char SC) : SubclassID(SC) {}
381 virtual ~VPDef() {
384 "all defined VPValues should point to the containing VPDef");
392 /// Returns the only VPValue defined by the VPDef. Can only be called for
405 /// Returns the VPValue with index \p I defined by the VPDef.
415 /// Returns an ArrayRef of the values defined by the VPDef.
417 /// Returns an ArrayRef of the values defined by the VPDef.
420 /// Returns the number of values defined by the VPDef.
429 /// Dump the VPDef to stderr (for debugging).
432 /// Each concrete VPDef prints itself.