aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorPhilip Reames <preames@rivosinc.com>2023-11-07 07:49:39 -0800
committerGitHub <noreply@github.com>2023-11-07 07:49:39 -0800
commit551c280cfda6892deb4585b2b8bd1753914f1a36 (patch)
tree99b56988e0f72c30c6e51cbe4c0b728d36f14caa /clang/lib/CodeGen/CodeGenModule.cpp
parent24060db3a93297ca77abef8feae301af2e9163b5 (diff)
downloadllvm-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