[all-commits] [llvm/llvm-project] 7583c4: [SCEV] Use power of two facts involving vscale whe...
Philip Reames via All-commits
all-commits at lists.llvm.org
Wed Jul 31 14:18:43 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 7583c484c81218ab4c8c2fba2774cb518d8bbd43
https://github.com/llvm/llvm-project/commit/7583c484c81218ab4c8c2fba2774cb518d8bbd43
Author: Philip Reames <preames at rivosinc.com>
Date: 2024-07-31 (Wed, 31 Jul 2024)
Changed paths:
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/test/Analysis/ScalarEvolution/trip-count-scalable-stride.ll
Log Message:
-----------
[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 at npopov.com>
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list