• Simon Peyton Jones's avatar
    Improvements to demand analysis · d77501cd
    Simon Peyton Jones authored
    This patch collects a few improvements triggered by Trac #15696,
    and fixing Trac #16029
    
    * Stop making toCleanDmd behave specially for unlifted types.
      This special case was the cause of stupid behaviour in Trac
      #16029.  And to my joy I discovered the let/app invariant
      rendered it unnecessary.  (Maybe the special case pre-dated
      the let/app invariant.)
    
      Result: less special-case handling in the compiler, and
      better perf for the compiled code.
    
    * In WwLib.mkWWstr_one, treat seqDmd like U(AAA).  It was not
      being so treated before, which again led to stupid code.
    
    * Update and improve Notes
    
    There are .stderr test wibbles because we get slightly different
    strictness signatures for an argumment of unlifted type:
        <L,U> rather than <S,U>        for Int#
        <S,U> rather than <S(S),U(U)>  for Int
    d77501cd
Code owners : Simon Peyton Jones
DmdAnal.hs 58.1 KB