@@ -7002,7 +7002,8 @@ LoopVectorizationPlanner::planInVPlanNativePath(ElementCount UserVF) {
70027002 return VectorizationFactor::Disabled ();
70037003}
70047004
7005- void LoopVectorizationPlanner::plan (ElementCount UserVF, unsigned UserIC,
7005+ void LoopVectorizationPlanner::plan (
7006+ ElementCount UserVF, unsigned UserIC,
70067007 std::optional<ArrayRef<PointerDiffInfo>> RTChecks, bool &HasAliasMask) {
70077008 assert (OrigLoop->isInnermost () && " Inner loop expected." );
70087009 CM.collectValuesToIgnore ();
@@ -7012,8 +7013,6 @@ void LoopVectorizationPlanner::plan(ElementCount UserVF, unsigned UserIC,
70127013 if (!MaxFactors) // Cases that should not to be vectorized nor interleaved.
70137014 return ;
70147015
7015- // VPlan needs the aliasing pointers as Values and not SCEVs, so expand them
7016- // here and put them into a list.
70177016 ArrayRef<PointerDiffInfo> DiffChecks;
70187017 if (RTChecks.has_value () && useActiveLaneMask (CM.getTailFoldingStyle (true )))
70197018 DiffChecks = *RTChecks;
@@ -10000,11 +9999,13 @@ bool LoopVectorizePass::processLoop(Loop *L) {
100009999
1000110000 bool AddBranchWeights =
1000210001 hasBranchWeightMD (*L->getLoopLatch ()->getTerminator ());
10003- GeneratedRTChecks Checks (*PSE.getSE (), DT, LI, TTI,
10004- F-> getDataLayout (), AddBranchWeights);
10002+ GeneratedRTChecks Checks (*PSE.getSE (), DT, LI, TTI, F-> getDataLayout (),
10003+ AddBranchWeights);
1000510004
1000610005 // Plan how to best vectorize.
10007- LVP.plan (UserVF, UserIC, LVL.getLAI ()->getRuntimePointerChecking ()->getDiffChecks (), Checks.HasAliasMask );
10006+ LVP.plan (UserVF, UserIC,
10007+ LVL.getLAI ()->getRuntimePointerChecking ()->getDiffChecks (),
10008+ Checks.HasAliasMask );
1000810009 VectorizationFactor VF = LVP.computeBestVF ();
1000910010 if (Checks.HasAliasMask )
1001010011 LoopsAliasMasked++;
0 commit comments