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: Jan Hubicka <jh at suse dot cz>
- Cc: Jason Merrill <jason at redhat dot com>, <gcc at gcc dot gnu dot org>, <libstdc++ at gcc dot gnu dot org>
- Date: Mon, 18 Mar 2002 22:50:04 +0100 (CET)
- Subject: Re: Gcc 3.1 performance regressions with respect to 2.95.3
On Mon, 18 Mar 2002, Jan Hubicka wrote:
> >
> >
> > > It is more or less special case. Overall 3.1 groks better the code
> > > with lots of abstraction, but in this case 2.95 got particulary lucky.
> > > It runs into similar slowdown only on slightly modified Stephanov as
> > > long as I can remember.
> > >
> >
> > That is only partly true. When I benchmark gcc 3.1 at the -O versus
> > -O2 optimization level with the help of the bench++ test suite, the
> > performance is better in 45 cases at -O. Interestingly, the checks
> > measuring loop overhead (L*) run all faster at the -O level. L00004 runs
> > two times faster. And even more interesting is that o000007[a,b].cpp which
> > checks the strength reduction capabilities of the compiler, o000007a.cpp
> 7a.cpp is refered twice. Isn't that typo?
> Looking at 7a/b.cpp internal loop, it is not really test for strength reduction,
> as loop optimizer is confused and does not strength reduce at all.
That is a typo. According to the bench documentation the tests from the o
(optimization) series check:
This group of tests measures optimizer performance.
o000001a.cpp Constant Propagation (including math functions)
o000001b.cpp " Hand Optimized
o000002a.cpp Local Common Sub-expression (including math functions)
o000002b.cpp " Hand Optimized
o000003a.cpp Global Common Sub-expression
o000003b.cpp " Hand Optimized
o000004a.cpp Unnecessary Copy
o000004b.cpp " Hand Optimized
o000005a.cpp Code Motion (including math functions)
o000005b.cpp " Hand Optimized
o000006a.cpp Induction Variable
o000006b.cpp " Hand Optimized
o000007a.cpp Reduction in Strength (including math functions)
o000007b.cpp " Hand Optimized
o000008a.cpp Dead Code
o000008b.cpp " Hand Optimized
o000009a.cpp Loop Jamming
o000009b.cpp " Hand Optimized
o000010a.cpp Redundant Code
o000010b.cpp " Hand Optimized
o000011a.cpp Unreachable Code
o000011b.cpp " Hand Optimized
o000012a.cpp String Ops
o000012b.cpp " Hand Optimized
Thank you.
Peter Schmid