[PATCH 1/4] rs6000_stack_info changes for -fsplit-stack
Alan Modra
amodra@gmail.com
Wed May 20 01:45:00 GMT 2015
On Mon, May 18, 2015 at 02:05:59PM -0400, David Edelsohn wrote:
> On Sun, May 17, 2015 at 10:54 PM, Alan Modra <amodra@gmail.com> wrote:
> > This patch changes rs6000_stack_info to keep save areas offsets even
> > when not used. I need lr_save_offset valid for split-stack, and it
> > seemed reasonable to treat the other offsets the same. Not zeroing
> > the offsets requires just one change in code that uses them, the
> > use_backchain_to_restore_sp expression in rs6000_emit_epilogue, not
> > counting the debug_stack_info changes.
> >
> > * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
> > when not saving registers.
> > (debug_stack_info): Adjust to omit printing unused offsets,
> > as before.
> > (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
> > expression.
>
> I think that the vrsave_save_offset change may break saving of
> callee-saved VRs. See PR 55276.
I checked. It doesn't break that testcase. PR 55276 was really
caused by using vrsave_mask for two purposes, firstly to track which
altivec registers have been saved, and secondly to control use of the
vrsave stack slot and whether mfvrsave/mtvrsave insns are generated.
Patch 2/4 removes this conflation.
--
Alan Modra
Australia Development Lab, IBM
More information about the Gcc-patches
mailing list