This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Performance of Integer Multiplication on PIII (Results for gcc-2.95 & Athlon)


> 
> Hi,
> 
> > Note that with -march=i686 new gcc often perofrms worse on Athlon, but it is
> > mainly because it do more Athlon specific stuff.
> 
> well, actually i compare gcc-3.0.x with gcc-2.95.x (doesn't matter much
> which, since both scheduler are switched off for i686) for my floating-point
> heavy stuff. And  gcc-3.0.x performs worse compared with gcc-2.95.x (with
> -march=i686) regardles of -march=athlon or -march=i686. Other "oddities"
> may render any improvements of this flag to nearly invisibility ...
In case you have easy enought examples to analyze by hand, I can take a look
at it.
Speaking about the Atlas problems, I made some patches that should track the
problem, but I am not quite sure they got reviewed.

The problem gcc is running into is quite nasty relation of Athlon on chip
scheduler and gcc's scheduler that both do good job given the information they
have, but because they do have incomplette information it makes problems.

On FP specific code, there appears to be issues with loop optimizer and strength
reduction (so nothing related to i386 backend itself).  Basically gcc is now
bit stronger on strength reduction as bugs that disabled it's loop optimizer
has been fixed.  Fortran do use -freduce-all-givs switch, that often makes
strength reduction pass to create too many temporaries (and in other testcases
reduce the temporaries) that in turn results in instable perofrmance.

For fortran I recoment playing around with -fno-reduce-all-givs that helps
in testcases I do have.

There are also other problems I am tracking down, but the issue is that gcc's
loop optimizer is too outdated and interferre badly with gcse and other passes.
I believe proper solution is to rewrite it, I made some steps in this direction
but it is more probably 3.2.x issue.

Honza
> 
> How did you check your -march=athlon improvements? Integer blended
> C-code only, or fp-blended code too &, that matters, which source?
> Since i found indeed some fp code, for which gcc-3.0.x performs better
> then gcc-2.95.x ... but it's more the exeception, than the regula.
> {Had to peek at home for examples}
> 
> Peter
> 
> 
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]