Mon Nov  5 14:08:07 PST 2007  [EMAIL PROTECTED]
  * Inline implication constraints
  
  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