GCC IMA & general future proposal

David Edelsohn dje@watson.ibm.com
Wed Oct 27 17:02:00 GMT 2004


>>>>> Scott Robert Ladd writes:

Scott> Kenneth Zadeck wrote:
>> I should point out that the intel compiler is a bad example to base 
>> anything on.  It is simply a marketing tool to sell more processors and 
>> as such is designed to make benchmarks run particularly well on intel 
>> hardware.  Anything else is not so good.  Remember that this is the 
>> compiler that generates delibertly bad code to be used when you run on 
>> an amd chip.

Scott> Is Intel's compiler relevant to GCC? Yes, particularly in the sense that 
Scott> without competition, software tends to stagnate. We all demand 
Scott> competition for Microsoft; it seems only fair that the GCC community set 
Scott> a calm and intelligent example of competition.

Scott> Certainly Intel's compilers are marketing tools -- but they also produce 
Scott> code that is faster than GCC for Real World(tm) applications, not just 
Scott> benchmarks. The BBC's Dirac video codec, for example, runs 10-15% faster 
Scott> when compiled with Intel's compiler.

	That is not the point of Ken's comment.  The issue is not whether
ICC produces faster, production code, but Intel's intended market and how
they expect customers to use ICC.

	You could counter Ken's comments by saying that Intel and ICC will
train compiler customers to expect different behavior from the compiler
when building an application (moving most of the compilation time to the
link stage).  This is not a question about performance benefit from and
importance of IMA, which will produce better code using either method.

	It would help if we could stay focussed on the issue about the IMA
design being questioned: how much work to do during the initial
compilation and how much to do at link time.

	Ken has made some very good and important technical and customer
experience points about doing more work during the initial compilation.  I
am firmly in that camp.  There has not been much disagreement about that
in the replies that I have seen.

>> It detects the cpu model and refuses to use any vector instructions even 
>> though it knows the amd chips have them.  As such, they have guaranteed 
>> that no one will use the compiler for anything except benchmarking.

Scott> Incorrect. I know many people who use Intel's compiler for production 
Scott> code, especially in the high-performance and Fortran communities.

Scott> Yes, I'm frustrated that Intel's EM64T compiler won't generate code that 
Scott> runs on my AMD Opterons. However, given the realities of the 
Scott> marketplace, I can't get angry at Intel for not supporting their 
Scott> competitor's hardware.

Scott> GCC's greatest strengths are its portability and openness. That does not 
Scott> mean we should not generate the finest possible code on individual 
Scott> platforms.

	Again, that is not the point of Ken's comment.  Intel isn't the
only vendor of x86 processors.  Because of ICC's behavior, ISVs and
programmers who distribute code for generic x86 installations cannot and
will not use ICC.  ICC is fine if one only has Intel-based systems and
wants to compile one's own applications or one wants to compile
applications only for Intel-based systems.

	The behavior limits ICC's usefulness as a general x86 compiler
and, thereby, limits it's usefulness for comparison.  It does not make ICC
irrelevant and Ken never implied that, but it does decrease ICC's market
and, therefore, it's importance for comparison.

	ICC is targeted at a very specific, niche market of Intel-only
users that may be less representative of the compile-time behavior that
most customer want and would use.

>> The 
>> ibm compiler is a better model.  This is the compiler that is used to 
>> develop all ibm applications.

Scott> You may be correct. But most people do not have access to the IBM 
Scott> compiler, since it is not (to the best of my knowledge) available for 
Scott> non-commercial use. Anyone can download Intel's compilers and explore 
Scott> them, which is why it gets more consideration.

	It depends what customer base you are trying to target.  ICC may
have more people playing with it, but that does not mean that it has
greater use among customers who want and need these types of high-end IMA
features.

	Also, IBM compilers are available for free trial.

David



More information about the Gcc mailing list