Re: gcc inlining heuristics was Re: [PATCH -v7][RFC]: mutex: implement adaptive spinning

Linus Torvalds
2009-01-12T23:19:12Z

On Mon, 12 Jan 2009, Jamie Lokier wrote:
>
> Sometimes code motion makes code faster and/or smaller but use more
> stack space. If you want to keep the stack use down, it blocks some
> other optimisations.

Uhh. Yes. Compiling is an exercise in trade-offs.

That doesn't mean that you should try to find the STUPID trade-offs,
though.

The thing is, there is no excuse for gcc's stupid alias analysis. Other
compilers actually take advantage of things like the C standards type
alias ambiguity by (a) realizing that it's insane as a general thing and
(b) limiting it to the real special cases, like assuming that pointers to
floats and pointers to integers do not alias.

That, btw, is where the whole concept comes from. It should be passed off
as an "unsafe FP optimization", where it actually makes sense, exactly
like a lot of other unsafe FP optimizations.

Linus