[llvm] [VPlan] Hoist loads with invariant addresses using noalias metadata. (PR #166247)

via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 22 05:50:14 PST 2025


================
@@ -2401,6 +2406,7 @@ void VPlanTransforms::optimize(VPlan &Plan) {
   runPass(removeDeadRecipes, Plan);
 
   runPass(createAndOptimizeReplicateRegions, Plan);
+  runPass(hoistInvariantLoads, Plan);
   runPass(mergeBlocksIntoPredecessors, Plan);
----------------
ayalz wrote:

Is this positioning intentional, or would it be more reasonable to swap
```suggestion
  runPass(mergeBlocksIntoPredecessors, Plan);
  runPass(hoistInvariantLoads, Plan);
```
given that hoistInvariantLoads is closely related to licm, while merging adjacent blocks is related to creation of replicate regions - which actually also calls `mergeBlocksIntoPredecessors()`(?)

https://github.com/llvm/llvm-project/pull/166247


More information about the llvm-commits mailing list