This patch series is to make SH target use LRA and is discussed in the PR target/55212:
[SH] Switch to LRA https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55212 I think there are issues which should be solved before defaulting LRA on SH and the helps from the experts are needed. The series are constructed as [PATCH 1/9] LRA: Take account implicit usage of pseudo reg in mem arg [PATCH 2/9] LRA: Swap base_term and index_term for some case [PATCH 3/9] Add TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV target macro [PATCH 4/9] Add TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT target macro [PATCH 5/9] [SH] Add -mlra option [PATCH 6/9] [SH] Miscellaneous changes for LRA [PATCH 7/9] [SH] Modify movsi_ie movsf_ie patterns for LRA [PATCH 8/9] [SH] Add splitter to addsi3_compact [PATCH 9/9] [SH] Split QI/HImode load/store via r0 Patch 1-4 touch generic files and 5-9 are SH specific. 1-3, 6 and 7 are for getting rid of ICEs. 4, 8 and 9 are to fix some serious code regressions. The patches are tested with bootstrap and the top level "make -k check" on i686-pc-linux-gnu with no new failures. -mlra makes ~0.3% code size regression on the current sh-lra branch. It solves a few known failures and causes a few new failures with "make -k check" on sh4-unknown-linux-gnu. Regards, kaz