[llvm] [LLVM][LV] Improve UF calculation for vscale based scalar loops. (PR #146102)
Paul Walker via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 23 09:47:06 PDT 2025
================
@@ -4813,16 +4839,19 @@ LoopVectorizationCostModel::selectInterleaveCount(VPlan &Plan, ElementCount VF,
MaxInterleaveCount = ForceTargetMaxVectorInterleaveFactor;
}
- unsigned EstimatedVF = getEstimatedRuntimeVF(VF, VScaleForTuning);
-
// Try to get the exact trip count, or an estimate based on profiling data or
- // ConstantMax from PSE, failing that.
- if (auto BestKnownTC = getSmallBestKnownTC(PSE, TheLoop)) {
+ // ConstantMax from PSE, failing that. For fixed length VFs treat a scalable
+ // trip count as if unknown.
+ if (auto BestKnownTC = getSmallBestKnownTC(PSE, TheLoop);
+ BestKnownTC && (BestKnownTC->isFixed() || VF.isScalable())) {
+ // Re-evaluate trip counts and VFs to be in the same numerical space.
+ unsigned AvailableTC = getEstimatedRuntimeVF(*BestKnownTC, VScaleForTuning);
----------------
paulwalker-arm wrote:
I've renamed the function `estimateElementCount` to better represent the action.
https://github.com/llvm/llvm-project/pull/146102
More information about the llvm-commits
mailing list