On 12/13/2017 04:17 PM, Eric Botcazou wrote: >> No clue, but ISTM that it should. Eric, can you try that and see if it >> addresses these problems? I'd really like to get this wrapped up, but I >> don't have access to any sparc systems to test it myself. > > Yes, the INIT_EXPANDERS trick works for SPARC (but this has nothing to do > with > SPARC_STACK_BIAS) and avoid hardcoding the bogus alignment assumption in the > get_dynamic_stack_size function. As a matter of fact, this was the approach > originally used by Dominik Vogt last year. > > Of course this doesn't address the same potential issue on other targets but > you don't seem to care much about that, so who am I to do it after all? ;-) > > Tested on x86_64-suse-linux and SPARC/Solaris, applied on the mainline. > > > 2017-12-13 Eric Botcazou <ebotca...@adacore.com> > Dominik Vogt <v...@linux.vnet.ibm.com> > > PR middle-end/78468 > * emit-rtl.c (init_emit): Remove ??? comment. > * explow.c (get_dynamic_stack_size): Take known alignment of stack > pointer + STACK_DYNAMIC_OFFSET into account in lieu of STACK_BOUNDARY > * config/sparc/sparc.h (INIT_EXPANDERS): In 32-bit mode, lower the > alignment of 3 virtual registers to BITS_PER_WORD. > > * config/sparc/sparc.c (sparc_compute_frame_size): Simplify. > Thanks for taking care of this.
jeff