This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Cygnus Supported GCC vs. EGCS GCC
- To: frichard at bbn dot com
- Subject: Re: Cygnus Supported GCC vs. EGCS GCC
- From: Jim Wilson <wilson at cygnus dot com>
- Date: Tue, 14 Oct 1997 08:52:37 -0700
- cc: egcs at cygnus dot com, jvs at bbn dot com, asolomon at bbn dot com, kpowers at cygnus dot com
Does anyone know if I should I expect about the same 40% performance
hit from the Cygnus Support version of GCC?
Yes. You should expect roughly the same performance from Cygnus gcc releases
as you get from other gcc releases in this case.
Put differently, does
anyone know if Cygnus has implemented more specific optimization for
the Ultra Sparc processor?
Nothing that isn't already in EGCS and/or the eventual gcc 2.8 release.
Another issue which I'm confused about is this: is there a common
branch point for Cygnus-GCC and EGCS-GCC? If there is, how long ago
were the two versions the same?
The are both based on the FSF development gcc sources, so they are
substantially similar. They have never been exactly the same, because they
contain different patches on top of the FSF development sources. The plan
is to eventually eliminate these differences, but this will take some time.
/opt/SUNWspro/bin/cc -fast: 1.0 (baseline)
EGCS-GCC 971008 (-mcpu=ultrasparc -O2) 1.4
I assume this is an FP program? Gcc has historically been weak on FP
performance.
The new haifa-scheduler should help here. Did you try using --enable-haifa?
I don't think the ultrasparc port has been tuned for the haifa scheduler
yet though, so this may not give best possible performance as yet.
The -fast option uses a different startup file that tweaks some bits in
the FPU status register so as to give less precise but faster arithmetic.
It should be possible to do the same thing with gcc, it is just that no one
has done the work yet. You can get some similar results with -ffast-math
but it won't have as much affect as Sun's -fast.
You should also try the -fomit-frame-pointer, -funroll-loops, and
-finline-function options.
Jim