aboutsummaryrefslogtreecommitdiff
path: root/libcpp
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2022-01-24 11:50:06 +0100
committerRichard Biener <rguenther@suse.de>2022-01-24 13:15:04 +0100
commitf1af8528d34418bc874ae9d993ee0dc3559972d2 (patch)
treeeb630f44b977759455a3e27d6a6d31b4fb9ab3ca /libcpp
parent2755037e40aa3549b38f6d080108e26fb5cb677b (diff)
downloadgcc-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