This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Performance loss from RedHat 7.0 to RedHat 9.0
- From: Jean-Marc Petit <petit at obs-besancon dot fr>
- To: Toon Moene <toon at moene dot indiv dot nluug dot nl>
- Cc: gcc-help at gcc dot gnu dot org
- Date: Tue, 17 Feb 2004 10:34:00 +0100 (CET)
- Subject: Re: Performance loss from RedHat 7.0 to RedHat 9.0
On Mon, 16 Feb 2004, Toon Moene wrote:
> Jean-Marc Petit wrote:
>
> > I just noticed a strong decrease of efficiency in code produced by G77
> > when moving from the RedHat 7.0 version (can't recall the version, it's no
> > longer on my computer) to RedHat 9.0.
>
> > Hardware: Athlon 1.0GHz, 512 MB RAM
> >
> > RedHat 7.0:
> >
> > compiler command: g77 -u -O3 -ffastmath -funroll-loops -m486 -o bench bench.f
> >
> > result of the "time" command:
> >
> > real 0m37.415s
> > user 0m36.890s
> > sys 0m0.000s
>
> but the following is slower:
>
> > RedHat 9.0:
> >
> > g77 -v gives: gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5)
> >
> > compiler command: g77 -u -O3 -fno-automatic -funroll-loops -malign-double
> > -march=athlon -ffast-math -o bench bench.f
>
> Note that one of the differences is the -fno-automatic compile time
> option in the latter example. This might make a large difference, as it
> instructs the compiler to treat all variables (even loop counts) to be
> memory resident, instead of being able to live in registers.
>
> Why do you need -fno-automatic with gcc-3.2.2 but not with the RedHat
> 7.0 compiler ?
>
Well, I tried wihtou the "-fno-automatic" option. It's marginally worth:
real 1m4.492s
user 1m4.390s
sys 0m0.000s
The reason I have this option is that I don't want to loose time
re-creating the variables each time the program enters a subroutine. In
the present case, I don't really need that, and the result is essentially
the same. In some cases, I need to have it for the program to work. This
replace having a SAVE statement in each and every subroutine. For example,
I need this to compile and link with the PGPLOT library. Anyway, it seems
this doesn't solve my problem. If you think it's worth it, I can send
along my progam.
Reagrds, Jean-Marc Petit