diff options
author | David Sherwood <david.sherwood@arm.com> | 2022-06-21 14:07:49 +0100 |
---|---|---|
committer | David Sherwood <david.sherwood@arm.com> | 2022-07-12 14:53:20 +0100 |
commit | 6b694d600aeaaf30780e48cac0b784b8bc755b56 (patch) | |
tree | 874d56cf2bc8d68fdfb211a9ba46e358574ddf06 /clang/lib/CodeGen/CodeGenFunction.cpp | |
parent | ded62411f730278016274361e5ce4e5234cc2957 (diff) | |
download | llvm-6b694d600aeaaf30780e48cac0b784b8bc755b56.zip llvm-6b694d600aeaaf30780e48cac0b784b8bc755b56.tar.gz llvm-6b694d600aeaaf30780e48cac0b784b8bc755b56.tar.bz2 |
[LoopVectorize] Change PredicatedBBsAfterVectorization to be per VF
When calculating the cost of Instruction::Br in getInstructionCost
we query PredicatedBBsAfterVectorization to see if there is a
scalar predicated block. However, this meant that the decisions
being made for a given fixed-width VF were affecting the cost for a
scalable VF. As a result we were returning InstructionCost::Invalid
pointlessly for a scalable VF that should have a low cost. I
encountered this for some loops when enabling tail-folding for
scalable VFs.
Test added here:
Transforms/LoopVectorize/AArch64/sve-tail-folding-cost.ll
Differential Revision: https://reviews.llvm.org/D128272
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
0 files changed, 0 insertions, 0 deletions