1. 14 Aug, 2006 5 commits
    • simonpj@microsoft.com's avatar
      Be more conservative about duplicating continuations · da107045
      simonpj@microsoft.com authored
      Roman found that GHC was duplicating continuations that arose (essentially)
      from uses of 'seq', or strict constructors.  This fixes the problem;
      see the comments mkDupableCont (the Select case with a single alternative).
      
      I'm a little concerned that this may also miss useful case-of-case
      tranformations, so I'd like to know if anyone finds that this patch
      makes performance worse.
      
      To make it a bit more gung-ho, one could check for all the binders
      being dead, before choosing this new, conservative alternative.
      
      da107045
    • simonpj@microsoft.com's avatar
      Inline into tail-called constructor args · 098d99aa
      simonpj@microsoft.com authored
      Consider
      	x = case y of { True -> (p,q); ... }
      
      The occurrence analyser was marking p,q as 'Many', because they args
      of a constructor in an RhsCtxt.  But actually they aren't in a RhsCtxt,
      and in this case it's better to inline.
      098d99aa
    • simonpj@microsoft.com's avatar
      Improve exprIsCheap · 25ce05f7
      simonpj@microsoft.com authored
      exprIsCheap is meant to return True iff it's ok to push the expression
      inside a lambda.  But the previous version would return True of a nested
      construtor application like (1:2:3:[]), which isn't right.
      
      This patch re-factors the code somewhat, and fixes the bug.
      25ce05f7
    • bringert@cs.chalmers.se's avatar
      674100ec
    • simonpj@microsoft.com's avatar
      Improve error message in TcHsType · ef10d0a7
      simonpj@microsoft.com authored
      Fixes Trac #863.
      Test is tcfail162
      ef10d0a7
  2. 11 Aug, 2006 14 commits
  3. 10 Aug, 2006 15 commits
  4. 09 Aug, 2006 6 commits