<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 10/25/2017 12:10 PM, Evgeny
      Astigeevich via llvm-dev wrote:<br>
    </div>
    <blockquote cite="mid:E77435FE-6FA6-4DF9-B495-2F8EEBE0E785@arm.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <meta name="Title" content="">
      <meta name="Keywords" content="">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier",serif;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;
        font-weight:normal;
        font-style:normal;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier",serif;}
span.msoIns
        {mso-style-type:export-only;
        mso-style-name:"";
        text-decoration:underline;
        color:teal;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:595.0pt 842.0pt;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
      <div class="WordSection1">
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">Hi
            Chandler,<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">I
            ran the LNT benchmarks and SPEC2k6.train on AArch64
            Cortex-A57. I used revisions: Clang 316561, LLVM 316563.<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">Options:
            -O3 -mcpu=cortex-a57 -fomit-frame-pointer
            -fexperimental-new-pass-manager<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">Regressions:
            execution time increase<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">LNT<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">MultiSource/Benchmarks/FreeBench/fourinarow/fourinarow                             
            1018.58%</span></p>
      </div>
    </blockquote>
    <br>
    How real is this?<br>
    <br>
     -Hal<br>
    <br>
    <blockquote cite="mid:E77435FE-6FA6-4DF9-B495-2F8EEBE0E785@arm.com"
      type="cite">
      <div class="WordSection1">
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">MultiSource/Benchmarks/Fhourstones/fhourstones                
                                            9.06%<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">MultiSource/Benchmarks/Ptrdist/yacr2/yacr2                          
                                            7.23%<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">MultiSource/Benchmarks/Olden/perimeter/perimeter          
                                            6.87%<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">MultiSource/Benchmarks/MiBench/consumer-typeset/consumer-typeset       
            6.02%<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">MultiSource/Benchmarks/Trimaran/enc-pc1/enc-pc1            
                                            5.59%<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">MultiSource/Benchmarks/ASC_Sequoia/AMGmk/AMGmk    
                                            5.03%<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">SPEC2k6<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">453.povray          
            17.11%<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">482.sphinx3         
            3.44%<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">444.namd            
            2.89%<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">Improvements:
            execution time decrease<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">LNT<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">MultiSource/Benchmarks/BitBench/uudecode/uudecode     
                            -50.90%<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">SingleSource/Benchmarks/Adobe-C++/loop_unroll  
                                            -27.75%<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">SingleSource/Benchmarks/Misc/perlin        
                                                            -21.35%<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">MultiSource/Benchmarks/Olden/em3d/em3d          
                                            -19.12%<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">MultiSource/Benchmarks/tramp3d-v4/tramp3d-v4
                                            -8.58%<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">SingleSource/Benchmarks/McGill/chomp   
                                                            -6.33%<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">MultiSource/Benchmarks/sim/sim
                                                                -5.41%<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">MultiSource/Applications/ClamAV/clamscan             
                                            -3.11%<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">MultiSource/Benchmarks/TSVC/Symbolics-dbl/Symbolics-dbl
                            -2.81%<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">SPEC2k6<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">429.mcf                
            -5.18%<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">473.astar             
            -2.65%<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">400.perlbench    
            -1.90%<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">There
            are also code sizes increases/decreases. The maximum
            increase is 18.98%. The maximum decrease is 25.65%.<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">Thanks,<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US">Evgeny
            Astigeevich<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <div style="border:none;border-top:solid #B5C4DF
          1.0pt;padding:3.0pt 0in 0in 0in">
          <p class="MsoNormal"><b><span
                style="font-size:12.0pt;color:black">From: </span></b><span
              style="font-size:12.0pt;color:black">llvm-dev
              <a class="moz-txt-link-rfc2396E" href="mailto:llvm-dev-bounces@lists.llvm.org"><llvm-dev-bounces@lists.llvm.org></a> on behalf of
              Chandler Carruth via llvm-dev
              <a class="moz-txt-link-rfc2396E" href="mailto:llvm-dev@lists.llvm.org"><llvm-dev@lists.llvm.org></a><br>
              <b>Reply-To: </b>Chandler Carruth
              <a class="moz-txt-link-rfc2396E" href="mailto:chandlerc@gmail.com"><chandlerc@gmail.com></a><br>
              <b>Date: </b>Wednesday, 18 October 2017 at 07:51<br>
              <b>To: </b>llvm-dev <a class="moz-txt-link-rfc2396E" href="mailto:llvm-dev@lists.llvm.org"><llvm-dev@lists.llvm.org></a><br>
              <b>Subject: </b>[llvm-dev] RFC: Switching to the new pass
              manager by default<o:p></o:p></span></p>
        </div>
        <div>
          <p class="MsoNormal"><o:p> </o:p></p>
        </div>
        <div>
          <p class="MsoNormal">Greetings everyone! <o:p></o:p></p>
          <div>
            <p class="MsoNormal"><o:p> </o:p></p>
          </div>
          <div>
            <p class="MsoNormal">The new pass manager is getting
              extremely close to the point where I'm not aware of any
              significant outstanding work needed, and I'd like to see
              what else would be needed to enable it by default. Here
              are the current functionality I'm aware of outstanding:<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal"><o:p> </o:p></p>
          </div>
          <div>
            <p class="MsoNormal">1) Does not do non-trivial loop
              unswitching. Majority of this is in
              <a moz-do-not-send="true"
                href="https://reviews.llvm.org/D34200">https://reviews.llvm.org/D34200</a> but
              will need one or two small follow-ups.<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal"><o:p> </o:p></p>
          </div>
          <div>
            <p class="MsoNormal">2) Currently, sanitizers don't work
              correctly with it. Thanks to the work of others, the
              missing infrastructure has been added and I'll send a
              patch to wire this up this week.<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal"><o:p> </o:p></p>
          </div>
          <div>
            <p class="MsoNormal">3) Missing support for 'optnone'. I've
              been working on this, but the existing testing wasn't as
              thorough as I wanted, so it is going slowly. I've got
              about 1/4 of this implemented and should have patches this
              week or next.<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal"><o:p> </o:p></p>
          </div>
          <div>
            <p class="MsoNormal">4) Missing opt-bisect (or similar)
              facility. This looks pretty trivial to add, but I've not
              even started. If anyone is interested in it, go for it. We
              might even be able to do something simpler using the
              generic debug counters and get equivalent functionality.<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal"><o:p> </o:p></p>
          </div>
          <div>
            <p class="MsoNormal">... that's it?<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal"><o:p> </o:p></p>
          </div>
          <div>
            <p class="MsoNormal">Optimization quality / run-time
              performance:<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal">- We've been using it at Google
              extensively and are very happy with the optimization
              quality. Benchmarks look *very* good here.<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal">- More data from other users would be
              important.<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal">- You can try it out with
              `-fexperimental-new-pass-manager` to Clang<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal"><o:p> </o:p></p>
          </div>
          <div>
            <p class="MsoNormal">Compile-time performance:<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal">- Sometimes *much* better due to cached
              analyses.<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal">- Sometimes worse, typically due to
              more / different inlining in turn running main pipeline
              (GVN + InstCombine) more times or over more code.<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal">- Overall somewhat a wash, but the
              increased compile times typically due to the optimizer
              "trying" harder, so not too concerning on our end.<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal">- Again, more feedback from other users
              good: `-fexperimental-new-pass-manager` to Clang<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal"><o:p> </o:p></p>
          </div>
          <div>
            <p class="MsoNormal">Once the four missing things land, I'll
              also happily work on collecting some of the basics on the
              test-suite and CTMark. But I suspect more "in the wild"
              data would really be useful here given the significance of
              the change.<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal"><o:p> </o:p></p>
          </div>
          <div>
            <p class="MsoNormal">Thoughts? What else (beyond the four
              items above and feedback on run-time and compile-time)
              would folks like to see?<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal"><o:p> </o:p></p>
          </div>
          <div>
            <p class="MsoNormal">Once this happens, I'll also be
              preparing some batch, mechanical updates to the test suite
              to primarily use the new pass manager. Also there is lots
              of documentation updates that will be needed here.<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal"><o:p> </o:p></p>
          </div>
          <div>
            <p class="MsoNormal">-Chandler<o:p></o:p></p>
          </div>
          <div>
            <p class="MsoNormal"><o:p> </o:p></p>
          </div>
          <div>
            <p class="MsoNormal">PS: I'll be sending a note to cfe-dev
              as a "heads up" about this discussion as in some ways, the
              default flip is mostly a Clang default flip. But hopefully
              our doc updates will trigger this being "perceived" as the
              default for other frontends, and I'll try to reach out to
              other major frontends as well (Swift and Rust are on my
              radar, and I've already started talking with Philip Reames
              about their Falcon JIT).<o:p></o:p></p>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
LLVM Developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>
<a class="moz-txt-link-freetext" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a>
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory</pre>
  </body>
</html>