aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorPhilip Reames <listmail@philipreames.com>2021-03-09 11:44:43 -0800
committerPhilip Reames <listmail@philipreames.com>2021-03-09 11:52:08 -0800
commitd6394d86cadf20f09cba9c013bfccc277f565212 (patch)
treeaaf725396d45e08309a5f270f0516d29d0160dda /clang/lib/Frontend/CompilerInvocation.cpp
parent34637bbe27d3971025cba02dfd4e52a46024f3d7 (diff)
downloadllvm-d6394d86cadf20f09cba9c013bfccc277f565212.zip
llvm-d6394d86cadf20f09cba9c013bfccc277f565212.tar.gz
llvm-d6394d86cadf20f09cba9c013bfccc277f565212.tar.bz2
[cgp] improve robustness of uadd/usub transforms
LSR prefers to schedule iv increments just before the latch. The recent 80511565 broadened this to moving increments in the original IR. This pointed out a robustness problem with the CGP transform. When we have a use of an induction increment outside of the loop (we canonicalize away from this form, but it happens e.g. unanalyzeable loops) we'd avoid performing the uadd/usub transform. Interestingly, all of these involve moving the increment closer to it's operands, so there's no concern about dominating all uses. We can handle that case cheaply, resulting in a more robust transform.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions