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 <[email protected]>:

https://gcc.gnu.org/g:6a1f0d171ba12f3dbddf2f8b7358f8d042195249

commit r17-2102-g6a1f0d171ba12f3dbddf2f8b7358f8d042195249
Author: Kaz Kojima <[email protected]>
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.

Reply via email to