aboutsummaryrefslogtreecommitdiff
path: root/gcc/builtins.cc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2022-01-25 11:55:28 +0100
committerRichard Biener <rguenther@suse.de>2022-01-25 12:22:30 +0100
commit2e211a02290f3b3533b56c593fc7b95edb8593b0 (patch)
tree10fa414be8c6b4859f546c81295cae36bca4059c /gcc/builtins.cc
parentab2a2457780d224343ce05e7d8e2964c6a47fd83 (diff)
downloadgcc-2e211a02290f3b3533b56c593fc7b95edb8593b0.zip
gcc-2e211a02290f3b3533b56c593fc7b95edb8593b0.tar.gz
gcc-2e211a02290f3b3533b56c593fc7b95edb8593b0.tar.bz2
tree-optimization/104214 - amend PR100740 fix for pointer compares
When we have a pointer relational compare we have stronger guarantees about overflow, in particular rewriting BASE0 + STEP0 cmp BASE1 + STEP1 as BASE0 + STEP0 - STEP1 cmp BASE1 is always valid and the new IV0 does not overflow. The patch basically reverts the previous change when pointers are involved, keeping only the more conservative handling for equality compares which can involve comparing different object addresses. 2022-01-25 Richard Biener <rguenther@suse.de> PR tree-optimization/104214 * tree-ssa-loop-niter.cc (number_of_iterations_cond): Use stronger guarantees for relational pointer compares when rewriting BASE0 + STEP0 cmp BASE1 + STEP1 as BASE0 + STEP0 - STEP1 cmp BASE1. * gcc.dg/vect/pr81196-2.c: New variant testcase only requiring vect_int.
Diffstat (limited to 'gcc/builtins.cc')
0 files changed, 0 insertions, 0 deletions