From: simonmar Date: Thu, 26 Jul 2001 10:06:22 +0000 (+0000) Subject: [project @ 2001-07-26 10:06:22 by simonmar] X-Git-Tag: Approximately_9120_patches~1402 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=2d11beb698945ebfe472885def09fefa2f0d423e;p=ghc-hetmet.git [project @ 2001-07-26 10:06:22 by simonmar] Fix from Simon P.J. (committing over the phone :-) Add missing case in lub: lub Eval (Seq k Defer ds) = Lazy previously lub of Eval and Defer would have defaulted to Eval, which was overoptimistic. --- diff --git a/ghc/compiler/stranal/DmdAnal.lhs b/ghc/compiler/stranal/DmdAnal.lhs index 0aeea0d..f7cef99 100644 --- a/ghc/compiler/stranal/DmdAnal.lhs +++ b/ghc/compiler/stranal/DmdAnal.lhs @@ -627,10 +627,11 @@ lub Abs Abs = Abs lub Abs (Seq k _ ds) = Seq k Defer ds -- Very important ('radicals' example) lub Abs d = Lazy -lub Eval Abs = Lazy -lub Eval Lazy = Lazy -lub Eval (Seq k Now ds) = Seq Keep Now ds -lub Eval d = Eval +lub Eval Abs = Lazy +lub Eval Lazy = Lazy +lub Eval (Seq k Now ds) = Seq Keep Now ds +lub Eval (Seq k Defer ds) = Lazy +lub Eval d = Eval lub (Call d1) (Call d2) = Call (lub d1 d2)