On TechRepublic: Windows 7: Slower to boot than Vista?
BNET Business Network:
BNET
TechRepublic
ZDNet

By Stephen Shankland
Posted on ZDNet News: May 6, 2005 8:39:00 PM

Programmers are working to debug and speed performance of the newly released GCC 4.0, the compiler at the foundation of the open-source and free-software movements.

Lead programmer Mark Mitchell released GCC 4.0 on April 22. It includes a new optimization framework designed to improve the process of translating source code written by humans into binary code a computer understands.

The new version is still very much a work in progress, though, and it will take time for a clear performance advantage to emerge, Mitchell said in an interview. "It's got all this new optimization infrastructure. All that new infrastructure hasn't been as carefully tuned as much as the old one was," Mitchell said.

One of the first rocky moments of the GCC 4.0 debut came with KDE, the graphical interface software widely used on Linux computers. The package wouldn't compile with GCC 4.0, and KDE organizers blacklisted GCC 4.0 for the time being.

The bug that hampered KDE has been fixed now and should be available soon, Mitchell said. "We'll probably do a 4.0.1 refresh release earlier than planned," within a month rather than two months as originally forecast, he said.

GCC is used to produce almost all programs in the free and open-source software movements, so a little improvement or degradation in the compiler can propagate to thousands of projects.

Another rocky patch for GCC 4.0 was a review published this week by programmer and author Scott Ladd. He compared GCC 4.0 to its predecessor, GCC 3.4.3, and found that the new version often took longer to produce code and that the code was bulkier and ran more slowly.

"Is GCC 4.0 better than its predecessors? In terms of raw numbers, the answer is a definite 'no,'" Ladd said after testing the compilers on four software packages. But, he cautioned, "No one should expect a 'point-oh-point-oh' release to deliver the full potential of a product."

Mitchell was more neutral about performance. "As far as I can tell, it's roughly a wash, and I think that's a tremendous achievement," he said. "To rewrite your optimizer top to bottom and not make things substantially worse is a real achievement."

There are other issues besides performance, Mitchell added. GCC 4.0 fixes hundreds of bugs, can produce software for processors that were previously unsupported, and can compile software written in the Fortran 95 programming language, widely used in scientific circles.

Making better use of registers
One improvement Mitchell hopes to introduce in GCC 4.2 will change how software stores data in precious processor resources called registers. Widely used 32-bit x86 chips such as Intel's Pentium have a scarce supply of registers, but newer 64-bit versions double the number, making x86 chips more like other processor families such as IBM's Power or Intel's Itanium.

But choosing which data to store in registers is a complicated task that only gets more complicated when there are more registers to choose from.

On 32-bit x86 chips, the constrained number of registers means the data must be constantly exchanged with data stored in a computer's slower but larger main memory. But as the number of registers increases, software can run faster if it keeps the right data in the registers, Mitchell said.

"Your program decides which data gets put in at what point. If it doesn't put the right data in, it has to move data back and forth between memory more than it should," Mitchell said. "We call that 'spills and fills,' and it can really interfere with performance."

SponsoredWhite Papers, Webcasts, and Downloads

  • Talkback
  • Most Recent of 22 Talkback(s)
Those are only issues for *YOU*...
"...and I won't want any part of it near my kernel."

I can assure you that there are plenty of other people who wouldn't mind too much.

"Besides, the bulkiness of a common driv... (Read the rest)
Posted by: figgle Posted on: 05/09/05 You are currently: a Guest | | Terms of Use
Great to have the best and brightest working on the compiler.  DonnieBoy | 05/06/05
Another thing, we need binary compatibility accross distributions/kernels  DonnieBoy | 05/06/05
One would think that there would be a way ...  George Mitchell | 05/06/05
The problem is venders have to supply 10 or so drivers.  DonnieBoy | 05/06/05
And I'm telling you that the answer is a wrapper  George Mitchell | 05/07/05
Only if you go lowest common denominator  Knorthern Knight | 05/06/05
This is true but  hipparchus2000 | 05/07/05
Kind of like the idea behind NDISwrapper  Hugh Jass | 05/07/05
Let's put the REAL issues on the table  toomuchgreeatea@... | 05/07/05
Those are only issues for *YOU*...  figgle | 05/09/05
I'd rather have a slow driver than none at all...  figgle | 05/09/05
Binary compatibility...  Henry Miller | 05/07/05
This guy must be a newbie in Linux  toomuchgreeatea@... | 05/07/05
If you care about optimizations  balsover | 05/07/05
Improving Optimization in GCC.  mobrien_12@... | 05/07/05
No it is not a waste of time  balsover | 05/08/05
GCC can specialize . . .  CobraA1 | 05/08/05
GCC tries to specialize  balsover | 05/08/05
CobraA1, you just got spanked.  No_Ax_to_Grind | 05/08/05
What optimisations?  Richard Flude | 05/08/05
Interesting Linux win over Windows ...  George Mitchell | 05/07/05
More of a IBM over Dell story  balsover | 05/08/05

What do you think?

advertisement
Premier Vendor Content Whitepapers, webcasts & resources from our Power Center Sponsors
The best support in the Linux business
If Linux is going to power your mission-critical applications, you'd better have the best support known to business. Novell was rated the top provider of Linux technical support.
Learn more >>
Microsoft Dynamics CRM Online - Free Six-Month Trial for Eligible Organizations
Microsoft Dynamics CRM Online provides fast online access, simple contact management and better sales performance for a low monthly cost - the best value on the market today.
Learn more about the free, six-month trial offer>>
The best support in the Linux business
If Linux is going to power your mission-critical applications, you'd better have the best support known to business. Novell was rated the top provider of Linux technical support.
Learn more >>
Learn more about tools to grow your business
The Business Essentials Guide provides you useful tools and templates to help grow your business and save you time with automated shipping solutions.
Save time with the UPS Business Essentials Guide
Reduce risk. Reduce complexity. Increase reliability.
A simplified IT environment isn't just less complex. It's also more reliable. Standardize on a single Linux platform with SUSE Linux Enterprise from Novell, and get the world's most interoperable Linux
Learn more >>
Keep Up With The Latest In Document Management with The DocuMentor.
Doc delivers the scoop on today's enterprise content management, printer maintenance, and all other issues related to document management. It's the DocuMentor Blog.
Learn more >>

White Papers, Webcasts, and Downloads

Meet Doc