Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: By the way...

Author: Tom Kerrigan

Date: 01:44:10 06/28/03

Go up one level in this thread


On June 28, 2003 at 00:18:35, Robert Hyatt wrote:

>On June 26, 2003 at 22:50:59, Eugene Nalimov wrote:
>
>>I didn't look at GCC sources, but I looked at sources of some other compilers,
>>and understand x86 and PPC architecture well enough, so I think I know that x86
>>and PPC backends should be vastly different, and each should contain lot of
>>platform-specific and unique code.
>>
>>Thanks,
>>Eugene
>
>I wouldn't disagree.  However, I'd suspect that both are written by the
>same core "group" of people.  Which means they are probably pretty competitive
>with each other in terms of aggressive optimizations.  That means that it is
>unlikely that one processor will get a huge jump on the other due to the
>optimizer gurus for one being far better. (all of that directed toward gcc
>only, of course).

I've never looked at the gcc compiler, but I imagine that it has a pass where it
converts whatever its intermediate format is to native machine code and
optimizes that machine code, e.g., makes sure branch targets are on 16 byte
boundaries for the Athlon, makes sure to use multiplies instead of shifts in
certain situations on the P4, etc. These sorts of optimizations can make or
break the performance of an executable and they're hard enough to keep straight
for one x86 processor, much less every x86 processor AND some completely
different RISC processor (POWER4/PPC970) with rules that are probably just as
complicated, given its "bundling" setup. So unless you have information to the
contrary, I'd suspect that different sets of people work on generating this
final machine code.

As for optimizations carrying over from one architecture to the other, I expect
this is very unlikely given how different the architectures are. If you order
your instructions on the PPC970 to be bundled just right for high performance,
the same ordering is obviously going to have no effect (or probably a
detremental effect) for Pentium 4 performance, because the P4 doesn't even do
bundling at all.

If the same people are doing all of these optimizations for all platforms, what
is the likelyhood that, regardless of how "aggressive" they are, they will
overlook key optimizations for some platforms? Optimizations that would
obviously not be overlooked by somebody who spent all his time writing code for
one specific architecture. Very high, I'd imagine.

-Tom



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.