Aligning stack offsets for spills

Jeff Law jlaw@tachyum.com
Tue Jun 8 15:18:20 GMT 2021



On 6/8/2021 9:06 AM, H.J. Lu wrote:
> On Tue, Jun 8, 2021 at 7:56 AM Jakub Jelinek via Gcc-patches
> <gcc-patches@gcc.gnu.org> wrote:
>> On Tue, Jun 08, 2021 at 08:47:26AM -0600, Jeff Law wrote:
>>>> Why is the machinery involving STACK_SLOT_ALIGNMENT and
>>>> spill_slot_alignment() (for spilling) or get_stack_local_alignment() (for
>>>> backing stack slots) not working for you?  If everything is setup
>>>> correctly the input alignment to try_fit_stack_local ought to be correct
>>>> already.
>>> We don't need the MEM as a whole aligned, just the offset in the address
>>> calculation due to how we encode those instructions.  If I've read that code
>>> correctly, it would arrange for a dynamic realignment of the stack  so that
>>> it could then align the slot. None of that is necessary for us and we'd like
>>> to avoid forcing the dynamic stack realignment.  Or did I misread the code?
>> I think dynamic stack realignment is done only on x86, no other backend has
> I believe that all pieces of infrastructure to realign the stack are
> in place.  You
> just need to properly align the stack in the backend.
As I've stated, we don't need the stack aligned to these higher 
boundaries.  Nor do we need the slot as a whole aligned.   That's 
ultimately just wasteful since we don't need them.  We just want to get 
an aligned offset.

Jeff


More information about the Gcc-patches mailing list