Simplify frame layout for stack probing
commit1848e944f787a609274ccdd890e8142f17a736d1
authorwilco <wilco@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 26 Oct 2017 16:40:25 +0000 (26 16:40 +0000)
committerwilco <wilco@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 26 Oct 2017 16:40:25 +0000 (26 16:40 +0000)
tree71b31e5c29e57ca7945e6bd28b63998e849f2f2a
parentd8db98b29ca32c805e0bcdfb0f9a9df815553cd6
Simplify frame layout for stack probing

This patch makes some changes to the frame layout in order to simplify
stack probing.  We want to use the save of LR as a probe in any non-leaf
function.  With shrinkwrapping we may only save LR before a call, so it
is useful to define a fixed location in the callee-saves. So force LR at
the bottom of the callee-saves even with -fomit-frame-pointer.

Also remove a rarely used frame layout that saves the callee-saves first
with -fomit-frame-pointer.  Doing so allows the store of LR to be used as
a valid stack probe in all frames.

    gcc/
* config/aarch64/aarch64.c (aarch64_layout_frame):
        Ensure LR is always stored at the bottom of the callee-saves.
        Remove rarely used frame layout which saves callee-saves at top of
        frame, so the store of LR can be used as a valid probe in all cases.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@254112 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/aarch64/aarch64.c