GCC 4.4.0 has been released. There are many interesting changes, including the merge of the Graphite branch, which is “a new framework for loop optimizations based on a polyhedral intermediate representation”, improved support of the upcoming C++0x standard, and a new register allocator.
The cool stuff here, of course, is C++0x support, and ‘auto’ in particular:
http://gcc.gnu.org/gcc-4.4/cxx0x_status.html
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf
Perhaps this will help C++ adoption among “lazy” coders (hey, everyone is lazy at this time of Python & likes).
So the C family is finally getting type inference? About frickin time. It’s only been available in ML for the last 30 years.
Well, it’s only the trivial kind of type inference (function signatures will still need fully specified types), but it certainly covers the most annoying case (esp. apparent when you use lots of templates).
I’m very impressed by GCC in general and support for C++0x (even though experimental). Good that the developers are keeping up with the development of C++. The C++0x support is the thing that I find most interesting with this release. This and the new optimization features.
The most meaty features in 0x, imho, are concepts and lambda expressions. Alas, how good life would be if g++4.4 supports these two. 4.5, maybe?
Any info on performance? I would like to know how is stacks up against the 4.3.x series and whether it could match llvm-gcc code optimizations.
-Ad
adkilla wrote:
–“Any info on performance? I would like to know how is stacks up against the 4.3.x series and whether it could match llvm-gcc code optimizations.”
Haven’t had a chance to try it yet, but the new graphite loop optimization framework should potentially give some speedups. Personally the ‘-fprofile-correction’ option will help me since I’ve had some problems on certain programs with corrupted profiles. As for the llvm performance, can you point me to any benchmarks which shows gcc versus llvm?
Is there any site that keeps performace comparisions of compilers? Would be interesting to read that I think.
This is the most comprehensive site IMHO for comparisons:
http://shootout.alioth.debian.org/
For gcc (includes gcc-4.4-svn) vs icc:
http://multimedia.cx/eggs/icc-vs-gcc-smackdown-round-3/
-Ad
Thanks for the links adkilla, judging by the (outdated as you said) benchmarks there weren’t much difference between gcc and llvm apart from that weird anomaly on the nbody test where llvm was insanely slow. Here’s hoping there will be an update to this benchmark comparing gcc 4.4 vs llvm 2.5
Also interesting to see in the icc vs gcc smackdown that gcc 4.4 is edging closer to icc.
From that page:
What’s wrong with this picture?
There is some outdated info here:
http://leonardo-m.livejournal.com/73732.html
I am using icc mostly. I only use gcc when I need to interface with Cocoa or use code that is dependent on gcc extensions.
-Ad