Page 1 of 2 12 LastLast
Results 1 to 10 of 17

Thread: GCC 4.5 Steps Closer To Release

  1. #1
    Join Date
    Jan 2007
    Posts
    15,649

    Default GCC 4.5 Steps Closer To Release

    Phoronix: GCC 4.5 Steps Closer To Release

    Novell's Richard Guenther has issued a GCC 4.5 status report this morning as yesterday this next major version of the GNU Compiler Collection had left "Stage 3" and is now entering a period in which only regression fixes and documentation work will take place.The first GCC 4.5 release candidate will be made once there are no longer any P1 regressions remaining. As of this morning, of the P1 regressions there were 26, 93 regressions of P2 priority, and then just four P3 regressions...

    http://www.phoronix.com/vr.php?view=Nzc2MQ

  2. #2
    Join Date
    Mar 2009
    Posts
    18

    Default

    What's is comming new to 4.5 release?

  3. #3
    Join Date
    Mar 2009
    Location
    Hellas
    Posts
    1,118

    Default

    I hope better optimizations...

  4. #4
    Join Date
    Nov 2007
    Location
    Die trolls, die!
    Posts
    525

    Default

    Quote Originally Posted by Raine View Post
    What's is comming new to 4.5 release?
    I'd say the most important changes are the new link time optimizer, which will allow better interprocedural optimization, support for the Atom as target and the usual C++0x improvements (lambda, yay!).

    http://gcc.gnu.org/gcc-4.5/changes.html

  5. #5
    Join Date
    Mar 2009
    Posts
    18

    Default

    Thank you so much!

  6. #6
    Join Date
    Nov 2007
    Posts
    1,353

    Default

    I understand that graphite has been improved quite a bit in version.....

    Correct me if I'm wrong, but my understanding of graphite is it takes code written in C or C++ and runs it through a complex algorithm. Which finds areas of that code that have no dependencies on each other and can safely run simultaneously. Then assigns them threads so that the kernels scheduler can execute them on multiple cpu cores at the same time.

    Do I understand this correctly? Does this mean we can now get multi-core acceleration of single threaded code?

    EDIT: If so, then it looks like a software version of ATi's Ultra Threaded Dispatch Processor as seen here. But made for a scale of processor as seen here.

    EDIT2: Also if so, what's the limit to parallelism? How far will it scale? 2 threads? How much parallelism can you actually get out of single threaded code written in C? And can it extract further parallelism out of well written multi-threaded code?
    Last edited by duby229; 12-02-2009 at 07:52 PM.

  7. #7
    Join Date
    Oct 2008
    Posts
    3,246

    Default

    Hmm, I should really do some research but I'm too lazy so I'll just tell you what I think I remember about graphite.

    Which is that it's not really about creating threads like that, but instead fully utilizing SIMD hardware.

    So if you have a for-loop which does stuff to an array, instead of just trying to optimize the loop as much as possible graphite would recognize that it could replace that with some SSE code instead and do it in much fewer instructions. Of course it gets very complicated because they have to get it working with complicated code that has dependencies, and other types of code than just for-loops, but I think that's the general idea.

  8. #8
    Join Date
    Nov 2007
    Location
    Die trolls, die!
    Posts
    525

    Default

    Quote Originally Posted by smitty3268 View Post
    Which is that it's not really about creating threads like that, but instead fully utilizing SIMD hardware.
    Actually, both, and even more. Graphite is a new code representation for loop optimizations, allowing to find better opportunities to rearrange loops for autovectorization (SIMD), parallelization (threaded loops), and also for better cache behaviour (nested loops rearranged to have a smaller, tighter inner loop that can fit right into the cache).

  9. #9
    Join Date
    Mar 2009
    Location
    Hellas
    Posts
    1,118

    Default

    Could someone explain in simple words if this -flto thing is goig to offer better performance to applications?

  10. #10
    Join Date
    Oct 2009
    Posts
    845

    Default

    Quote Originally Posted by Apopas View Post
    Could someone explain in simple words if this -flto thing is goig to offer better performance to applications?
    Don't know if there's simple words for it. But basically it means that instead of the compiler looking at all the object files as single entities, it allows the compiler to look at all the object files that make up a project as one big program which can help alot when the compiler needs to determine when to inline, reduce duplicate funcionality, eliminate dead code etc. The speed improvements can be very good (of course depending on program), an example of this would be sqlite with their amalgamation approach where all code files are merged into a single one and then compiled giving 5-10% improvement.

    And yes really looking forward to the new graphite implementation, the previous one in 4.4 was missing alot (as seen here http://gcc.gnu.org/wiki/Graphite/4.5) and I believe it has alot of potential.

    Apart from that I've noticed that PGO (profile guided optimization) is slightly improved aswell when I've tried the weekly snapshots. All in all GCC 4.5 is shaping up to be a great release.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •