diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2024-01-30 09:30:35 +0000 |
---|---|---|
committer | Richard Sandiford <richard.sandiford@arm.com> | 2024-01-30 09:30:35 +0000 |
commit | aeec7d87a28ac80c64ebfa88cef3dccee3ba8efc (patch) | |
tree | 15e86711364e25a05b60e4b2db605f1f24e78cce /gcc/tree-vect-loop-manip.cc | |
parent | d7250c1e02478586a0cd6d5cb67bf4d17249a7e7 (diff) | |
download | gcc-aeec7d87a28ac80c64ebfa88cef3dccee3ba8efc.zip gcc-aeec7d87a28ac80c64ebfa88cef3dccee3ba8efc.tar.gz gcc-aeec7d87a28ac80c64ebfa88cef3dccee3ba8efc.tar.bz2 |
aarch64: Handle debug references to removed registers [PR113636]
In this PR, we entered early-ra with quite a bit of dead code.
The code was duly removed (to avoid wasting registers), but there
was a dangling reference in debug instructions, which caused an
ICE later.
Fixed by resetting a debug instruction if it references a register
that is no longer needed by non-debug instructions.
gcc/
PR target/113636
* config/aarch64/aarch64-early-ra.cc (early_ra::replace_regs): Take
the containing insn as an extra parameter. Reset debug instructions
if they reference a register that is no longer used by real insns.
(early_ra::apply_allocation): Update calls accordingly.
gcc/testsuite/
PR target/113636
* go.dg/pr113636.go: New test.
Diffstat (limited to 'gcc/tree-vect-loop-manip.cc')
0 files changed, 0 insertions, 0 deletions