diff options
author | Philip Reames <preames@rivosinc.com> | 2024-07-31 14:18:20 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-31 14:18:20 -0700 |
commit | 7583c484c81218ab4c8c2fba2774cb518d8bbd43 (patch) | |
tree | c69535f64db3e134b4a8f1b4b61e56c64f553d1d /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | 9effefbae8d96006a4dd29bb9ab8532fd408559d (diff) | |
download | llvm-7583c484c81218ab4c8c2fba2774cb518d8bbd43.zip llvm-7583c484c81218ab4c8c2fba2774cb518d8bbd43.tar.gz llvm-7583c484c81218ab4c8c2fba2774cb518d8bbd43.tar.bz2 |
[SCEV] Use power of two facts involving vscale when inferring wrap flags (#101380)
SCEV has logic for inferring wrap flags on AddRecs which are known to
control an exit based on whether the step is a power of two. This logic
only considered constants, and thus did not trigger for steps such as (4
x vscale) which are common in scalably vectorized loops.
The net effect is that we were very sensative to the preservation of
nsw/nuw flags on such IVs, and could not infer trip counts if they got
lost for any reason.
---------
Co-authored-by: Nikita Popov <github@npopov.com>
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions