This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
Re: optimization/902: x86 optimization bug with sibling call and -fomit-frame-pointer
- To: nobody at gcc dot gnu dot org
- Subject: Re: optimization/902: x86 optimization bug with sibling call and -fomit-frame-pointer
- From: "Zack Weinberg" <zackw at Stanford dot EDU>
- Date: 29 Nov 2000 03:26:01 -0000
- Cc: gcc-prs at gcc dot gnu dot org,
- Reply-To: "Zack Weinberg" <zackw at Stanford dot EDU>
The following reply was made to PR optimization/902; it has been noted by GNATS.
From: "Zack Weinberg" <zackw@Stanford.EDU>
To: Richard Henderson <rth@redhat.com>
Cc: Fergus Henderson <fjh@cs.mu.oz.au>, gcc-gnats@gcc.gnu.org,
gcc-patches@gcc.gnu.org
Subject: Re: optimization/902: x86 optimization bug with sibling call and -fomit-frame-pointer
Date: Tue, 28 Nov 2000 19:21:43 -0800
On Tue, Nov 28, 2000 at 05:43:21PM -0800, Richard Henderson wrote:
> On Tue, Nov 28, 2000 at 04:48:25PM -0800, Zack Weinberg wrote:
> > > We recognize that empty does nothing and mark it CONST.
> >
> > Would it be practical to recognize that empty does nothing, and not
> > call it at all? This could be as simple as marking it to-be-inlined.
>
> I'd rather not, since otherwise it'll be neigh impossible to
> write ld.so style breakpoint hooks.
You just have to put them in a separate file and not make them
static. With the current compiler, you can put them below their call
sites, but that is likely to change in the future. Or have them
perform some trivial side effect like frobbing a static variable.
This is sort of the same argument as deleting empty loops. It seems
to me that C++ abstractions could produce empty functions just as
easily as empty loops.
zw