Difference between -O3 and -O2 with the -f options -O3 adds
Matthias Kretz
Matthias.Kretz@kip.uni-heidelberg.de
Wed Jul 29 15:43:00 GMT 2009
Hi,
I just updated to 4.4.1 and now one of my unit tests fails when it is compiled
with -O3.
OTOH when I compile with -O2 -finline-functions -funswitch-loops -ftree-
vectorize -fpredictive-commoning -fgcse-after-reload -fipa-cp-clone the
resulting binary does not fail.
I looked at the Assembly with objdump -dwC and I can see at least that the -O3
compiled binary has some loop unrolling done that's not in the other binary.
The gcc manual says that -O3 is the same as -O2 plus -finline-functions -
funswitch-loops -ftree-vectorize -fpredictive-commoning -fgcse-after-reload
gcc -c -Q -O3 --help=optimizers compared to the same with -O2 shows that also
-fipa-cp-clone goes in that list. But still the result is not the same.
Any ideas how to debug this regression further?
Regards,
Matthias
More information about the Gcc-help
mailing list