Mail Archives: pgcc/1998/07/20/11:43:17
Hello,
I compared the speed of pgcc to gcc 2.7.2.3/2.8.1.
I wonder what optimizations i can try. My program does
NOT use any float, only integers and unsigned chars.
I'd be glad to receive additional optimizations i can try on it, and also
how can i dissassemble the code of pgcc, so that i can report what can be
improved during optimization (if assume like to receive this)?
This is what i get if i export the path with /usr/local/bin in front.
# gcc -v
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/pgcc-2.90.29/specs
gcc version pgcc-2.90.29 980515 (egcs-1.0.3 release)
Here the makefile and notes about speed are written by CFLAGS.
# Makefile for DIEP (c) 1994-1998
target = LINUX
CC = gcc
#CC = egcs
#CFLAGS = -mpentiumpro -O6 -Wall this is around 15% slower than gcc
#CFLAGS = -mpentium -O6 around 25% slower than gcc
#CFLAGS = -O about 1.5% slower than gcc
#CFLAGS = -O2 exactly equal to gcc
#CFLAGS = -O2 -mpentium almost equal to gcc 2.7.2.3 and 2.8.1
#CFLAGS = -O2 -mpentiumpro little slower than gcc, 1.5%. WEIRD!
#CFLAGS = -O3 -mpentium 1.5% slower than gcc
#CFLAGS = -O -mpentiumpro also slower than gcc, 2%.
objects = diepab.o diepasci.o diepbook.o diepdbas.o diepegtb.o diepeind.o \
diepeval.o diepexec.o diepgame.o diepinit.o diepmove.o dieprand.o \
diepslow.o diepsort.o dieptabl.o dieptime.o
includes = diep.h function.h data.h
diep: $(objects) $(includes)
$(CC) $(CFLAGS) -o diep $(objects)
clean:
-rm -f *.o diep
$(objects): $(includes)
..c.o: $(includes)
$(CC) $(CFLAGS) -c $*.c
----------------------------------------------------------------------------
First of all: it seems that -O6 doesn't work at all. Also very dissappointing
is the pentium pro optimization. Just like it's dissappointing in gcc,
in pgcc it also gives nothing, which is to say at least *weird*.
How can a program running on a P6-200Mhz be not faster, yes even
SLOWER when optimized for P6, than when it does only carry -O2? In gcc i
saw the same problem: it didn't became faster at all.
In contradiction to gcc with pgcc i can clearly measure different speeds.
In gcc it doesn't matter what string i give it, only -O and -O2 matter,
and further it doesn't matter at all.
For PGCC the best working optimization so far was -O2
When i used -O2 -mpentium it became slower!
Really horrible was -O2 -mpentiumpro it became 1.5% slower than -O2.
If i can dissassemble i'll be able to show a few problems of pgcc.
I really DON'T understand why the pentium pro optimization code works so
bad. It really should speed up things a lot. There are so many obvious things
that work way faster on pro compared to pentium/486.
Yet 486 optimization seems give me the fastest code on the pentium pro.
There is some work to do!
Greetings,
Vincent
- Raw text -