Re: [PATCH] prepare kconfig inline optimization for all architectures

Linus Torvalds
2008-04-27T17:06:41Z

On Sun, 27 Apr 2008, Adrian Bunk wrote:
>
> My opinion on this is still:
> "OPTIMIZE" means "work around bugs in the kernel".

No.

It means that

- gcc used to (long ago) always honor "inline", and we had kernel code
that depended on that in various ways (ie required that there was no
return etc).

We've been mostly replacing the ones we know about with
"__always_inline", but there may be some that remain. We'll find out, I
guess.

- gcc was a total and utter piece of horrible crap in the inlining
department, doign insane things and changing their documentation to
match the new behaviour (and some people then claimed that it was
always documented that way).

It would not inline big functions even when they statically collapsed
to nothing, etc.

As a result, we really couldn't afford to let gcc make any inlining
decisions, because the compiler was simply *broken*.

Linus