Sat Dec 15 08:33:15 PST 2007  Ian Lynagh <[EMAIL PROTECTED]>
  * MERGED: Inline implication constraints
  Mon Nov  5 22:08:07 GMT 2007  [EMAIL PROTECTED]
  
    This patch fixes Trac #1643, where Lennart found that GHC was generating
    code with unnecessary dictionaries.  The reason was that we were getting
    an implication constraint floated out of an INLINE (actually an instance
    decl), and the implication constraint therefore wasn't inlined even 
    though it was used only once (but inside the INLINE).  Thus we were 
    getting:
    
          ic = \d -> <stuff>
          foo = _inline_me_ (...ic...)
    
    Then 'foo' gets inlined in lots of places, but 'ic' now looks a bit 
    big.  
    
    But implication constraints should *always* be inlined; they are just
    artefacts of the constraint simplifier.
    
    This patch solves the problem, by adding a WpInline form to the HsWrap
    type. 

    M ./compiler/deSugar/DsBinds.lhs +2
    M ./compiler/hsSyn/HsBinds.lhs +2
    M ./compiler/typecheck/TcHsSyn.lhs -1 +2
    M ./compiler/typecheck/TcSimplify.lhs -3 +20

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

Reply via email to