Hi all,
I have some preleminary benchmark results comparing 3.4(.3) with 4.0.0, including some optimization option permuations.
http://exactcode.de/rene/hidden/gcc-article/2005-gcc-4.0/stat2-rt.png http://exactcode.de/rene/hidden/gcc-article/2005-gcc-4.0/stat2-bt.png
rt = runtime bt = buildtime
-lu == -funroll-loops -uaat == -funit-at-a-time -vect == -ftree-vectorize -oft == -fomit-frame-pointer -x == -funroll-loops -fpeel-loops -fpeel-loops -funswitch-loops -ftree-vectorize -ftracer -fomit-frame-pointer
-x-uaat == -x + -uaat
A short summary:
4.0 seems to be very good at modern C++ code, especially involving a lot of templates.
The -Os switch's generated code speed degenerated by magnitudes for C++ code (look at Botan and tramp3d).
4.0 seems to have problems catching up at C code where 3.4(.3) was previously yielding good results - e.g openssl, libmad and gnupg seem to be a challenge for GCC.
Of course all hand written assembly was disabled in those benchmarks, to review what GCC is able to genereate out of the generic C code ...
Feedback welcome - yours,
-- René Rebe - Rubensstr. 64 - 12157 Berlin (Europe / Germany) http://www.exactcode.de/ | http://www.t2-project.org/ +49 (0)30 255 897 45