@@ -3301,19 +3301,23 @@ class VPDerivedIVRecipe : public VPSingleDefRecipe {
33013301 // / for floating point inductions.
33023302 const FPMathOperator *FPBinOp;
33033303
3304+ // / Name to use for the generated IR instruction for the derived IV.
3305+ std::string Name;
3306+
33043307public:
33053308 VPDerivedIVRecipe (const InductionDescriptor &IndDesc, VPValue *Start,
3306- VPCanonicalIVPHIRecipe *CanonicalIV, VPValue *Step)
3309+ VPCanonicalIVPHIRecipe *CanonicalIV, VPValue *Step,
3310+ const Twine &Name = " " )
33073311 : VPDerivedIVRecipe(
33083312 IndDesc.getKind(),
33093313 dyn_cast_or_null<FPMathOperator>(IndDesc.getInductionBinOp()),
3310- Start, CanonicalIV, Step) {}
3314+ Start, CanonicalIV, Step, Name ) {}
33113315
33123316 VPDerivedIVRecipe (InductionDescriptor::InductionKind Kind,
33133317 const FPMathOperator *FPBinOp, VPValue *Start, VPValue *IV,
3314- VPValue *Step)
3318+ VPValue *Step, const Twine &Name = " " )
33153319 : VPSingleDefRecipe(VPDef::VPDerivedIVSC, {Start, IV, Step}), Kind(Kind),
3316- FPBinOp (FPBinOp) {}
3320+ FPBinOp (FPBinOp), Name(Name.str()) {}
33173321
33183322 ~VPDerivedIVRecipe () override = default ;
33193323
0 commit comments