[llvm] [LV] Use vscale for tuning to improve branch weight estimates (PR #144733)

David Sherwood via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 18 09:03:20 PDT 2025


================
@@ -7330,9 +7330,11 @@ DenseMap<const SCEV *, Value *> LoopVectorizationPlanner::executePlan(
   VPlanTransforms::runPass(VPlanTransforms::unrollByUF, BestVPlan, BestUF,
                            OrigLoop->getHeader()->getContext());
   VPlanTransforms::runPass(VPlanTransforms::materializeBroadcasts, BestVPlan);
-  if (hasBranchWeightMD(*OrigLoop->getLoopLatch()->getTerminator()))
+  if (hasBranchWeightMD(*OrigLoop->getLoopLatch()->getTerminator())) {
+    std::optional<unsigned> VScale = CM.getVScaleForTuning();
----------------
david-arm wrote:

NOTE: I'm forced to create a temporary variable here because `runPass` takes values by reference.

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


More information about the llvm-commits mailing list