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