Thank you both for explanations. I will try to clean up the code of Cmm 
pipeline a little bit.

Janek

----- Oryginalna wiadomość -----
Od: "Simon Marlow" <[email protected]>
Do: "Jan Stolarek" <[email protected]>
DW: [email protected]
Wysłane: czwartek, 11 lipiec 2013 17:52:49
Temat: Re: Some more questions about Cmm pipeline



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" < [email protected] > 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 

_______________________________________________
ghc-devs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/ghc-devs

Reply via email to