]> gcc.gnu.org Git - gcc.git/commit
tree-optimization/102131 - fix niter analysis wrt overflow
authorRichard Biener <rguenther@suse.de>
Mon, 24 Jan 2022 10:50:06 +0000 (11:50 +0100)
committerRichard Biener <rguenther@suse.de>
Mon, 24 Jan 2022 12:15:04 +0000 (13:15 +0100)
commitf1af8528d34418bc874ae9d993ee0dc3559972d2
treeeb630f44b977759455a3e27d6a6d31b4fb9ab3ca
parent2755037e40aa3549b38f6d080108e26fb5cb677b
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.
gcc/testsuite/gcc.dg/torture/pr100740.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/torture/pr101508.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/torture/pr101972.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/torture/pr102131-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/torture/pr102131-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/torture/pr102131-3.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/torture/pr102131-4.c [new file with mode: 0644]
gcc/tree-ssa-loop-niter.cc
This page took 0.065452 seconds and 5 git commands to generate.