Intel Releases V6.0 Compiler Suite 45
Yokaze writes: "Intels C++ and Fortran compilers are now available for Windows and Linux.
The compiler for Linux provides higher compatibility with the GNU C-compiler including compability to the upcoming GCC-3.1 C++-ABI (binary compability) and support for several GNUisms in the syntax (PDF).
To quote Intel: 'The 6.0 release of the
Intel C++ compiler has improved support for
the GNU C language extensions and is now
able to build the Linux kernel with minor
work arounds for both the IA-32 and Itanium
architectures.' Little reminder: Running such a kernel is, of course, not supported by the kernel developers.
Evaluation copies are available for download, but requires previous registration."
Just a Preemptive strike here (Score:2, Funny)
Compiling a Linux kernel for a GNU system without an Intel compiler does not mean that you are running Intel/Linux OS.
Although there is a pretty good chance that whoever reads this is running GNU/Linux Intel.
I love the smell of propaganda in the morning... It smells like sour grapes...
Adopt GCC extensions? (Score:2, Interesting)
It's also interesting that they wrote their own compiler, instead of patching GCC. GCC also works on Windows and 3.1 already has optimizations for different CPU extensions to x86.
They also wrote a new debugger (LDB) specially for Linux, although they claim it implements only a subset of GDB, so what is it for?
And to compile the kernel...who will do that? Is there some server vendor planning to sell Intel servers with such kernels on?
Re:Adopt GCC extensions? (Score:3, Interesting)
Well, that's mostly sad. They cannot extend gcc, because gcc is under GPL -> they'd have to release the source -> many patented & licensed tricks would be exposed.
And to compile the kernel...who will do that? Is there some server vendor planning to sell Intel servers with such kernels on?
Kernel compiling is pretty much 'fire test'. If they can do that, they can do almost anything (save from mplayer
The area Intel compiler will shine is all computing -intensive tasks. Like Maya 4, povray, most math libs and stuff. So there is place and _demand_ for it.
I wonder how this code will perform on Athlon/Hammer-32..
Re:Adopt GCC extensions? (Score:2)
Re:Adopt GCC extensions? (Score:3, Interesting)
Suneel Jain: Is the goal of having a higher-level tree representation
to do inter-procedural optimizations from information written to
disk?
Mark Mitchell: This question comes up a lot. The sticky issue is that
the FSF is morally opposed to doing this. The aim of the FSF is not
to produce the best compiler, but to convince the world that all
software should be free. The concern is that writing out the
representation to disk would allow a vendor to use a GCC front end,
write the IL to disk, read it back in, and graft proprietary code
into GCC in a sneaky way to get around the GPL. This is a very
firmly held position in the FSF.
Re:Adopt GCC extensions? (Score:3, Insightful)
I had to read this twice... quite frankly, it's a pretty stupid reason to avoid those type of optimizations. First, if it's a real worry, add a clause to the gcc license that explicitly prohibits this hack. Second, there's nothing preventing someone from (essentially) doing this anyways - NuMega and Rational both have tools that are capable of injecting arbitrary code into a binary, and there are other projects that are exploring similar modifications (heck, disassemble the binary and run it through an optimizing assembler in order to generate proprietary code.)
BoundsChecker and Purify verus GPL? (Score:2)
You bring up a good point. Is it legal to debug a GPL program using NuMega BoundsChecker or Rational Purify? These programs are modifying (quasi-linking) the GPL binary..
Re:BoundsChecker and Purify verus GPL? (Score:2, Informative)
Good for Intel! (Score:1)
Performance? (Score:3, Interesting)
So that begs the question: apart from issues of reliability, stability, do the Intel compilers make a Linux system perform better or worse than one built with gcc?
Re:Performance? (Score:4, Informative)
Re:Performance? (Score:3, Informative)
Re:Performance? (Score:1)
I'd rather see more work done on increasing the performance of the already excellent code that GCC produces on a wide variety of platforms (The Gnu Compiler Collection doesn't just generate IA32 machine code, btw, there's Alpha, ARM, M68K, AMD's version of IA-64 and a hell of a lot more...). I for my part don't want to use a proprietary compiler that makes use of secret, undocumented chip specific tweaks to eke out another 10% of performance on chips made by a specific manufacturer. I want a compiler that produces robust, dependable and fast code and that compiler is GCC.
Re:Performance? (Score:1)
Re:Performance? (Score:4, Informative)
So that begs the question: apart from issues of reliability, stability, do the Intel compilers make a Linux system perform better or worse than one built with gcc?
The correct answer to that question is: It depends
I've made use of the new Intel compiler on some Linux projects. Initial results showed that it had about the same performance as gcc. But at this point we know a lot about the gcc compiler tuning and not a lot about the characteristics of the Intel compiler, so only time will tell how much performance can be (safetly) wrung out of the Intel compiler.
Cheers,
Toby Haynes
Interesting... (Score:2)
I'm sure it produces faster code on average than gcc, but it'd be interesting to see a gcc/Intel Athlon/P4 showdown.
Re:Interesting... (Score:2)
Re:Interesting... (Score:2)
Ars has a story yesterday relating to Microsoft and AMD getting in bed together and Microsoft insisting that Intel incorporate AMD's x86 64-bit instructions over their own IA64 code. It may all be rumor, but it's intriguiging. Check it out. [arstechnica.com]
You'll have to scroll down to "x86 64-bit support for Windows".
Re:Interesting... (Score:2)
I tried compiling a program I've been working on with gcc-2.96 and version 6 of icc with some cut'n'paste "heavily optimize" flags*.
(The program generates all finite semigroups of a given order, and consists completely of integer operations).
To generate all finite semigroups of order 7 took (under constant system load; result is the average of the system time reported by
~672 seconds with the gcc executable
~553 seconds with the icc executable
Its not an Earth-shattering difference, but its certainly non-trivial.
Again, please don't mistake this for a fair comparison of any sort... its simply a test of both compilers in the only domain that matters a tinker's cuss to me: Will it generate faster exectuables for the program I'm working on at the moment with little to no extra work? Extrapolate at your own risk.
* flags for gcc were:
-O3 -fomit-frame-pointer -mcpu=pentiumpro -march=pentiumpro -malign-functions=4 -funroll-loops -fexpensive-optimizations -fschedule-insns2 -finline-functions -fstrict-aliasing
flags for icc were:
-O3 -tpp6 -xK -ipo -prof_use
(I compiled previously with -prof_gen and generated a profile running semigroups of order 6).
I hope they got it right this time. (Score:3, Informative)
This is OK with Fortran or in Fortran converted to C because Fortran doesn't have aliasing.
This serious bug results in a lot of incorrect code.
It is prudent that you double check the results from the Intel compiler.
Re:I hope they got it right this time. (Score:3, Informative)
The Intel compiler has been known to ignore possible pointer-aliasing (variable accessed directly and also accessed via a pointer).
Its not the only compiler that has problems with pointer aliasing. Optimizing aliased pointers will give you trouble on lots of platforms - careful reading of the ANSI standard says quite a lot about valid C coding and avoiding aliasing situations.
Cheers,
Toby Haynes
This is nice, but... (Score:1)
Re:This is nice, but... (Score:1, Informative)
Re:This is nice, but... (Score:1)
Re:This is nice, but... (Score:1)
Pretty lame overall. (Score:3, Interesting)
You're missing the point (Score:1)
> Do they quite realize the market advantage of having the Open Source community on their side?
Yeah, I think they realize exactly how much value that has...
Re:Pretty lame overall. (Score:4, Interesting)
This said there is a need for both, ultimate portability and ultimate performance. The intel compilers have been delivering ultimate performance on their architecture for years, look at the difference 10 years ago between the MS compiler (internally developed) and the Watcom compiler (Intel License) guess who's compiler produced significantly faster executables...
Re:Pretty lame overall. (Score:1)
Also, chip vendor compilers aren't necessarily for people to use, but also to show Microsoft or Watcom or Metrowerks or the GCC team how they can write compilers to take advantage of the chip's architecture.
Consider how slow GCC is on other platforms (Score:1)
GCC is a bit slower than the vendors compiler on most other platforms...any benchmarks for us to see?
I'm sure its optimised decently well for x86 however...
what happened to pgcc? (Score:1)
You can get a gratis, unsupported version... (Score:2)
Sadly there's no Windows version of the unsupported offer.
*BSD ? (Score:1)