diff options
author | Richard Biener <rguenther@suse.de> | 2024-08-28 14:06:48 +0200 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2024-09-09 15:02:26 +0200 |
commit | e7d5b9aa021f6fc32810670b18ffabe543262775 (patch) | |
tree | f3340ad130b425003e3cc5f5d4f67c724c3eeafe /gcc/fortran/error.cc | |
parent | 898e3e95a6acf542baf03be95ce5bf7b3ad04276 (diff) | |
download | gcc-e7d5b9aa021f6fc32810670b18ffabe543262775.zip gcc-e7d5b9aa021f6fc32810670b18ffabe543262775.tar.gz gcc-e7d5b9aa021f6fc32810670b18ffabe543262775.tar.bz2 |
tree-optimization/116514 - handle pointer difference in bit-CCP
When evaluating the difference of two aligned pointers in CCP we
fail to handle the EXACT_DIV_EXPR by the element size that occurs.
The testcase then also exercises modulo to test alignment but
modulo by a power-of-two isn't handled either.
PR tree-optimization/116514
* tree-ssa-ccp.cc (bit_value_binop): Handle EXACT_DIV_EXPR
like TRUNC_DIV_EXPR. Handle exact division of a signed value
by a power-of-two like a shift. Handle unsigned division by
a power-of-two like a shift.
Handle unsigned TRUNC_MOD_EXPR by power-of-two, handle signed
TRUNC_MOD_EXPR by power-of-two if the result is zero.
* gcc.dg/tree-ssa/ssa-ccp-44.c: New testcase.
Diffstat (limited to 'gcc/fortran/error.cc')
0 files changed, 0 insertions, 0 deletions