Re: [patch 00/2] improve .text size on gcc 4.0 and newer compilers

Arjan van de Ven
2006-01-03T09:11:00Z

On Tue, 2006-01-03 at 09:00 +0000, Russell King wrote:
> On Tue, Jan 03, 2006 at 09:56:26AM +0100, Arjan van de Ven wrote:
> > On Tue, 2006-01-03 at 08:53 +0000, Russell King wrote:
> > > On Mon, Jan 02, 2006 at 10:59:04PM -0500, Daniel Jacobowitz wrote:
> > > > On Mon, Jan 02, 2006 at 10:23:35PM +0000, Russell King wrote:
> > > > > static void fn1(void *f)
> > > > > {
> > > > > }
> > > > >
> > > > > void fn2(void *f)
> > > > > {
> > > > > fn1(f);
> > > > > }
> > > > >
> > > > > on ARM produces:
> > > >
> > > > On 3.4, 4.0, and 4.1 you only need -O for this (I just checked both x86
> > > > and ARM compilers). I believe this came in with unit-at-a-time, as
> > > > Arjan said - which was GCC 3.4.
> > >
> > > Well, as demonstrated, it doesn't work with gcc 3.3. Since we aren't
> > > about to increase the minimum gcc version to 3.4, this isn't acceptable.
> >
> > s/isn't acceptable/is suboptimal/
>
> No - it's a case of going overboard with this inline removal idea.
> If we would prefer a function to be inlined because it is only used
> once, we should specify it as such rather than relying on some quirky
> idea that it _might_ do the right thing if we don't specify it

so for those gcc's one passes -finline-functions ....
(or -finline-functions-called-once if it's supported, which newer gccs
have again :)