diff options
| author | Aleksandr Popov <a.popov.tmb@gmail.com> | 2023-07-12 10:25:48 +0200 |
|---|---|---|
| committer | Aleksandr Popov <a.popov.tmb@gmail.com> | 2023-07-12 11:19:25 +0200 |
| commit | cdcefd2f9a2d08e774fc7dcf631361a03bf6b810 (patch) | |
| tree | e2ab72b0c28233d98f4659b813dbb7a106226a9f /llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp | |
| parent | 367b1f28dbcfda5b7909f4d271bcace063398143 (diff) | |
| download | llvm-cdcefd2f9a2d08e774fc7dcf631361a03bf6b810.zip llvm-cdcefd2f9a2d08e774fc7dcf631361a03bf6b810.tar.gz llvm-cdcefd2f9a2d08e774fc7dcf631361a03bf6b810.tar.bz2 | |
[IRCE] Implement runtime overflow check for computed range's end
Here is activated check elimination which was parsed previously in
https://reviews.llvm.org/D154069
* Added runtime check that computed range's boundary doesn't overflow in
terms of range type.
* From the statement INT_MIN <= END <= INT_MAX is inferred check:
isNonNegative(INT_MAX - END) * isNonNegative(END - INT_MIN).
* If overflow happens, check will return 0 and the safe interval will be
empty.
Reviewed By: skatkov
Differential Revision: https://reviews.llvm.org/D154188
Diffstat (limited to 'llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp')
0 files changed, 0 insertions, 0 deletions
