Hello,

I got no replies, so I guess there is no will to move GCC to -O3 by default, so I shouldn't bother submitting a patch?

As a reminder, cc1 is 0-4% faster but almost 10% bigger executable. Testsuite showed no regression. Bootstrap time is greater (don't have the numbers) but I proposed adding and documenting a "make release" target that would be used by distros, while default target would remain -O2 (or even -O1) so that our test builds complete in sensible time.

In the future we could also turn on other stable ways to speed up GCC for release builds (e.g. lto/profiledbootstrap).


Thanks,
Dimitris




On Wed, 11 Jul 2012, Dimitrios Apostolou wrote:
Hello list,

we discussed the subject in the BOF but I didn't quite get what the consensus is, so that I can start changing things.

What I have in mind is to introduce and document a new "make release" target that builds GCC in the fastest /stable/ way possible, for example --enable-checking=release BOOT_CFLAGS=-O3. I don't know what are the exact options we want, personally I tried -O3 and cc1 was 0% - 4% with no regressions, so IMHO we definitely want -O3 as default. I'm curious also about lto and profiledbootstrap but don't know if they should be default, in any case if anything gets worse we can revert.

The actual purpose of adding a separate "release" target and documenting it properly is for all distributors (besides the ones having specific constraints, like embedded) to actually build GCC in the best way possible. Since we will be making sure no problems are introduced with -O3/lto/whatever this will also be a great way to advertise that these build methods actually work well, and it's an advantage over other compilers. Finally, that way the default target can remain -O2 (or even -O1) so that all our test bootstraps complete in sensible time.

So, what do you think?


Thanks,
Dimitris


P.S. Size change for stripped cc1 is almost 10% between -O2 and -O3:

$ wc -c cc1*
10858100 cc1.O2
12103284 cc1.O3


Reply via email to