<p dir="ltr">1. Was a quick hack that I did sometime in the past, it probably didn&#39;t work fully. Nowadays LLVM does loopification, so its not clear whether there&#39;s any benefit to doing it in cmm (but maybe there&#39;s some other payoff that we can get by doing it earlier).</p>

<p dir="ltr">2. Is Edward Yang&#39;s optimisation pass. Disabled because it is crazy expensive; I wrote CmmSink instead which does most of the same things and a few more. We should remove the code now that we&#39;re not going to use it.</p>

<div class="gmail_quote">On 11 Jul 2013 11:37, &quot;Jan Stolarek&quot; &lt;<a href="mailto:jan.stolarek@p.lodz.pl">jan.stolarek@p.lodz.pl</a>&gt; wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Simon,<br>
<br>
I have two questions about the Cmm pipeline:<br>
<br>
1. I implemented a pass that replaces tail calls with a copy of the entry block we&#39;re calling to. This is slightly extended version of loopification which will hopefully enable further optimisations. Then I noticed that loopification pass used to be implemented (cmm/CmmOpt.hs, line 418) but was commented out (d92bd17ffd8715f77fd49de0fed6e39c8d0ec28b). There&#39;s also a comment: &quot;XXX: revisit if we actually want to do this&quot;. What was the motivation for removing loopification? Is there a reason why we might not want to do it?<br>

<br>
2. There is a module cmm/CmmRewriteAssignments.hs, which is not used at the moment. What was the motivation for disabling that pass?<br>
<br>
Janek<br>
</blockquote></div>