Aligning stack offsets for spills
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
> <firstname.lastname@example.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
>>> 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.
More information about the Gcc-patches