On 2014-12-17 7:56 PM, Kaz Kojima wrote:
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.
Thank you very much for your work on porting LRA to SH! I know it
is quite a challenge to do any RA work for this target. And sorry,
I had no time to pay attention to this work. To be honest I thought
that SH will be one of the last target ported to LRA. It is a surprise
for me, that porting SH to LRA does not need many changes in LRA itself.
I'll try to review the first 4 patches as soon as possible although I'll
be on 2 week vacation since tomorrow.