[PATCH] D154644: [LV] Split off code to create initial VPlan (NFC).

Ayal Zaks via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 4 02:52:55 PDT 2023


Ayal accepted this revision.
Ayal added a comment.
This revision is now accepted and ready to land.

This looks good to me, thanks! Adding a couple of final nits.



================
Comment at: llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:9080
 
-  VPlanTransforms::removeRedundantCanonicalIVs(*Plan);
-  VPlanTransforms::removeRedundantInductionCasts(*Plan);
-
-  VPlanTransforms::optimizeInductions(*Plan, *PSE.getSE());
-  VPlanTransforms::removeDeadRecipes(*Plan);
-
-  VPlanTransforms::createAndOptimizeReplicateRegions(*Plan);
-
-  VPlanTransforms::removeRedundantExpandSCEVRecipes(*Plan);
-  VPlanTransforms::mergeBlocksIntoPredecessors(*Plan);
-
-  assert(VPlanVerifier::verifyPlanIsValid(*Plan) && "VPlan is invalid");
-  return std::move(Plan);
+  return Plan;
 }
----------------
nit: is replacing `return std::move(Plan)` here with `return Plan` possible independent of all other changes?


================
Comment at: llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp:416
     // chain and is provided in reverse order, ending with the cast that uses
     // the IV phi. Search for the recipe of the last cast in the chain and
     // replace it with the original IV. Note that only the final cast is
----------------
Note: this search works around setting `FindMyCast` directly by retrieving it from `Value2VPValue[IRCast]`, because the latter mapping should be avoided at this time. Perhaps `Casts` should be converted into `CastRecipes` and recorded in `IV` recipe after the latter is built and before `Value2VPValue` is abandoned.


================
Comment at: llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp:792
+  VPlanTransforms::removeRedundantExpandSCEVRecipes(Plan);
+  VPlanTransforms::mergeBlocksIntoPredecessors(Plan);
+}
----------------
nit: do the local calls above need the `VPlanTransforms::` prefix?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D154644/new/

https://reviews.llvm.org/D154644



More information about the llvm-commits mailing list