diff options
author | Nikita Popov <npopov@redhat.com> | 2024-05-23 07:54:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-23 07:54:08 +0200 |
commit | ca478bc6cc0e5a5ca6c973772d39404571255a84 (patch) | |
tree | b4e0f17eef685112fd41789c77499815ffbe0645 /lldb/source/Plugins/ScriptInterpreter/Python | |
parent | 5ec91b392d7ea7991052892c79e0b315ab54f3c4 (diff) | |
download | llvm-ca478bc6cc0e5a5ca6c973772d39404571255a84.zip llvm-ca478bc6cc0e5a5ca6c973772d39404571255a84.tar.gz llvm-ca478bc6cc0e5a5ca6c973772d39404571255a84.tar.bz2 |
[SCEV] Support ule/sle exit counts via widening (#92206)
If we have an exit condition of the form IV <= Limit, we will first try
to convert it into IV < Limit+1 or IV-1 < Limit based on range info (in
icmp simplification). If that fails, we try to convert it to IV < Limit
+ 1 based on controlling exits in non-infinite loops.
However, if all else fails, we can still determine the exit count by
rewriting to ext(IV) < ext(Limit) + 1, where the zero/sign extension
ensures that the addition does not overflow.
Proof: https://alive2.llvm.org/ce/z/iR-iYd
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python')
0 files changed, 0 insertions, 0 deletions