]> git.ipfire.org Git - thirdparty/gcc.git/commit
SH: Try to reduce R0 live ranges
authorKaz Kojima <kkojima@rr.iij4u.or.jp>
Fri, 20 Sep 2024 09:15:30 +0000 (18:15 +0900)
committerOleg Endo <olegendo@gcc.gnu.org>
Wed, 25 Sep 2024 00:51:15 +0000 (09:51 +0900)
commit8ee643e50957904d75affece056a6dd84de343d6
treed692318ee4d98be607b3ceb3cf8dd2eea1636668
parent291e20e86090e5940e2bd862ec83c7d5e0715dd5
SH: Try to reduce R0 live ranges

Some move or extend patterns will make long R0 live ranges and could
confuse LRA.

gcc/ChangeLog:
* config/sh/sh-protos.h
        (sh_satisfies_constraint_Sid_subreg_index): Declare.
* config/sh/sh.cc (sh_satisfies_constraint_Sid_subreg_index):
New function.
* config/sh/sh.md (extend<mode>si2_short_mem_disp_z,
*mov<mode>_store_mem_index, mov<mode>_store_mem_index):
New insn and insn_and_split patterns.
(extend<mode>si2, mov<mode>): Use them for LRA.
gcc/config/sh/sh-protos.h
gcc/config/sh/sh.cc
gcc/config/sh/sh.md