Some more questions about Cmm pipeline

Simon Marlow marlowsd at
Thu Jul 11 18:52:49 CEST 2013

1. Was a quick hack that I did sometime in the past, it probably didn't
work fully. Nowadays LLVM does loopification, so its not clear whether
there's any benefit to doing it in cmm (but maybe there's some other payoff
that we can get by doing it earlier).

2. Is Edward Yang'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're not going to use it.
On 11 Jul 2013 11:37, "Jan Stolarek" <jan.stolarek at> wrote:

> Hi Simon,
> I have two questions about the Cmm pipeline:
> 1. I implemented a pass that replaces tail calls with a copy of the entry
> block we'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's also a
> comment: "XXX: revisit if we actually want to do this". What was the
> motivation for removing loopification? Is there a reason why we might not
> want to do it?
> 2. There is a module cmm/CmmRewriteAssignments.hs, which is not used at
> the moment. What was the motivation for disabling that pass?
> Janek
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the ghc-devs mailing list