aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorLuke Lau <luke@igalia.com>2025-08-07 10:54:24 +0800
committerGitHub <noreply@github.com>2025-08-07 10:54:24 +0800
commitdf8da2ff8370fda479b5c118704af4f50e0d3536 (patch)
treed22fcb62c8fffbd6dc2fc5157eda45273556b953 /clang/lib/Frontend/CompilerInvocation.cpp
parenta196281896de208fca1dde315e377a46ec9a2e66 (diff)
downloadllvm-df8da2ff8370fda479b5c118704af4f50e0d3536.zip
llvm-df8da2ff8370fda479b5c118704af4f50e0d3536.tar.gz
llvm-df8da2ff8370fda479b5c118704af4f50e0d3536.tar.bz2
[VPlan] Support VPWidenPointerInductionRecipes with EVL tail folding (#152110)
Now that VPWidenPointerInductionRecipes are modelled in VPlan in #148274, we can support them in EVL tail folding. We need to replace their VFxUF operand with EVL as the increment is not guaranteed to always be VF on the penultimate iteration, and UF is always 1 with EVL tail folding. We also need to move the creation of the backedge value to the latch so that EVL dominates it. With this we will no longer fail to convert a VPlan to EVL tail folding, so adjust tryAddExplicitVectorLength to account for this. This brings us to 99.4% of all vector loops vectorized on SPEC CPU 2017 with tail folding vs no tail folding. The test in only-compute-cost-for-vplan-vfs.ll previously relied on widened pointer inductions with EVL tail folding to end up in a scenario with no vector VPlans, so this also replaces it with an unvectorizable fixed-order recurrence test from first-order-recurrence-multiply-recurrences.ll that also gets discarded.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions