[Bug target/55212] [SH] Switch to LRA
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Jul 3 01:11:36 GMT 2026
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55212
--- Comment #483 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Oleg Endo <olegendo@gcc.gnu.org>:
https://gcc.gnu.org/g:6a1f0d171ba12f3dbddf2f8b7358f8d042195249
commit r17-2102-g6a1f0d171ba12f3dbddf2f8b7358f8d042195249
Author: Kaz Kojima <kkojima@rr.iij4u.or.jp>
Date: Sun Oct 6 12:34:55 2024 +0900
SH: Reduce R0 live ranges around R0-constrained move insns for LRA
Some move and extend patterns can result in longer R0 live ranges and LRA
has
trouble dealing with those. This tries to reduce the likelihood of
failures by
using insn variants that use an explicit R0-clobber and splitting the move
into
two insns. This tricks LRA into thinking it's using non-R0 for the
operand.
gcc/ChangeLog:
PR target/55212
* config/sh/sh.md (extend<mode>si2_short_mem_disp_z): New
insn_and_split.
(extend<mode>si2): Use it for LRA.
(mov<mode>_store_mem_index, *mov<mode>_store_mem_index): New
patterns.
(mov<mode>): Use it for LRA.
(movsf_ie_store_mem_index, movsf_ie_load_mem_index,
*movsf_ie_store_mem_inde, *movsf_ie_load_mem_index): New patterns.
(movsf): Use it for LRA.
More information about the Gcc-bugs
mailing list