Announcement

Collapse
No announcement yet.

The Big Features & Improvements Of The GCC 8 Compiler

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • The Big Features & Improvements Of The GCC 8 Compiler

    Phoronix: The Big Features & Improvements Of The GCC 8 Compiler

    The GCC 8 compiler will likely be introduced as stable this week or next in the form of the GCC 8.1 premiere release. Here's a look at the prominent changes for this annual update to the GNU Compiler Collection...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    Frankly, I don't see the improvements as major or big when compared to the advances GCC made in the past. However, I don't see this as something bad, because now it becomes more interesting to see where LLVM stands. GCC certainly has a lot of age to it. It may now only be a question of when, and no longer if, LLVM is going to surpass GCC for good.

    Comment


    • #3
      What about An Early Port Of GCC To AMD's GCN Architecture
      on 22 September 2016
      Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite



      AMD Graphics Core Next

      Similar to traditional CPUs (unlike the predecessors)


      This GCN back-end for GCC is primarily focused on compute capabilities rather than compiling graphics shaders.

      Hopefully we'll see the code mature to the point where it will be found in next year's GCC 8 release.

      Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite



      Comment


      • #4
        Originally posted by sdack View Post
        Frankly, I don't see the improvements as major or big when compared to the advances GCC made in the past. However, I don't see this as something bad, because now it becomes more interesting to see where LLVM stands. GCC certainly has a lot of age to it. It may now only be a question of when, and no longer if, LLVM is going to surpass GCC for good.
        I honestly think LLVM and GCC will remain competitors. The GNU project isn't know for dropping major projects because there is a competitor in town.
        Last edited by WolfpackN64; 30 April 2018, 08:02 AM.

        Comment


        • #5
          Originally posted by WolfpackN64 View Post
          I honestly think LLVM and GCC will remain competitors. The GNU porject isn't know for dropping major projects because there is a competitor in town.
          Nobody wants this and you are literally the first person I see who mentions "dropping gcc" in a comment.

          However, I have seen a few compiler projects in the past that either got abandoned or that were swallowed up by GCC. Competition has always driven GCC forward and now we're seeing a bit of a slow down in development while the competition has been catching up. That's new for me to see even when I've been using gcc since version 1.49.

          Comment


          • #6
            Michael

            "- Intel Cannonlake support albeit it now loos" missing k

            Comment


            • #7
              Originally posted by sdack View Post
              Nobody wants this and you are literally the first person I see who mentions "dropping gcc" in a comment.

              However, I have seen a few compiler projects in the past that either got abandoned or that were swallowed up by GCC. Competition has always driven GCC forward and now we're seeing a bit of a slow down in development while the competition has been catching up. That's new for me to see even when I've been using gcc since version 1.49.
              It that because they've been trying to make GCC more modular - so lots of moving code about to make it more manageable, but fewer features

              Comment


              • #8
                Originally posted by FireBurn View Post
                It that because they've been trying to make GCC more modular - so lots of moving code about to make it more manageable, but fewer features
                I'm not going to make excuses for either GCC or LLVM, but it shows that the competition between the two doesn't just take place on the surface. It's in fact GCC that's doing some catching up to LLVM.
                Last edited by sdack; 30 April 2018, 08:28 AM.

                Comment


                • #9
                  Not mentioned here, but one of the most interesting things are the stated improvements made to PGO (profile guided optimization), it's the optimization with the greatest impact on cpu intensive code in ages, often 10-20% better performance on very cpu bound tasks.

                  Also the improvement to -free-loop-distribution sounds like it could have a noticeable performance impact.

                  Finally, with escape-analysis implemented, gccgo is potentially real competition to the official Go compiler, will be interesting to benchmark them, something Phoronix might consider doing as well.

                  Comment


                  • #10
                    Originally posted by sdack View Post
                    Frankly, I don't see the improvements as major or big when compared to the advances GCC made in the past. However, I don't see this as something bad, because now it becomes more interesting to see where LLVM stands. GCC certainly has a lot of age to it. It may now only be a question of when, and no longer if, LLVM is going to surpass GCC for good.
                    Michael's list is missing some bigger items. More complete list is the official changes page https://gcc.gnu.org/gcc-8/changes.html

                    GCC is not smaller release than in past years - it was quite hard to stabilize it. Among more invasive changes are

                    - early debug info, which hopefully makes LTO production ready (by making debugging possible)
                    - Arm SVE needed quite a lot of reorg of middle-end because for first time the vector size is unknown at compile time
                    - new cost model in x86 backend which leads to quite measurable SPEC benchmark improvements on Zen and Core. Also generic is now better tuned for those rather than Pentium4 and original Hammers

                    shows SPEC2000 scores for past years. It is quite visible how the scores grew up faster last year than in recent history
                    - rewrite of profile handling which lets gcc to detect provably cold sections of code and offload it to cold section and improve maintenance of profile feedback, etc.

                    Those are just out of top of my head, also not meant to be particularly representative. I will try to write something about the lto/ipa/x86 changes this and next week.
                    Last edited by hubicka; 30 April 2018, 10:29 AM.

                    Comment

                    Working...
                    X