Re: Kernel GCC Optimizations

Zack Weinberg (zack@codesourcery.com)
Sat, 21 Dec 2002 23:57:12 -0800


> > So, let's make it -O6 per default for 2.7.x/3.1.x?
>
> A higher -O setting does not necessarily mean better performance -
> loop unrolling is one compiler optimisation that I *think* is
> performed by GCC at high -O settings, and that *often* causes code to
> be slower.

In all official releases of GCC, -Ox, x >= 4, has exactly the same
effect as -O3. This is unlikely to change anytime soon.

-O3 enables exactly two optimizations relative to -O2:
-finline-functions and -frename-registers. This may or may not change
in the future. It does *not* enable loop unrolling. -finline-functions
is almost always a major performance loss, because it makes the code
huge and blows out the I-cache. I'm not familiar with the performance
effects of -frename-registers; it might be worth experimenting with
just that switch.

zw
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/