[commit: ghc] new-demand: fixes (4301723)
Ilya Sergey
ilya at galois.com
Sat Jul 14 02:20:54 CEST 2012
Repository : ssh://darcs.haskell.org//srv/darcs/ghc
On branch : new-demand
http://hackage.haskell.org/trac/ghc/changeset/430172316ca8b49c679f91cbede8190406d70911
>---------------------------------------------------------------
commit 430172316ca8b49c679f91cbede8190406d70911
Author: Ilya Sergey <Ilya.Sergey at cs.kuleuven.be>
Date: Sat Jul 14 01:20:44 2012 +0100
fixes
>---------------------------------------------------------------
compiler/simplCore/SimplCore.lhs | 5 ++++-
compiler/stranal/NewDmdAnal.lhs | 5 ++---
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/compiler/simplCore/SimplCore.lhs b/compiler/simplCore/SimplCore.lhs
index edb9aff..dc47b4a 100644
--- a/compiler/simplCore/SimplCore.lhs
+++ b/compiler/simplCore/SimplCore.lhs
@@ -198,7 +198,10 @@ getCoreToDo dflags
])
-- so far, do nothing
- new_demand_phases = CoreDoNewStrictness
+ new_demand_phases = (CoreDoPasses [
+ CoreDoNewStrictness,
+ CoreDoPrintCore
+ ])
core_todo =
if opt_level == 0 then
diff --git a/compiler/stranal/NewDmdAnal.lhs b/compiler/stranal/NewDmdAnal.lhs
index ce45c64..bee7a93 100644
--- a/compiler/stranal/NewDmdAnal.lhs
+++ b/compiler/stranal/NewDmdAnal.lhs
@@ -112,11 +112,10 @@ dmdAnalTopBind sigs (Rec pairs)
\begin{code}
dmdAnal :: AnalEnv -> Demand -> CoreExpr -> (DmdType, CoreExpr)
-dmdAnal _ dmd e | isTop(dmd)
+dmdAnal _ dmd e | isTop(dmd) || isTop(dmd)
-- top demand does not provide any way to infer something interesting
= (topDmdType, e)
---Ilya: Why?!
dmdAnal env dmd e
| not (isStrictDmd dmd)
= let (res_ty, e') = dmdAnal env evalDmd e
@@ -523,7 +522,7 @@ dmdAnalRhs top_lvl rec_flag env (id, rhs)
-- in which case we should not complain.
mkSigTy top_lvl rec_flag id rhs rhs_dmd_ty
id' = id `nd_setIdStrictness` sig_ty
- sigs' = extendSigEnv top_lvl (sigEnv env) id' sig_ty
+ sigs' = extendSigEnv top_lvl (sigEnv env) id sig_ty
\end{code}
More information about the Cvs-ghc
mailing list