<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On May 8, 2020, at 4:40 PM, Josh Stone via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">
  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" class="">
  
  <div class="">
    <div class="moz-cite-prefix">On 4/14/20 1:26 AM, Neil Henning via
      llvm-dev wrote:<br class="">
    </div>
    <blockquote type="cite" cite="mid:CALRoqd1AGvyKpNAnwJUMhdW4pEGTM-pFh0KmmYw1rQc7sKL7zA@mail.gmail.com" class="">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8" class="">
      <div dir="ltr" class="">
        <div class="">Hey list,</div>
        <div class=""><br class="">
        </div>
        <div class="">TL;DR - LLVM 10 is around 7-8% slower than LLVM 9 when
          compiling the same inputs.</div>
        <div class=""><br class="">
        </div>
        [...] concerns from the Rust folks about LLVM 10's slowdowns
        [...]<br class="">
      </div>
    </blockquote><p class="">I'm one of those Rust folks, and in the last few days I've been
      trying to dig into this. I focused on one particular benchmark
      input -- I've attached that IR generated from Rust 1.43.0 for LLVM
      9.0.1. I started running a git bisection to see if anything huge
      jumped out, but it seems to be gradual. Maybe others can take my
      input and find some pattern to the decline.</p></div></div></blockquote><div><br class=""></div><div>Hi Josh,</div><div><br class=""></div><div>On behalf of the “LLVM people”, I’d like to publicly thank you for the this work to make sure that LLVM compile time performance stays acceptable over time.  I think that the Rust community’s diligence in terms of tracking, improving, and publicizing compile time performance has been incredibly valuable.  Thank you,</div><div><br class=""></div><div>-Chris</div><div><br class=""></div><br class=""><blockquote type="cite" class=""><div class=""><div class=""><p class="">My results below are with LLVM compiled from git on Fedora 32
      with its Clang 10. My processor is a Ryzen 7 3800X. The command is
      just "perf stat -r5 bin/llc syn-*.ll". Let me know if I can
      provide more relevant details, but I hope this reproducible
      regardless, so others can investigate.<br class="">
    </p><p class="">When we're tracking rustc performance, we usually focus on the
      instruction count, as it tends to be more stable for comparison.
      Here I'm seeing 5.3% more instructions from 9.x to 10.x, and a
      further 4.8% from 10.x to master -- net 10.4% increase.<br class="">
    </p><p class=""><br class="">
    </p>
    <pre class="">release/9.x (c1a0a213378a458fbea1a5c77b315c7dce08fd05)

 Performance counter stats for 'bin/llc syn-e39d7fb4724c7e07.ll' (5 runs):

          2,563.85 msec task-clock:u              #    0.998 CPUs utilized            ( +-  0.17% )
                 0      context-switches:u        #    0.000 K/sec                  
                 0      cpu-migrations:u          #    0.000 K/sec                  
             8,739      page-faults:u             #    0.003 M/sec                    ( +-  0.07% )
    10,952,672,891      cycles:u                  #    4.272 GHz                      ( +-  0.11% )  (83.32%)
       539,233,453      stalled-cycles-frontend:u #    4.92% frontend cycles idle     ( +-  0.34% )  (83.32%)
     1,066,121,274      stalled-cycles-backend:u  #    9.73% backend cycles idle      ( +-  0.53% )  (83.33%)
    17,760,500,419      instructions:u            #    1.62  insn per cycle         
                                                  #    0.06  stalled cycles per insn  ( +-  0.03% )  (83.34%)
     3,792,956,022      branches:u                # 1479.398 M/sec                    ( +-  0.05% )  (83.35%)
        98,635,111      branch-misses:u           #    2.60% of all branches          ( +-  0.19% )  (83.34%)

           2.56860 +- 0.00447 seconds time elapsed  ( +-  0.17% )


release/10.x (eaae6dfc545000e335e6f89abb9c78818383d7ad)

 Performance counter stats for 'bin/llc syn-e39d7fb4724c7e07.ll' (5 runs):

          2,678.23 msec task-clock:u              #    0.998 CPUs utilized            ( +-  0.36% )
                 0      context-switches:u        #    0.000 K/sec                  
                 0      cpu-migrations:u          #    0.000 K/sec                  
             8,761      page-faults:u             #    0.003 M/sec                    ( +-  0.07% )
    11,427,954,987      cycles:u                  #    4.267 GHz                      ( +-  0.15% )  (83.32%)
       538,556,528      stalled-cycles-frontend:u #    4.71% frontend cycles idle     ( +-  0.20% )  (83.33%)
     1,149,190,672      stalled-cycles-backend:u  #   10.06% backend cycles idle      ( +-  0.55% )  (83.33%)
    18,702,827,148      instructions:u            #    1.64  insn per cycle         
                                                  #    0.06  stalled cycles per insn  ( +-  0.02% )  (83.34%)
     3,988,324,508      branches:u                # 1489.164 M/sec                    ( +-  0.02% )  (83.35%)
       103,988,578      branch-misses:u           #    2.61% of all branches          ( +-  0.11% )  (83.33%)

           2.68326 +- 0.00968 seconds time elapsed  ( +-  0.36% )


master (a1ae9566ea9ce46bf7f2af9ab1253eed05b5b622)

 Performance counter stats for 'bin/llc syn-e39d7fb4724c7e07.ll' (5 runs):

          2,774.12 msec task-clock:u              #    0.998 CPUs utilized            ( +-  0.25% )
                 0      context-switches:u        #    0.000 K/sec                  
                 0      cpu-migrations:u          #    0.000 K/sec                  
             8,957      page-faults:u             #    0.003 M/sec                    ( +-  0.07% )
    11,864,439,510      cycles:u                  #    4.277 GHz                      ( +-  0.17% )  (83.33%)
       546,052,536      stalled-cycles-frontend:u #    4.60% frontend cycles idle     ( +-  0.26% )  (83.33%)
     1,157,735,744      stalled-cycles-backend:u  #    9.76% backend cycles idle      ( +-  0.54% )  (83.33%)
    19,594,536,570      instructions:u            #    1.65  insn per cycle         
                                                  #    0.06  stalled cycles per insn  ( +-  0.03% )  (83.34%)
     4,187,308,178      branches:u                # 1509.418 M/sec                    ( +-  0.06% )  (83.35%)
       105,573,875      branch-misses:u           #    2.52% of all branches          ( +-  0.27% )  (83.34%)

           2.77928 +- 0.00693 seconds time elapsed  ( +-  0.25% )


</pre>
  </div>

<span id="cid:35BEFA6F-C3EA-4CCF-8FE9-A0E024538F15@hsd1.ca.comcast.net."><syn-e39d7fb4724c7e07.ll.xz></span>_______________________________________________<br class="">LLVM Developers mailing list<br class=""><a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a><br class="">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev<br class=""></div></blockquote></div><br class=""></body></html>