Lines Matching refs:Def

79 VPValue::VPValue(const unsigned char SC, Value *UV, VPDef *Def)  in VPValue()  argument
80 : SubclassID(SC), UnderlyingVal(UV), Def(Def) { in VPValue()
81 if (Def) in VPValue()
82 Def->addDefinedValue(this); in VPValue()
87 if (Def) in ~VPValue()
88 Def->removeDefinedValue(this); in ~VPValue()
93 if (const VPRecipeBase *R = dyn_cast_or_null<VPRecipeBase>(Def)) in print()
100 const VPRecipeBase *Instr = dyn_cast_or_null<VPRecipeBase>(this->Def); in dump()
117 return cast_or_null<VPRecipeBase>(Def); in getDefiningRecipe()
121 return cast_or_null<VPRecipeBase>(Def); in getDefiningRecipe()
215 Value *VPTransformState::get(VPValue *Def, const VPIteration &Instance) { in get() argument
216 if (Def->isLiveIn()) in get()
217 return Def->getLiveInIRValue(); in get()
219 if (hasScalarValue(Def, Instance)) { in get()
221 .PerPartScalars[Def][Instance.Part][Instance.Lane.mapToCacheIndex(VF)]; in get()
224 assert(hasVectorValue(Def, Instance.Part)); in get()
225 auto *VecPart = Data.PerPartOutput[Def][Instance.Part]; in get()
237 Value *VPTransformState::get(VPValue *Def, unsigned Part) { in get() argument
239 if (hasVectorValue(Def, Part)) in get()
240 return Data.PerPartOutput[Def][Part]; in get()
242 auto GetBroadcastInstrs = [this, Def](Value *V) { in get()
243 bool SafeToHoist = Def->isDefinedOutsideVectorRegions(); in get()
262 if (!hasScalarValue(Def, {Part, 0})) { in get()
263 assert(Def->isLiveIn() && "expected a live-in"); in get()
265 return get(Def, 0); in get()
266 Value *IRV = Def->getLiveInIRValue(); in get()
268 set(Def, B, Part); in get()
272 Value *ScalarValue = get(Def, {Part, 0}); in get()
276 set(Def, ScalarValue, Part); in get()
280 bool IsUniform = vputils::isUniformAfterVectorization(Def); in get()
284 if (!hasScalarValue(Def, {Part, LastLane})) { in get()
287 assert((isa<VPWidenIntOrFpInductionRecipe>(Def->getDefiningRecipe()) || in get()
288 isa<VPScalarIVStepsRecipe>(Def->getDefiningRecipe()) || in get()
289 isa<VPExpandSCEVRecipe>(Def->getDefiningRecipe())) && in get()
295 auto *LastInst = cast<Instruction>(get(Def, {Part, LastLane})); in get()
315 set(Def, VectorValue, Part); in get()
320 set(Def, Undef, Part); in get()
322 packScalarIntoVectorValue(Def, {Part, Lane}); in get()
323 VectorValue = get(Def, Part); in get()
383 void VPTransformState::packScalarIntoVectorValue(VPValue *Def, in packScalarIntoVectorValue() argument
385 Value *ScalarInst = get(Def, Instance); in packScalarIntoVectorValue()
386 Value *VectorValue = get(Def, Instance.Part); in packScalarIntoVectorValue()
389 set(Def, VectorValue, Instance.Part); in packScalarIntoVectorValue()
503 for (auto *Def : R.definedValues()) in dropAllReferences() local
504 Def->replaceAllUsesWith(NewValue); in dropAllReferences()
1266 for (VPValue *Def : Recipe.definedValues()) in assignSlots()
1267 assignSlot(Def); in assignSlots()
1270 bool vputils::onlyFirstLaneUsed(VPValue *Def) { in onlyFirstLaneUsed() argument
1271 return all_of(Def->users(), in onlyFirstLaneUsed()
1272 [Def](VPUser *U) { return U->onlyFirstLaneUsed(Def); }); in onlyFirstLaneUsed()
1275 bool vputils::onlyFirstPartUsed(VPValue *Def) { in onlyFirstPartUsed() argument
1276 return all_of(Def->users(), in onlyFirstPartUsed()
1277 [Def](VPUser *U) { return U->onlyFirstPartUsed(Def); }); in onlyFirstPartUsed()