diff options
author | kelefth <konstantinos.eleftheriou@vrull.eu> | 2025-03-13 11:49:39 +0100 |
---|---|---|
committer | Philipp Tomsich <philipp.tomsich@vrull.eu> | 2025-04-18 10:42:00 +0200 |
commit | 7e628ff49f7f890d5337369d7b4f8e21a1f17029 (patch) | |
tree | db319a5c5c1e78ab256af31b386701b89ab20745 /libjava/java/util/concurrent/TimeUnit$4.h | |
parent | 19af15ba7ad041b58b7926775cce81be9f5ec013 (diff) | |
download | gcc-7e628ff49f7f890d5337369d7b4f8e21a1f17029.zip gcc-7e628ff49f7f890d5337369d7b4f8e21a1f17029.tar.gz gcc-7e628ff49f7f890d5337369d7b4f8e21a1f17029.tar.bz2 |
avoid-store-forwarding: Fix reg init on load-elimination [PR119160]
In the case that we are eliminating the load instruction, we use zero_extend
for the initialization of the base register for the zero-offset store.
This causes issues when the store and the load use the same mode,
as we are trying to generate a zero_extend with the same inner and
outer modes.
This patch fixes the issue by zero-extending the value stored in the
base register only when the load's mode is wider than the store's mode.
PR rtl-optimization/119160
gcc/ChangeLog:
* avoid-store-forwarding.cc (process_store_forwarding):
Zero-extend the value stored in the base register, in case
of load-elimination, only when the mode of the destination
is wider.
gcc/testsuite/ChangeLog:
* gcc.dg/pr119160.c: New test.
Diffstat (limited to 'libjava/java/util/concurrent/TimeUnit$4.h')
0 files changed, 0 insertions, 0 deletions