This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Difference between -O3 and -O2 with the -f options -O3 adds
- From: Matthias Kretz <Matthias dot Kretz at kip dot uni-heidelberg dot de>
- To: gcc-help at gcc dot gnu dot org
- Date: Wed, 29 Jul 2009 17:43:25 +0200
- Subject: Difference between -O3 and -O2 with the -f options -O3 adds
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