[Bug target/56200] New: queens benchmark is faster with -O0 than with any other optimization level
abel at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Feb 4 10:41:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56200
Bug #: 56200
Summary: queens benchmark is faster with -O0 than with any
other optimization level
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: abel@gcc.gnu.org
CC: amonakov@gcc.gnu.org
Target: x86_64-unknown-linux-gnu
Created attachment 29346
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=29346
queens benchmark
While preparing some teaching slides I have noticed that the queens benchmark
from Aburto generates slower code with -O1/O2/O3 than with plain -O0. I've
removed all timing routines from the attached file, compile and run it with
./a.out 30.
For 4.7.1 of OpenSUSE 12.2, we have:
$ time ./o0 30 >/dev/null
user 0m10.017s
$ time ./o1 30 >/dev/null
user 0m11.824s
$ time ./o2 30 >/dev/null
user 0m10.388s
$ time ./o3 30 >/dev/null //this one is with -march=native
user 0m11.065s
For today's 4.8,
$ time ./o048 30 >/dev/null
user 0m9.780s
$ time ./o148 30 >/dev/null
user 0m12.590s
$ time ./o248 30 >/dev/null //this one is with -march=native
user 0m10.487s
$ time ./o348 30 >/dev/null //this one is with -march=native
user 0m10.850s
Perf shows that in the -O1 versions of above we have the new lea that has a lot
of counter hits and lots more of branch mispredictions.
More information about the Gcc-bugs
mailing list