<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
      charset=windows-1252">
  </head>
  <body>
    <p>Thanks for surfacing this again.  </p>
    <p><br>
    </p>
    <p>My take here is that this is due to the vast difference in
      difficulty between implementing something which works on some
      examples, and something which works on all examples.  :)  You
      mention the heuristic problem - which several of these passes have
      in spades - but there's also a large number of latent correctness
      bugs in the various off-by-default passes.  The work to get these
      enabled isn't infinite, but it's also not small.  To make
      substantial progress, you'd need to find someone willing to put
      substantial (months+) of effort into stabilization.  <br>
    </p>
    <p><br>
    </p>
    <p>As an aside, SimpleLoopUnswitch is enabled by default in the new
      pass manager.  InductiveRangeCheckElimination (e.g. iteration set
      splitting), also deserves to be on this list.</p>
    <p><br>
    </p>
    <p>Philip<br>
    </p>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 4/12/21 8:56 AM, Sjoerd Meijer via
      llvm-dev wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:DB6PR0801MB19901B4364EF785DE1B1AE89FC709@DB6PR0801MB1990.eurprd08.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <style type="text/css" style="display:none;">P {margin-top:0;margin-bottom:0;}</style>
      <div style="font-family: Calibri, Arial, Helvetica, sans-serif;
        font-size: 12pt; color: rgb(0, 0, 0);">
        Just wanted to share an observation of something I realised last
        week. <span style="color: rgb(0, 0, 0); font-family: Calibri,
          Arial, Helvetica, sans-serif; font-size: 12pt; background:
          var(--white);">We have quite a few passes that are disable by
          default. Just looking at the loop passes, then all of these
          are off by default:</span></div>
      <div style="font-family: Calibri, Arial, Helvetica, sans-serif;
        font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div style="font-family: Calibri, Arial, Helvetica, sans-serif;
        font-size: 12pt; color: rgb(0, 0, 0);">
        LoopDistribute
        <div>LoopFlatten</div>
        <div>LoopInterchange</div>
        <div>LoopReroll</div>
        <div>LoopUnrollAndJam</div>
        <div>LoopVersioningLICM</div>
        SimpleLoopUnswitch<br>
      </div>
      <div style="font-family: Calibri, Arial, Helvetica, sans-serif;
        font-size: 12pt; color: rgb(0, 0, 0);">
        <br>
      </div>
      <div style="font-family: Calibri, Arial, Helvetica, sans-serif;
        font-size: 12pt; color: rgb(0, 0, 0);">
        Some are probably more specific for a use-case and it's just
        good to have certain transformations in our toolbox, but I guess
        what I want to say is that it looks like there are opportunities
        to get more of these on by default, although I appreciate of
        course that will involve a bit of work. For example,  <span
          style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
          Helvetica, sans-serif; font-size: 12pt; background:
          var(--white);">LoopFlatten (mea culpa) needs a correctness
          fix, but other than that perhaps not difficult to get enabled.
          Not sure if LoopReroll is just a benchmark special, but from a
          quick look that also needs a correctness fix. Interchange and
          UnrollAndJam would for example be really interesting to get on
          by default, but not sure if tricky cost modelling business
          prevents that at the moment. LoopDistribute seems to be
          getting some TLC (D99596), and don't know much about the
          others.</span></div>
      <div style="font-family: Calibri, Arial, Helvetica, sans-serif;
        font-size: 12pt; color: rgb(0, 0, 0);">
        <span style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
          Helvetica, sans-serif; font-size: 12pt; background:
          var(--white);"><br>
        </span></div>
      <div style="font-family: Calibri, Arial, Helvetica, sans-serif;
        font-size: 12pt; color: rgb(0, 0, 0);">
        <span style="color: rgb(0, 0, 0); font-family: Calibri, Arial,
          Helvetica, sans-serif; font-size: 12pt; background:
          var(--white);">(Apologies if this has been discussed in the
          Loop Opt WG, I couldn't find anything after a quick look)</span></div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-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="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a>
</pre>
    </blockquote>
  </body>
</html>