<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>