Fun with GHC's optimiser

Simon Marlow
Thu, 2 Nov 2000 04:18:51 -0800

> I am wondering whether there is a particular reason why the
> optimiser doesn't pull the
>   (1)  a = NO_CCS PArray! [wild1 mba#];
> and the
>   (2)  case w of wild3 {
>          I# e# ->

I checked with the before-ghci-branch compiler, and it pulls out (1) but not
(2).  Simon did a fair amount of work on improving the compilation of IO-ish
code and code with lots of newtypes in it after we noticed some problems
like the ones you point out above.  We'll need to investigate whether the
case can be pulled out of the loop too, though.