Understanding core2core optimisation pipeline

Jan Stolarek jan.stolarek at p.lodz.pl
Fri Oct 31 08:48:23 UTC 2014

Thanks guys. I've read the wiki page about demand analysis and things start to make a bit more 
sense now.

> If you're looking at super-recent code, that could be Joachim Breitner's
> work. He's exposed the one-shot stuff at the Haskell level with the
> experimental magic oneShot function
I'm looking at recent HEAD. But I'm not sure if we're thinking about the same thing. If you mean 
Joachim's work on call arity then I believe this is only realted to callArityInfo field of 
IdInfo. I'm interested in the oneShotInfo field of IdInfo.

>I recall mention of interface files. Jan, would your question #2 be
> addressed by that information being imported from interface files?
No, I don't think that's the answer. I mean I imagine that when we import things from interface 
files we get this information. But I'm interested in how this information is generated when we 
compile things in the current module.

One more question about reading the demand analysis results:

  Str=DmdType <S,1*U>

Here the argument is demanded once. But what if I have:

  Str=DmdType <S,U>

Does the lack of `1*` imply that the argument is used many times?


More information about the ghc-devs mailing list