Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 03 Aug 2002 23:22:23 -0700
From:      Terry Lambert <tlambert2@mindspring.com>
To:        Darren Pilgrim <dmp@pantherdragon.org>
Cc:        Dmitry Morozovsky <marck@rinet.ru>, hackers@freebsd.org
Subject:   Re: -fomit-frame-pointer for the world build
Message-ID:  <3D4CC81F.94526C8A@mindspring.com>
References:  <20020802212841.R58905-100000@woozle.rinet.ru> <3D4AC526.4CD399B3@mindspring.com> <3D4C8464.A2F4775A@pantherdragon.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Darren Pilgrim wrote:
> Terry Lambert wrote:
> > Dmitry Morozovsky wrote:
> > > What are the drawbacks of building FreeBSD with -fomit-frame-pointer?
> >
> > The frame pointer is used for debugging, specifically for the
> > stack traceback function to know arguments.  Removing it means
> > losing some debugging functionality.  Next time try "info gcc":
> 
> If you don't have any need for debugging your software, is there any
> use for frame pointers?  Is this something that can safely be used for
> both CFLAGS and COPTFLAGS?

You can't use it in conjunction with calee pop, if you have
mixed code.

So it really depends on what other optimizations you throw in
the mix, and then you have the problem of interfacing with
assembly language code, as well -- the calling standard has to
match, if it's asymmetric (i.e. not "caller push, caller pop"),
and assembly code is hand-coded in this respect in most cases.

The claimed savings are fictions.  They are function call
overhead savings assuming an average number of arguments and
related pushed values, and they apply only to the call process
itself.  Most time in programs is spent in running, not calling
functions, so if you expect an elimination of "18% overhead"
to make you programs that much faster, you are dreaming.

-- Terry

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3D4CC81F.94526C8A>