aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorPhilip Reames <preames@rivosinc.com>2024-07-31 14:18:20 -0700
committerGitHub <noreply@github.com>2024-07-31 14:18:20 -0700
commit7583c484c81218ab4c8c2fba2774cb518d8bbd43 (patch)
treec69535f64db3e134b4a8f1b4b61e56c64f553d1d /clang/lib/CodeGen/CodeGenModule.cpp
parent9effefbae8d96006a4dd29bb9ab8532fd408559d (diff)
downloadllvm-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