diff options
author | Richard Biener <rguenther@suse.de> | 2022-01-24 11:50:06 +0100 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2022-01-24 13:15:04 +0100 |
commit | f1af8528d34418bc874ae9d993ee0dc3559972d2 (patch) | |
tree | eb630f44b977759455a3e27d6a6d31b4fb9ab3ca /libcpp | |
parent | 2755037e40aa3549b38f6d080108e26fb5cb677b (diff) | |
download | gcc-f1af8528d34418bc874ae9d993ee0dc3559972d2.zip gcc-f1af8528d34418bc874ae9d993ee0dc3559972d2.tar.gz gcc-f1af8528d34418bc874ae9d993ee0dc3559972d2.tar.bz2 |
tree-optimization/102131 - fix niter analysis wrt overflow
This fixes the overflow issues seen with analyzing
BASE0 + STEP0 cmp BASE1 + STEP1 as BASE0 + STEP0 - STEP1 cmp BASE1
by following the logic we have when simplifying comparisons.
2022-01-24 Richard Biener <rguenther@suse.de>
Jiufu Guo <guojiufu@linux.ibm.com>
PR tree-optimization/100740
PR tree-optimization/101508
PR tree-optimization/101972
PR tree-optimization/102131
* tree-ssa-loop-niter.cc (number_of_iterations_cond): Properly
constrain BASE0 + STEP0 cmp BASE1 + STEP1 to
BASE0 + STEP0 - STEP1 cmp BASE1 transform.
* gcc.dg/torture/pr100740.c: New testcase.
* gcc.dg/torture/pr101508.c: Likewise.
* gcc.dg/torture/pr101972.c: Likewise.
* gcc.dg/torture/pr102131-1.c: Likewise.
* gcc.dg/torture/pr102131-2.c: Likewise.
* gcc.dg/torture/pr102131-3.c: Likewise.
* gcc.dg/torture/pr102131-4.c: Likewise.
Diffstat (limited to 'libcpp')
0 files changed, 0 insertions, 0 deletions