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

Krzysztof Halasa
2006-01-02T19:49:50Z

Arjan van de Ven <arjan@infradead.org> writes:

> you know what? gcc inlines those automatic even without you typing
> "inline". (esp if you have unit-at-a-time enabled)

And if it's not or if it's an older gcc?
Such functions should always be inlined, except maybe while debugging.

> well.. gcc is not stupid, especially if you give it visibility by
> enabling unit-at-a-time.

A *.c author can't do that. Who knows what flags will be used?

> you save about 1 cycle by inlining unless there is a trick for the
> optimizer.

There probably is but even without further optimizations I still save
at least that 1 cycle (and probably it caches better and have less stack
impact etc).

> Especially in the case you mention where gcc will dtrt...
> it's not worth typing "inline", what if you change the code later to use
> the function twice... most people at least forget to remove the
> redundant inline, turning it into a bloater...

I'd probably not forget that. BTW: most people don't write Linux.
Still, in cases where there are only gains and nothing to lose, why
not use some form of "inline"?

We could be more descriptive, though. An average reader should probably
be able to _read_ why is a particular function inlined, without guessing.
That would also help WRT different gcc options and versions, and it would
help checking if the "inline" is indeed correct (a public function with
callers all over the place marked as "one caller static" would be
obviously incorrect).
--
Krzysztof Halasa