diff options
author | Philip Reames <preames@rivosinc.com> | 2023-11-07 07:49:39 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-07 07:49:39 -0800 |
commit | 551c280cfda6892deb4585b2b8bd1753914f1a36 (patch) | |
tree | 99b56988e0f72c30c6e51cbe4c0b728d36f14caa /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | 24060db3a93297ca77abef8feae301af2e9163b5 (diff) | |
download | llvm-551c280cfda6892deb4585b2b8bd1753914f1a36.zip llvm-551c280cfda6892deb4585b2b8bd1753914f1a36.tar.gz llvm-551c280cfda6892deb4585b2b8bd1753914f1a36.tar.bz2 |
[indvars] Always fallback to truncation if AddRec widening fails (#70967)
The current code structure results in cases where if a) we can't clone
the IV user (because it's not in our whitelist) or b) can't prove the
SCEV expressions are identical, we'd sometimes leave both the original
unwiddened IV and the partially widdened IV in code. Instead, just
truncate thw wide IV to the use - same as what we'd do if we couldn't
find an addrec to start with.
Noticed this while playing with changing how we produce addrecs. The
current structure results in a very tight interlock between SCEVs
internal capabilities and indvars code.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions