Announcement

Collapse
No announcement yet.

LLVM/Clang 3.3 Offers Performance Improvements

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

  • LLVM/Clang 3.3 Offers Performance Improvements

    Phoronix: LLVM/Clang 3.3 Offers Performance Improvements

    Recent compiler testing of the latest LLVM/Clang 3.3 SVN code-base has yielded some significant performance boosts for some common C/C++ benchmarks against LLVM/Clang 3.2...

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

  • #2
    Competition in the compiler space spurs performance improvements in both camps. The masses cheer. And then call Clang not free enough because it uses a permissive license.

    Comment


    • #3
      pretty accurate summary

      Comment


      • #4
        gcc

        Would love to have seen GCC 3.8 thrown in the mix.

        Comment


        • #5
          Did you benchmark using -O0 ?

          The benchmarks above have no optimizations ... what's the point ?

          Comment


          • #6
            Environment Variables...

            Originally posted by nadav View Post
            The benchmarks above have no optimizations ... what's the point ?
            PATH=/home/phoronix/clang33/Release/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
            CFLAGS=-O3 -march=native
            CXXFLAGS=-O3 -march=native

            Comment


            • #7
              Benchmark selection

              Okay, if you are testing O3 then you need to update the caption below the charts. The current captions describe some g++ flags.

              Also, why did you choose these workloads ? I am puzzled by the odd benchmark selection. When you benchmarked the auto-vectorizerd you decided to run some database program, and for this you decided to focus on cryptography (John and Botan). You should standardize your workload set and keep it the same for all of your reviews.

              Comment


              • #8
                Usually the set of tests is the same, but only interesting changes get shown in the articles. For the full set there's usually the openbenchmarking link.

                Comment


                • #9
                  GCC vs Clang Please

                  Last GCC vs Clang (too long ago) had GCC winning most of the time (in ARM?), but the latest gains for Clang are greater than GCC.
                  Mentally, I don't know which is faster now.

                  ARM & AMD64

                  Comment


                  • #10
                    Originally posted by curaga View Post
                    Usually the set of tests is the same, but only interesting changes get shown in the articles. For the full set there's usually the openbenchmarking link.
                    One thing I would like to see, with all these benchmarks, is some analysis of why we are seeing what we are seeing.
                    For example, in the aggressive improvements we have seen, is there reason to believe that the results are
                    - because of the auto-vectorizing? OR
                    - because of AVX (ie the 3.2 vectorizing worked well, just didn't target AVX)? OR
                    - recognition of idioms and automatic use of the Intel crypto instructions from C? OR
                    - polyhedral optimization (automatic refactoring array code for better memory usage --- been demoed for a while, but I don't know if it has been mainlined yet or not)? OR
                    - automatic use of OpenMP? (this has been an ongoing difference between GCC and LLVM, to the extent that many of the benchmarks we have seen are worthless if you want to UNDERSTAND the compilers, as opposed to simply wanting to spout your mouth off). I also don't know if automatic use of OpenMP has made it into mainline LLVM 3.3

                    Point is, with these sorts of details these articles could become so much more valuable.

                    Comment

                    Working...
                    X