On 2020-02-29 10:47 a.m., Jeff Law wrote:
On Sun, 2020-03-01 at 00:43 +0900, Oleg Endo wrote:
This could well be a target issue.  I haven't tried to debug it.  If
it's a
target issue, I'm fully comfortable punting it to the SH folks for
resolving.
The R0_REGS spill failure is a general problem, in particular with old
reload.  The atomic patterns tend to trigger it in one circumstance or
the other.  The IRA change probably just stresses it more.  Perhaps it
will go away with -mlra.

However, LRA on SH still has its own issues, so it can't be generally
enabled by default yet, unfortunately.  See also some of the recent
posts in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93877
It's almost certainly the case that the recent IRA changes are going to stress
R0 more.  If I'm reading what Vlad did correctly, one of the tie-breakers its
using now is to choose the lowest numbered register when all else is equal.  So
R0 on SH is likely going to be more problematical.
The last patch does not do it for targets requiring to honor reg allocation order.  I'd recommend to try to define macro HONOR_REG_ALLOC_ORDER for sh.
I wonder if just reordering the regs on the SH (and adjusting the debug output
to keep that working) would be enough to mitigate some of the R0 problems.

And yes, I saw 93877 fly by too :(

Reply via email to