Performance patches

Simon Peyton-Jones simonpj at microsoft.com
Wed Oct 27 16:00:08 EDT 2010


These patches can be held for 7.0.2 I think.  They are just performance related and need more testing.

Simon


Wed Oct 27 11:42:35 PDT 2010  simonpj at microsoft.com<mailto:simonpj at microsoft.com>

  * Buglet in tcIface, now that nested binders can have pragmas



  This fix ties the knot for recursive groups properly



    M ./compiler/iface/TcIface.lhs -23 +25


Wed Oct 27 11:56:30 PDT 2010  simonpj at microsoft.com<mailto:simonpj at microsoft.com>

  * Yet another go at CoreArity



  Amazingly, there were still Wrong Things in the arity analysis,

  exposed by my fiddling with eta expansion.



  I simplified the code, clarified the comments, added more examples,

  and tidied it all up.  I hope it's better this time.



    M ./compiler/coreSyn/CoreArity.lhs -72 +107



Wed Oct 27 12:37:29 PDT 2010  simonpj at microsoft.com<mailto:simonpj at microsoft.com>

  * Two signficant changes to the simplifier



  1. Do eta-expansion at let-bindings, not lambdas.

     I have wanted to do this for a long time.

     See Note [Eta-expanding at let bindings] in SimplUtils



  2. Simplify the rather subtle way in which InlineRules (the

     template captured by an INLINE pragma) was simplified.

     Now, these templates are always simplified in "gentle"

     mode only, and only INLINE things inline inside them.



     See Note Note [Gentle mode], Note [Inlining in gentle mode]

     and Note [RULEs enabled in SimplGently] in SimplUtils



    M ./compiler/basicTypes/BasicTypes.lhs -7 +12

    M ./compiler/simplCore/SimplEnv.lhs -1 +3

    M ./compiler/simplCore/SimplUtils.lhs -191 +239

    M ./compiler/simplCore/Simplify.lhs -59 +55

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/cvs-ghc/attachments/20101027/a370a4cd/attachment.html


More information about the Cvs-ghc mailing list