This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: Gcc 3.1 performance regressions with respect to 2.95.3
- From: Peter Schmid <schmid at snake dot iap dot physik dot tu-darmstadt dot de>
- To: Richard Henderson <rth at redhat dot com>
- Cc: Jan Hubicka <jh at suse dot cz>, Jason Merrill <jason at redhat dot com>, <gcc at gcc dot gnu dot org>, <libstdc++ at gcc dot gnu dot org>, <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 20 Mar 2002 19:36:19 +0100 (CET)
- Subject: Re: Gcc 3.1 performance regressions with respect to 2.95.3
I made an another experiment. I added sequentially an option that is
turned on for -O2 to the existing -O options.
When I compile stepanov with the following options
g++ -O -fcse-follow-jumps -fcse-skip-blocks stepanov_v1p2.C
-fforce-mem -freorder-block, all these options are turned on, among
others, for -O2,
the results are:
test absolute additions ratio with
number time per second test0
0 0.45sec 111.11M 1.00
1 0.59sec 84.75M 1.31
2 0.60sec 83.33M 1.33
3 1.03sec 48.54M 2.29
4 1.03sec 48.54M 2.29
5 0.97sec 51.55M 2.16
6 0.98sec 51.02M 2.18
7 1.02sec 49.02M 2.27
8 1.03sec 48.54M 2.29
9 1.02sec 49.02M 2.27
10 1.00sec 50.00M 2.22
11 1.05sec 47.62M 2.33
12 1.04sec 48.08M 2.31
mean: 0.88sec 56.86M 1.95
Total absolute time: 11.81 sec
Abstraction Penalty: 1.95
-O -fcse-follow-jumps causes an abstraction penalty of 1.79, and
-O -fcse-skip-blocks 1.14,
in contrast to:
-O
test absolute additions ratio with
number time per second test0
0 0.45sec 111.11M 1.00
1 0.46sec 108.70M 1.02
2 0.46sec 108.70M 1.02
3 0.45sec 111.11M 1.00
4 0.48sec 104.17M 1.07
5 0.53sec 94.34M 1.18
6 0.50sec 100.00M 1.11
7 0.50sec 100.00M 1.11
8 0.51sec 98.04M 1.13
9 0.46sec 108.70M 1.02
10 0.45sec 111.11M 1.00
11 0.45sec 111.11M 1.00
12 0.48sec 104.17M 1.07
mean: 0.47sec 105.33M 1.05
Total absolute time: 6.18 sec
Abstraction Penalty: 1.05
Is there something wrong with the cse optimization?
Hope this helps,
Peter Schmid