builtin_return_addr vs frame_pointer_needed vs -O3

Richard Henderson rth@redhat.com
Wed Jan 31 18:23:00 GMT 2001


On Wed, Jan 31, 2001 at 09:20:57PM -0500, DJ Delorie wrote:
> > +   /* In override_options, TARGET_OMIT_LEAF_FRAME_POINTER turns off
> > +      the frame pointer by default.  Turn it back on now if we've not
> > +      got a leaf function.  */
> > +   if (TARGET_OMIT_LEAF_FRAME_POINTER && ! leaf_function_p ())
> > +     return 1;
> 
> Could you explain this one?  I don't see how the non-leaf functions
> require a frame pointer only when you want leaf functions to not have
> one, but they don't require one otherwise.

As the comment says, see override_options.

In order to make -momit-leaf-frame-pointer work, we make the default
no frame pointer, then force a frame pointer for non-leaf functions.



r~


More information about the Gcc mailing list