A Review of GCC 4.0 429
ChaoticCoyote writes "
I've just posted a short review of GCC 4.0, which compares it against GCC 3.4.3 on Opteron and Pentium 4 systems, using LAME, POV-Ray, the Linux kernel, and SciMark2 as benchmarks. My conclusion:
Is GCC 4.0 better than its predecessors? In terms of raw numbers, the answer is a definite "no". I've tried GCC 4.0 on other programs, with similar results to the tests above, and I won't be recompiling my Gentoo systems with GCC 4.0 in the near future. The GCC 3.4 series still has life in it, and the GCC folk have committed to maintaining it. A 3.4.4 update is pending as I write this.
That said, no one should expect a "point-oh-point-oh" release to deliver the full potential of a product, particularly when it comes to a software system with the complexity of GCC. Version 4.0.0 is laying a foundation for the future, and should be seen as a technological step forward with new internal architectures and the addition of Fortran 95. If you compile a great deal of C++, you'll want to investigate GCC 4.0.
Keep an eye on 4.0. Like a baby, we won't really appreciate its value until it's matured a bit.
"
I'll tell you what the problem is... (Score:5, Funny)
Or you could wait to compile 4.0 until the 3.0 branch makes it to 3.9.9, then it will be close enough anyway. YMMV, people say I give out bad advice, go figure...
Re:I'll tell you what the problem is... (Score:3, Interesting)
Re:I'll tell you what the problem is... (Score:4, Funny)
V3-V1~2(V3-V2)
where V1 was used to compile V2, and V2 was used to compile V3.
Re:I'll tell you what the problem is... (Score:3, Interesting)
No, the third run is for finding bugs (Score:3, Interesting)
Re:No, the third run is for finding bugs (Score:5, Informative)
Historically, GCC tends to bring out the worst in compilers. That is why when you build GCC, the system compiler will be used once,
Unlikely but possible. Look for the paper "Reflections on trusting trust" for a beautiful hack involving intentional miscompilations. The author basically changed the compiler so that when "login" was being compiled, the compiler inserted a back door. And when a new compiler was being compiled, the compiler would insert the code to insert the back door and to change the next compiler. And then no matter how much you checked teh source to either login or the compiler, you would never notice the back door.
Re:No, the third run is for finding bugs (Score:4, Informative)
Re:I'll tell you what the problem is... (Score:5, Informative)
Re:I'll tell you what the problem is... (Score:5, Informative)
This was meant as a joke, but for those who took this too seriously: if you have ever tried building GCC yourself, you should know that it always recompiles itself.
A gcc "stage 1" build is gcc compiled with your old compiler. The "stage 2" build is gcc compiled with the compiler created in the previous stage. This is the one that gets installed. The "stage 3" build is optional and verifies that the "stage 2" compiler creates the same output as the previous one.
Re:GCD~? (Score:2)
Okay, I must be a total fucking geek, because at first I thought you had abbreviated "Dijkstra" as "Dijk" and left the 'i' out for some reason. Then I wondered why the hell Dijkstra would waste his time compiling code by hand...
Expected (Score:5, Interesting)
Re:Expected (Score:5, Insightful)
Further, on his most reasonable C benchmark (the Linux kernel), he only records compile time and binary size, but no performance. I call it the most reasonable benchmark because it has thousands of contributors and covers a wide range of code purposes and individual coding habits - and yet, performance is omitted.
In short, I wouldn't trust this benchmark. Probably the best benchmark would be to build a whole Gentoo system with both, with identical configurations, and check build times and performances
Re:Expected (Score:5, Funny)
Users?? (Score:5, Funny)
Re:Expected (Score:3, Funny)
Re:Expected (Score:5, Informative)
As nice as C is, a lot of the improvements in GCC seemed to have been targetted at improving its handling of C++ code. I'd particularly like to know how it fairs with respect to modern C++ style code - massively templated stuff with STL, Boost, traits and policies, smart pointers, lots of small inlined methods, etc. This test tells me nothing about that, and that's where a lot of development is these days.
Re:Expected (Score:3, Informative)
I call it the most reasonable benchmark because it has thousands of contributors and covers a wide range of code purposes and individual coding habits - and yet, performance is omitted.
As someone who has done some kernel (see this old project [ed.ac.uk]) and other programming, I would probably disagree with this statement. The code you find in the linux kernel is rather different (think concurrency, locking, I/O waiting, message passing) to the code you'd find in a number crunching application (think for loops tha
Re:Expected (Score:5, Interesting)
First off, all of the programs tested are programs that use hand-tooled assembly in the most performance-sensitive code. That has to mean that the compiler is moot in those sections.
A better test would be to compare three things: the hand-optimized assembly under gcc 3 vs the C code (usually there's a configure switch that tells the code to ignore the hand-tuned assembly, and use a C equivalent) under gcc4 vs that same C code under gcc4.
I think you'd see a surprising result, and if the vectorization code is good enough, you should even see a small boost over the hand-tuned assembly (since ALL of the code is being optimized this way, not just critical sections).
Re:Expected (Score:5, Interesting)
The main improvement in GCC 4.0 is implementing Single Static Assignment.
SSA is not an optimization. It is a simplification. If you can assume SSA, then it opens the door to an entire class of optimizations that can help improve your performance without affecting your code's correctness.
That last bit -- optimizing code without affecting correctness -- was a big problem in the days before SSA.
In that regard, SSA is a similar technology to RISC -- it does not speed things up by itself, but it enables speedups for later on.
The lack of SSA is one thing that kept gcc out of the hands of compiler researchers. Now that it does that, academia can start hacking away with gcc, and the delay you expect is the time between implementing SSA and implementing all of the optimizations that really will improve code performance.
Re:Expected (Score:5, Informative)
The McCat compiler from McGill (which is what gcc borrowed the ssa rep from), C-- or the LLVM project all provide a much nicer platform. The internal representation is clearly documented, there are frameworks and examples for writing new passes and most importantly they all allow for whole program compilation.
Until gcc decides to support some of this the project will continue to be ignored by research groups. This might be fine since research compiler work can be fairly ugly and it is just easier to port what works.
Otherwise I agree that the move to ssa form is a critical step for gcc to take and it will enable it to become a "modern" compiler. More emportantly it will enable the inclusion of the large body of compiler work that is based on ssa forms.
Mark
What about... (Score:3, Interesting)
Re:What about... (Score:5, Informative)
That said, remember that the submitter is talking about GCC4 on x86 platforms, and remember that Apple is putting a lot of work into making sure the PowerPC optimizations are as good as possible. Not to mention things like GCC4's auto-vectorization of code to take advantage of the Altivec unit (which has a more noticeable effect than MMXing x86 code).
It would be nice to see some test results for Apple's GCC versions 3 and 4.
Re:What about... (Score:4, Interesting)
Well, I did have a bunch of results for you, but the CRAPPY LAMENESS FILTER won't let me post them. Apparently I have to use less 'junk' characters (of course the CRAPPY PROGRAMMER didn't define what a 'junk' character is in the error message, so that's NO USE WHAT-SO-EVER.)
So, I guess I'll summarise. gcc version 4 is slightly worse than 3.3, and slightly better when the tree-vectorize option is passed and altivec code is generated.
Simon
The performance of compiled code (Score:5, Informative)
Some people spend 10 hours tweaking compiler settings and optimizations to get an extra 5% performance from their code.
Other people spend 2 hours selecting the proper algorithm in the first place and get an extra 500% performance from their code.
To semi-quote The Matrix: One of these endeavors... is intelligent. And one of them is not.
Re:The performance of compiled code (Score:2, Interesting)
That's when you spend 10 hours tweaking compilers settings...
Re:The performance of compiled code (Score:4, Insightful)
If you really, positively need an extra 5% performance, you might as well just buy a computer that's 5% faster.
Re:The performance of compiled code (Score:5, Funny)
You work at Microsoft, right? No? Intel?
Re:The performance of compiled code (Score:5, Insightful)
Re:The performance of compiled code (Score:5, Interesting)
Yes.
You think companies should splash out another million or too on new hardware, just because you use a pissy little machine?
I think that companies should re-evaluate their "need" for an extra 5% performance. Here's an idea -- if you need something 10 minutes faster, why not start the process 10 minutes sooner?
5% just gets lost in the noise. You beef up your system, making it 5% faster... And then some retard in production makes a mistake and sets you back six weeks.
Re:The performance of compiled code (Score:4, Interesting)
I think that companies should re-evaluate their "need" for an extra 5% performance. Here's an idea -- if you need something 10 minutes faster, why not start the process 10 minutes sooner?
In any large organization, the process gets in the way. Some suit decides the product needs a new feature, or needs to ship sooner, or whatever, and this slowly trickles down to the developers who suddenly are put in crunch time where every minute counts. Schedules and deadlines may change daily. People's jobs may be at risk. Shit happens.
Nobody really likes it, but that is sometimes how we arrive at the point where we "need" an extra 5% performance, where we "need" the program to finish ten minutes sooner. Starting earlier is not always an option, usually because you don't know you even have to start *at all* until the last minute.
Re:The performance of compiled code (Score:3, Insightful)
If you're talking about a program written by one person to be run by one person, or written by five people to be run by five people, or a program that will be run a limited number of times or while people are getting coffee, then absolutely you are correct.
But if you're talking about a small group of programmers making an interactive program (including simulations which people wait for the answer to before starting another
Re:The performance of compiled code (Score:2)
If you're dealing with a cluster, chances are you can make improvements significantly larger than 5%.
Re:The performance of compiled code (Score:3, Insightful)
Re:The performance of compiled code (Score:5, Insightful)
KFG
Re:The performance of compiled code (Score:5, Insightful)
Optimizing every single line of code is a complete waste of time, since the 80/20 rule generally applies. Use a profiler to determine where that 20% is.
Re:The performance of compiled code (Score:5, Insightful)
Re:The performance of compiled code (Score:4, Insightful)
How is pointing out that one optimization people crow about is largely ineffective being an asshole?
Re:The performance of compiled code (Score:3, Funny)
Gentoo? Crash? No way, dude. It, like, never crashSegmentation fault.
Re:The performance of compiled code (Score:5, Funny)
Re:The performance of compiled code (Score:3, Funny)
Aramathea. He who is valiant and pure of spirit may find the
Holy Grail in the Castle of Segmentation Fault'.
ARTHUR: What?
MAYNARD: '... the Castle of Segmentation Fault'.
BEDEVERE: What is that?
MAYNARD: He must have crashed while carving it.
LAUNCELOT: Oh, come on!
MAYNARD: Well, that's what it says.
ARTHUR: Look, if he was crashing, he wouldn't bother to send it over the network
'aaggggh'. He'd just print it!
MAYNARD: Well, that's what's his comment
Funny you should say that - a story about sprintf (Score:4, Interesting)
Oh yeah, also, for Quake 1, John Carmack hired Michael Abrash, an assembly language guru, to help out. Well Abrash found that GCC's memcpy() (or whatever it was) was copying byte-by-byte instead of by word (or something, I don't remember) and his reimplementation of that alone, doubled the frame rate!
Just some interesting counter examples to keep in mind
Re:Funny you should say that - a story about sprin (Score:3, Insightful)
Re:The performance of compiled code (Score:3, Insightful)
Re:The performance of compiled code (Score:5, Insightful)
In my real life coding work, the places where algorithm efficiency makes a difference are far outweighed by those places that don't. And of those places that do make a difference, the performance is rarely a critical need. For example, I just coded up some RAMDAC lookup tables, and a difference of algorithm would make a huge difference in efficiency. But this particular routine was triggered by a user event (clicking a button in a config dialog), so that my dogslow but highly readable/understandable algorithm wasn't a bottleneck for anything. In this case tweaking the compiler settings would have given a 5% boost to everything, but a change in algorithm would only have given a 1/10 second boost for an event that would happen approximately once a week or less.
I got your value (Score:4, Funny)
Does this mean I have to wait until it's 18?
Re:I got your value (Score:5, Funny)
Fast KDE compile. (Score:4, Informative)
Re:Fast KDE compile. (Score:4, Informative)
Re:Fast KDE compile. (Score:4, Informative)
GCC bug report
http://lists.kde.org/?l=kde-cvs&m=111451142117674
KDE CVS report
It involves some problem with register allocation. It seems only to miscompile KHTML, and there is already a patch attached to the GCC bug report (although the patch just disables the optimization that is causing the problem, rather than fixing the core problem itself).
The Future? (Score:3, Interesting)
While I know the benefits of Fortran 95 are a big thing, saying it's a technological step forward to incorporate for the first time a 10 year old standard seems a bit ridiculous. When I first saw this article I had to check my calendar to make sure it was May 1st and not April 1st.
Re:The Future? (Score:5, Funny)
Re:The Future? (Score:3, Informative)
Up until now, my PhD work has needed compilers I can't just simply install without high fees, because the academic free license for propriatary compilers still sounds a bit fishy in it's requirements. This is actually a major boost for the Scientific Computing community.
However, lots of people have just NOW started to trust current F95 compilers (lots of academic code are still written in F77). It will be s
We have this thing on Earth, called tact. (Score:4, Funny)
Is that what you say to new parents? :-)
Screenshots? (Score:5, Funny)
Re:Screenshots? (Score:2)
Re:Screenshots? (Score:3, Informative)
Here you go:
bash$ gcc -o test main.c
bash$
Compilation Speed Test by a KDE developer (Score:5, Interesting)
Qt:
-O0 -O2
gcc 3.3.5 23m40 31m38
gcc 3.4.3 22m47 28m45
gcc 4.0.0 13m16 19m23
KDElibs (with --enable-final)
-O0 -O2
gcc 3.3.5 14m44 27m28
gcc 3.4.3 14m49 27m03
gcc 4.0.0 9m54 23m30
KDElibs (without --enable-final)
-O0
gcc 3.3.5 32m56
gcc 3.4.3 32m49
gcc 4.0.0 15m15
I think KDE and Gentoo people will like GCC 4.0
What about windows? (Score:2)
Any info on this? When's the mingw port going to be done? Has anyone tested the unofficial mingw build (forgot the url, sorry)?
fpmath=sse (Score:2)
kettle? black? (Score:2, Insightful)
quote "That said, no one should expect a "point-oh-point-oh" release to deliver the full potential of a product, particularly when it comes to a software system with the complexity of GCC."
I bet no one would dare say that about certain product from Redmond.
Re:kettle? black? (Score:5, Informative)
Re:kettle? black? (Score:3, Informative)
The GCC folks released this with it being well documented that it wasn't going to blow the doors off for everyone in every situation, but instead that this was a major step forward for internals, which should allow them to
Re:kettle? black? (Score:4, Insightful)
I think you're a little mixed up there. When we criticize MS, we're often referring to the release of known buggy and badly implementated software to the general public. Instead the submitter of this article is referring to the "full potential" of the new optimization framework [gnu.org] in GCC-4.0. It will, in theory, allow for much better optimizations to be performed on internal parse tree. But for now many of the CPU models are incomplete or non-existant, or something like that. The full potential of these optimizations will be delivered in a later release, either 4.0.x or 4.1, or perhaps a little of both. And the GCC team wouldn't have released GCC 4.0 with known, serious bugs.
Or perhaps I've just been trolled. Wouldn't be the first time. I see that this is your first comment on slashdot. Welcome. Just don't troll.
Re:kettle? black? (Score:3, Interesting)
Exactly. The goals in releasing software are completely different for GCC and MS.
For GCC, like a lot of open-source products, the idea behind releasing all-new x.0 versions is to get it out there so early adopters will start using it, filing bug reports, etc. It's the same reason the Linux kernel releases ne
The value of a baby (Score:5, Funny)
Seriously, this is why I don't appreciate babies. At least after about 4 or 5 years, they're useful for mild manual labour. Sure they'll complain and cry, but all you gotta do is tie their dishwashing to the number of fish heads they're allotted that week. Works pretty well, I gotta say. Anyway, at least they're not a net productivity drain like babies are.
Anyway, what I mean to say is: from your description, it looks like I'll be staying away from GCC 4 for a while, too. Goddamn babies.
-Laxitive
Kind of a weird review (Score:5, Interesting)
Second, the runtime benchmarks were close enough to be statistically meaningless in most cases. The author concludes with:
My take would have been "in terms of raw numbers, it's not really any better yet." It's close enough to equal (and slower in few enough cases that I'd be willing to accept them), though, that I'd be willing to switch to it if I could do so without having to modify a lot of incompatible code. It's clearly the way of the future, and as long as it's not worse than the current gold standard, why not?
Re:Kind of a weird review (Score:3, Informative)
The ? operator (Score:5, Funny)
Re:The ? operator (Score:3, Interesting)
Re:The ? operator (Score:5, Funny)
That's because they were conflicting with the new gphp front-end.
Re:The ? operator (Score:3, Insightful)
If I ever see a developer do something as stupid as this on a job application, there's no way they will ever get a job working for me.
Having clean, readable code is far, far more important than saving a few minutes in total in a project. Using compiler-specific features is generally frowned upon, but acceptable in cases where there are significant performance or time gains. Using a compiler-specific alias to save yourself a few extra keystrokes at the extreme cost of readability is just being lazy, and not
Re:The ? operator (Score:5, Funny)
In case you were wondering why anyone would want to use a=min(a,b), you really haven't programmed enough. To take a simplistic example, how would you find the largest integer in an array? (Sure, you can just #include , then say *max_element(a,a+N) and be done with it, but let's suppose you don't want to do that...)
Well, the way to do it would be to write a loop like this: I really think it's faster and better to code the last line as largest>?=a[i]. There is less unnecessary clutter.
Oh well. I guess this comment will now lose all its Funny mod points, but what the heck.
No danger (Score:3, Funny)
Oh well. I guess this comment will now lose all its Funny mod points, but what the heck.
To the contray, now it's even funnier.
Re:The ? operator (Score:3, Informative)
we're laughing _with_ you.
Do the new models replace or confuse old ones? (Score:4, Interesting)
I agree that this compiler is a cornerstone of free software.
But it was very frustrating to me to try to port the compiler to a new platform by modifying existing back ends for similar platforms.
After spending a few months on it (m68k in this case), I could not escape the layers of hack upon cruft upon hack upon cruft, that made it extremely difficult to make even fairly superficial mods because everyone seemed to be using the features differently and all the power seemed lost in hacks that made it impossible to do simple things (for me anyway). I am quite familiar with many assemblers and optimizing compilers.
I hope that the new work makes a somewhat-clean break with the old, otherwise, I would fear yet another layer to be hacked and interwoven, with the other ones that were so poorly fit to the back ends.
I suspect that not all backends are the same and perhaps the same experience would not be true for a more-popular target, but it seems to me it shouldn't be that hard to create a model that is more powerful yet more simple. Such would seem to me to be a major step forward and enable much greateer optimization, utilization, maintainability, etc.
-ftree-* (Score:5, Interesting)
If I was him, I'd repeat the tests again enabling the -ftree stuff when building with gcc4.0.0.
Tree-ssa is in there (Score:4, Insightful)
Auto-vectorization, by the way, does not fall into a "obvious optimization wins which perhaps should be enabled at -O3 by default" category. It can bring very big performance benefits in some situations, but it should be used with caution.
Re:-ftree-* (Score:4, Informative)
True, this is the major infrastructure change which justified the "4".
The author of this test didn't seem to notice that this stuff doesn't get enabled in -O2 nor -O3, but does have to be enabled by hand.
No, most tree-ssa optimizers are enabled implicitly at -O2 (they replace quite a few of the old RTL-based optimizers). Only some numerics code can benefit from loop autovectorization (which has to be enabled explicitly; for most source code, it just increases compile time).
non-x86 arch? (Score:3, Interesting)
What about the performance on MIPS? PPC? C'mon, people...enquiring minds want to know!
This is expected, I think (Score:5, Informative)
"Before we get a bunch of complaints about the fact that most binaries generated by GCC 4.0 are only marginally faster (and some a bit slower) than those compiled with 3.4, let me point out a few things that I've gathered from casually browsing the GCC development lists. I'm neither a GCC contributor nor a compiler expert.
Prior to GCC 4.0, the implementation of optimizations was mostly language-specific; there was little or no integration of optimization techniques across all languages. The main goal of the 4.0 release is to roll out a new, unified optimization framework (Tree-SSA), and to begin converting the old, fragmented optimization strategies to the unified framework.
Major improvements to the quality of the generated code aren't expected to arrive until later versions, when GCC contributors will have had a chance to really begin to leverage the new optimization infrastructure instead of just migrating to it.
So, although GCC 4.0 brings fairly dramatic benefits to compilation speed, the speed of generated binaries isn't expected to be markedly better than 3.4; that latter speedup isn't expected until later installments in the 4.x series."
Re:This is expected, I think (Score:3, Informative)
Like a baby (Score:4, Funny)
"Come here son. Did you know your mother and I almost decided to not keep you when you were born? You were just a baby at the time, you didn't seem to have any value. I mean, seriously, what use is there for a baby? I'm glad we didn't make that mistake.
Now go play outside and don't come back before dinner time, and pick up the trash when you leave."
It really does depend on the code (Score:5, Informative)
On that program (on a P4) I got an 11% reduction in runtime using GCC 4 vs. GCC 3.3.5. This was actually a big deal for me work.
The lesson here: You're mileage with GCC 4.0's improvements may vary from the benchmarks, and you might want to try it on your own code.
Any big spoilers in the review? (Score:4, Funny)
"Like a baby..." (Score:5, Funny)
Are you kidding? Babies are worth $15,000-$20,000 easily, even if they're female. Once e-Bay stops being a bunch of pussies and we get some open bidding started, I expect their value to go up even higher.
Once again, we see that the
4.0.0 broke backward compatibility big time (Score:5, Informative)
Recently, a discussion took place on a FreeBSD mailing list wether the project wanted to use GCC 4.0.0 as the system compiler. Some objections where:
If I understood it right, We won't have a GCC 4.0.0 system compiler on FreeBSD anytime soon. Installing the gcc40 port is, of course, always possible.
Re:4.0.0 broke backward compatibility big time (Score:5, Insightful)
Re:4.0.0 broke backward compatibility big time (Score:4, Informative)
"not compiling cleanly" may have been a less-accurate description of the problem.
Re:4.0.0 broke backward compatibility big time (Score:5, Informative)
It should not surprise anyone that the first 0.0 release has some bugs. It's the first release of a compiler with a completely new optimization structure (tree-ssa). I would advise waiting for 4.0.1 for a production-quality release, or go with vendor patches (by making Fedora Core 4 with a 4.0.0 based compiler, Red Hat will probably shake out a few more bugs).
What a crappy review (Score:3, Insightful)
lame uses assembler code for vectorization. One of the new features of gcc 4 is the beginnings of a vectorization model. A good test for gcc 4 would have been to compile some C-only bignum libraries, and Ogg Vorbis! povray is also a good example, but then you need to test more than one specific test-run. Maybe gcc 4 makes radiosity in pov-ray 400% faster at a 2% cost in the rest of the code?
This guy is the Tom's Hardware of Linux reviews, except he doesn't have the annoying ads, and he does not split his lack of content over 30 HTML pages.
The new warnings of gcc 4 have helped me find a bug in my code. That saved me a week. Consider how much faster gcc 4 needs to make pov-ray or lame to save you a week of work!
gcc 4 can now reorder functions according to profile feedback. That should make large C++ projects faster. Also, the ELF visibility should make KDE start much faster. This should have been tested!
Please note that I'm not saying gcc 4 produces faster code. I don't rightly know. I do know it produces smaller code for my project dietlibc [www.fefe.de], where size matters more than speed.
Observations on Apple's GCC4 release (Score:5, Interesting)
I've been working with the GNU GSL on my mac a lot, and I recently updated to Tiger. The first thing I noticed when I recompiled the GSL with Apple's modified GCC4.0 is the significant and noticable speed increase. With this intense math stuff, doing SVD on 300x200 matricies, and it's shocking how much faster it is. I went from 3-5 seconds down to less than one.
I am not going to post any hard numbers because I haven't rigorously compared them yet, but I'll make some formal comparisons this week.
God, this gets old. (Score:4, Insightful)
4.0.0 is a brand new compiler. Lots of techniques in it are brand new. Lots of tweaks and polish can be applied. If you actually take the time to compare 3.4 to 3.0, you'll find that the gap is bigger than 4.0 to 3.4. Furthermore, if you compare 2.9.5 to 3.0, you'll find 2.9.5 is better than 3.0 by a much wider margin than 3.4 is to 4.0.
This is a misunderstanding of the nature of progress. 4.0 is a brand new compiler with brand new internal behaviors. Lots of things are at the It Works stage, instead of the It's Efficient stage. You can't compare a 3-year polished compiler to a 3-week polished compiler; it's utter nonsense.
If you want to compare 4.0 to something, compare it to 3.0, or sit down.
Re:intel compiler (Score:5, Interesting)
Re:intel compiler (Score:3, Insightful)
GCC, on the oth
Re:What the hell? (Score:3, Interesting)
Re:Speed/Performance Benchmarks?? (Score:3, Informative)
Also as he hates to have pointed out his options aren't always optimal.
Quite a few applications are faster with 3.4.3 on a P4 with "-fno-regmove" as well as -O3. My AES for instance goes down from >500 cycles/block to 380 cycles/block on my Prescott P4 with this switch.
380 cycles/block is faster than Intel CC v8.0 with "-O3 -xP -ip" by about 30 cycles/block.
Also the guy pr
Re:Nice analogy... (Score:3, Insightful)
Signed, a parent of three.
Re:Still generating 386 assembly? (Score:5, Informative)
If you build gcc yourself, you can even make them the default by configuring with an appropriate --with-arch option.
Re:moronic review (Score:3, Informative)
I have no clue what you're talking about.
One benchmark *was* C++ (povray), and, in fact, I use KDE as my desktop. It just so happens that most code in a distribution is written in C.
I have quite a bit of heavily-templatized C++ in my library and customer code, but it is either proprietary (under NDA) or unsuitable to timing. As I state in the article, C++ programmers should seriously consider GCC 4.0 for it's imrpoved compile times, if nothing else.
Re:4.0? (Score:3, Informative)
The dicussion about recommended GCC versions of the