aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/iresolve.cc
diff options
context:
space:
mode:
authorKonstantinos Eleftheriou <konstantinos.eleftheriou@vrull.eu>2025-07-18 04:46:41 -0700
committerPhilipp Tomsich <philipp.tomsich@vrull.eu>2025-07-29 16:27:16 +0200
commitfa1919d3216d2a57cb086ca2e6fcdb8548de04c2 (patch)
treec93ddb4358806a3a7b88e7b790862fc7ab739638 /gcc/fortran/iresolve.cc
parent689ee39f7bbb632a9ca7d1dc18192bd1921e54a8 (diff)
downloadgcc-fa1919d3216d2a57cb086ca2e6fcdb8548de04c2.zip
gcc-fa1919d3216d2a57cb086ca2e6fcdb8548de04c2.tar.gz
gcc-fa1919d3216d2a57cb086ca2e6fcdb8548de04c2.tar.bz2
asf: Fix case of multiple stores with base offset [PR120660]
When having multiple stores with the same offset as the load, in the case that we are eliminating the load, we were generating a mov instruction for both of them, leading to the overwrite of the register containing the loaded value. This patch fixes this issue by generating a mov instruction only for the first store in the store-load sequence that has the same offset as the load. For the next ones that might be encountered, we use bit-field insertion. Bootstrapped/regtested on AArch64 and x86_64. PR rtl-optimization/120660 gcc/ChangeLog: * avoid-store-forwarding.cc (process_store_forwarding): Fix instruction generation when haveing multiple stores with base offset. gcc/testsuite/ChangeLog: * gcc.dg/pr120660.c: New test.
Diffstat (limited to 'gcc/fortran/iresolve.cc')
0 files changed, 0 insertions, 0 deletions