On 23/05/13 17:36, Jakub Jelinek wrote:
On Thu, May 23, 2013 at 05:28:29PM +0100, Richard Earnshaw wrote:
FWIW, I would actually recommend against conditionalizing FRAME_GROWS_DOWNWARD
for a new port.  Just make it _always_ grow down and save yourself the
additional code bloat in the backend.

Doing that would add significantly to the cost of setting up the frame.

Why?


I just explained the overheads of laying out the frame from the other end.

FRAME_GROWS_DOWNWARD
Define this macro to nonzero value if the addresses of local
variable slots are at negative offsets from the frame pointer.

Yes, but this usually talks about the eliminable soft frame pointer,
something that can be eliminated later on to hard frame pointer or stack
pointer.  So, if right now say you are eliminating soft frame pointer
to hard frame pointer with offset zero, you could eliminate it to
hard frame pointer minus frame size instead or vice versa (haven't looked
what aarch64 does now).


So you're saying the documentation is wrong, or at the very least misleading... What about dealing with address validation for soft accesses? Surely we get better code if the SFP ~= HFP since we end up with fewer cases where we fall back to sub-optimal sequences.

R.

Reply via email to