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