diff options
author | Nikita Popov <npopov@redhat.com> | 2024-08-13 11:01:39 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-13 11:01:39 +0200 |
commit | 306b9c7b48ade28ed10e5926b6d9f5e3acab3968 (patch) | |
tree | ff64772a419e1c982f2d1ec2928ce8d286c1d77a /lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp | |
parent | 334a366ba792adb41ccf43457b65ac88aa37f178 (diff) | |
download | llvm-306b9c7b48ade28ed10e5926b6d9f5e3acab3968.zip llvm-306b9c7b48ade28ed10e5926b6d9f5e3acab3968.tar.gz llvm-306b9c7b48ade28ed10e5926b6d9f5e3acab3968.tar.bz2 |
[SCEV] Handle more add/addrec mixes in computeConstantDifference() (#101999)
computeConstantDifference() can currently look through addrecs with
identical steps, and then through adds with identical operands (apart
from constants).
However, it fails to handle minor variations, such as two nested add
recs, or an outer add with an inner addrec (rather than the other way
around).
This patch supports these cases by adding a loop over the
simplifications, limited to a small number of iterations. The motivation
is the same as in #101339, to make
computeConstantDifference() powerful enough to replace existing uses of
`dyn_cast<SCEVConstant>(getMinusSCEV())` with it. Though as the IR test
diff shows, other callers may also benefit.
Diffstat (limited to 'lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp')
0 files changed, 0 insertions, 0 deletions