Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 05 Aug 2002 12:14:30 -0400
From:      Jason Andresen <jandrese@mitre.org>
To:        Terry Lambert <tlambert2@mindspring.com>
Cc:        Darren Pilgrim <dmp@pantherdragon.org>, Dmitry Morozovsky <marck@rinet.ru>, hackers@freebsd.org
Subject:   Re: -fomit-frame-pointer for the world build
Message-ID:  <3D4EA466.C1289F0F@mitre.org>
References:  <20020802212841.R58905-100000@woozle.rinet.ru> <3D4AC526.4CD399B3@mindspring.com> <3D4C8464.A2F4775A@pantherdragon.org> <3D4CC81F.94526C8A@mindspring.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Terry Lambert wrote:
> 
> 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.

On the other hand, -fomit-frame-pointer is the only optimization
beyond -O in gcc that actually seems to offer any sort of speedup
for me.  I've seen 10 to 20% reduction in runtime on some programs
with -fomit-frame-pointer.  It's the only specific optimization I
bother with anymore.


-- 
  \  |_ _|__ __|_ \ __| Jason Andresen        jandrese@mitre.org
 |\/ |  |    |    / _|  Network and Distributed Systems Engineer
_|  _|___|  _| _|_\___| Office: 703-883-7755


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?3D4EA466.C1289F0F>