@@ -9324,10 +9324,8 @@ static void addScalarResumePhis(VPRecipeBuilder &Builder, VPlan &Plan,
93249324 VPBuilder ScalarPHBuilder (ScalarPH);
93259325 VPValue *OneVPV = Plan.getOrAddLiveIn (
93269326 ConstantInt::get (Plan.getCanonicalIV ()->getScalarType (), 1 ));
9327- for (VPRecipeBase &ScalarPhiR : *Plan.getScalarHeader ()) {
9328- auto *ScalarPhiIRI = dyn_cast<VPIRPhi>(&ScalarPhiR);
9329- if (!ScalarPhiIRI)
9330- break ;
9327+ for (VPRecipeBase &ScalarPhiR : Plan.getScalarHeader ()->phis ()) {
9328+ auto *ScalarPhiIRI = cast<VPIRPhi>(&ScalarPhiR);
93319329
93329330 // TODO: Extract final value from induction recipe initially, optimize to
93339331 // pre-computed end value together in optimizeInductionExitUsers.
@@ -9381,10 +9379,8 @@ collectUsersInExitBlocks(Loop *OrigLoop, VPRecipeBuilder &Builder,
93819379 if (ExitVPBB->getNumPredecessors () == 0 )
93829380 continue ;
93839381
9384- for (VPRecipeBase &R : *ExitVPBB) {
9385- auto *ExitIRI = dyn_cast<VPIRPhi>(&R);
9386- if (!ExitIRI)
9387- break ;
9382+ for (VPRecipeBase &R : ExitVPBB->phis ()) {
9383+ auto *ExitIRI = cast<VPIRPhi>(&R);
93889384 if (ExitVPBB->getSinglePredecessor () != Plan.getMiddleBlock ()) {
93899385 assert (ExitIRI->getNumOperands () ==
93909386 ExitVPBB->getPredecessors ().size () &&
@@ -10579,10 +10575,9 @@ static void preparePlanForMainVectorLoop(VPlan &MainPlan, VPlan &EpiPlan) {
1057910575 EpiWidenedPhis.insert (
1058010576 cast<PHINode>(R.getVPSingleValue ()->getUnderlyingValue ()));
1058110577 }
10582- for (VPRecipeBase &R : make_early_inc_range (*MainPlan.getScalarHeader ())) {
10583- auto *VPIRInst = dyn_cast<VPIRPhi>(&R);
10584- if (!VPIRInst)
10585- break ;
10578+ for (VPRecipeBase &R :
10579+ make_early_inc_range (MainPlan.getScalarHeader ()->phis ())) {
10580+ auto *VPIRInst = cast<VPIRPhi>(&R);
1058610581 if (EpiWidenedPhis.contains (&VPIRInst->getIRPhi ()))
1058710582 continue ;
1058810583 // There is no corresponding wide induction in the epilogue plan that would
0 commit comments