diff options
author | Andrew Pinski <andrew.pinski@oss.qualcomm.com> | 2025-08-26 22:04:06 -0700 |
---|---|---|
committer | Andrew Pinski <andrew.pinski@oss.qualcomm.com> | 2025-09-04 03:12:43 -0700 |
commit | adfe96eb612feeb6abb2ecac267325243039a0f8 (patch) | |
tree | fd42566b6788d38a19eb0916796000582a49931b /libjava/gnu/javax | |
parent | 43a8c0f8e67f282823a3af1df4cd77dd86981b9c (diff) | |
download | gcc-adfe96eb612feeb6abb2ecac267325243039a0f8.zip gcc-adfe96eb612feeb6abb2ecac267325243039a0f8.tar.gz gcc-adfe96eb612feeb6abb2ecac267325243039a0f8.tar.bz2 |
forwprop: Improve the reject case for copy prop [PR107051]
Currently the code rejects:
```
tmp = *a;
*b = tmp;
```
(unless *a == *b). This can be improved such that if a and b are known to
share the same base, then only reject it if they overlap; that is the
difference of the offsets (from the base) is maybe less than the size.
This fixes the testcase in comment #0 of PR 107051.
Changes since v1:
* v2: Use ranges_maybe_overlap_p instead of manually checking the overlap.
Allow for the case where the alignment is known to be greater than
the size.
PR tree-optimization/107051
gcc/ChangeLog:
* tree-ssa-forwprop.cc (optimize_agr_copyprop_1): Allow for
memory sharing the same base if they known not to overlap over
the size.
gcc/testsuite/ChangeLog:
* gcc.dg/tree-ssa/copy-prop-aggregate-union-1.c: New test.
Signed-off-by: Andrew Pinski <andrew.pinski@oss.qualcomm.com>
Diffstat (limited to 'libjava/gnu/javax')
0 files changed, 0 insertions, 0 deletions