[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