diff options
author | Aleksandr Popov <42888396+aleks-tmb@users.noreply.github.com> | 2024-03-13 18:30:03 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-13 18:30:03 +0100 |
commit | cd20600767409b183a6d213d56f85f8041a21487 (patch) | |
tree | d2302afa3021d7017b525f45b78ecf17e34b9cb8 /clang/lib/Basic/Module.cpp | |
parent | 13ccaf9b9d4400bb128b35ff4ac733e4afc3ad1c (diff) | |
download | llvm-cd20600767409b183a6d213d56f85f8041a21487.zip llvm-cd20600767409b183a6d213d56f85f8041a21487.tar.gz llvm-cd20600767409b183a6d213d56f85f8041a21487.tar.bz2 |
[LoopConstrainer] Apply loop gurads to check that loop bounds are safe (#71531)
Loop guards that apply to loop SCEV bounds allow IRCE for cases with
compound loop bounds such as:
if (K > 0 && M > 0)
for (i = 0; i < min(K, M); i++) {...}
if (K > 0 && M > 0)
for (i = min(K, M); i >= 0; i--) {...}
Otherwise SCEV couldn't prove that loops have safe bounds in these
cases.
Co-authored-by: Aleksander Popov <apopov@azul.com>
Diffstat (limited to 'clang/lib/Basic/Module.cpp')
0 files changed, 0 insertions, 0 deletions