[llvm] [LoopVectorize] In LoopVectorize.cpp start using getSymbolicMaxBackedgeTakenCount (PR #108833)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 30 13:58:35 PDT 2024
================
@@ -4054,7 +4054,13 @@ LoopVectorizationCostModel::computeMaxVF(ElementCount UserVF, unsigned UserIC) {
unsigned MaxVFtimesIC =
UserIC ? *MaxPowerOf2RuntimeVF * UserIC : *MaxPowerOf2RuntimeVF;
ScalarEvolution *SE = PSE.getSE();
- const SCEV *BackedgeTakenCount = PSE.getBackedgeTakenCount();
+ // Currently only loops with countable exits are vectorized, but calling
+ // getSymbolicMaxBackedgeTakenCount allows enablement work for loops with
+ // uncountable exits whilst also ensuring the symbolic maximum and known
+ // back-edge taken count remain identical for loops with countable exits.
+ const SCEV *BackedgeTakenCount = PSE.getSymbolicMaxBackedgeTakenCount();
+ assert(!isa<SCEVCouldNotCompute>(BackedgeTakenCount) &&
----------------
fhahn wrote:
My original suggestion was along the lines of
```suggestion
assert(BackedgeTakenCount == PSE.getBackedgeTakenCount() &&
```
https://github.com/llvm/llvm-project/pull/108833
More information about the llvm-commits
mailing list