Denis Chertykov wrote:
> Hi Georg.
> 
> I have found that conversion AVR port to using hard_frame_pointer have
> resolved PR 50925 .
> I have tested the patch without regressions, but I'm worry about it.
> Can you test it with your testsuite for regressions ?
> May be you have your own special difficult tests (special for addressing) ?

Idea:

In avr.c:avr_option_override() there is

  /* caller-save.c looks for call-clobbered hard registers that are assigned
     to pseudos that cross calls and tries so save-restore them around calls
     in order to reduce the number of stack slots needed.

     This might leads to situations where reload is no more able to cope
     with the challenge of AVR's very few address registers and fails to
     perform the requested spills.  */

  if (avr_strict_X)
    flag_caller_saves = 0;

i.e. with -mstrict-X -fcaller-saves is turned off because I saw spill fails in
test suite or building libs. This is a kludge, of course, to quick work around
these spill fails.

You can increase register pressure and register allocation stress considerably
by turning on -mstrict-X per default:

  avr_strict_X = 1;

Johann

Reply via email to