diff options
author | Andrew Pinski <apinski@marvell.com> | 2023-06-01 21:17:56 -0700 |
---|---|---|
committer | Andrew Pinski <apinski@marvell.com> | 2023-06-02 19:45:17 +0000 |
commit | 64ca6aa74b6b5a9737f3808bf4a947dd5c122d47 (patch) | |
tree | 6578431b053c1ce3e061ed8fd812013e4d54744c /libgcc | |
parent | df0853d72d38247aed577a4511450c91794f2f06 (diff) | |
download | gcc-64ca6aa74b6b5a9737f3808bf4a947dd5c122d47.zip gcc-64ca6aa74b6b5a9737f3808bf4a947dd5c122d47.tar.gz gcc-64ca6aa74b6b5a9737f3808bf4a947dd5c122d47.tar.bz2 |
rtl-optimization: [PR102733] DSE removing address which only differ by address space.
The problem here is DSE was not taking into account the address space
which meant if you had two addresses say `fs:0` and `gs:0` (on x86_64),
DSE would think they were the same and remove the first store.
This fixes that issue by adding a check for the address space too.
OK? Bootstrapped and tested on x86_64-linux-gnu with no regressions.
PR rtl-optimization/102733
gcc/ChangeLog:
* dse.cc (store_info): Add addrspace field.
(record_store): Record the address space
and check to make sure they are the same.
gcc/testsuite/ChangeLog:
* gcc.target/i386/addr-space-6.c: New test.
Diffstat (limited to 'libgcc')
0 files changed, 0 insertions, 0 deletions