projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
merge GHC HEAD
[ghc-hetmet.git]
/
compiler
/
deSugar
/
Desugar.lhs
diff --git
a/compiler/deSugar/Desugar.lhs
b/compiler/deSugar/Desugar.lhs
index
f219c01
..
b2131ca
100644
(file)
--- a/
compiler/deSugar/Desugar.lhs
+++ b/
compiler/deSugar/Desugar.lhs
@@
-246,6
+246,10
@@
deSugar hsc_env
(vcat [ pprCoreBindings final_pgm
, pprRules rules_for_imps ])
(vcat [ pprCoreBindings final_pgm
, pprRules rules_for_imps ])
+ ; (final_pgm', rules_for_imps') <- if dopt Opt_F_simpleopt_before_flatten dflags
+ then simpleOptPgm dflags final_pgm rules_for_imps
+ else return (final_pgm, rules_for_imps)
+
; ds_binds <- if dopt Opt_F_coqpass dflags
then do { us <- mkSplitUniqSupply '~'
; let do_flatten = dopt Opt_F_flatten dflags
; ds_binds <- if dopt Opt_F_coqpass dflags
then do { us <- mkSplitUniqSupply '~'
; let do_flatten = dopt Opt_F_flatten dflags
@@
-259,7
+263,7
@@
deSugar hsc_env
hetmet_unflatten
hetmet_flattened_id
us
hetmet_unflatten
hetmet_flattened_id
us
- final_pgm
+ final_pgm'
hetmet_PGArrow
hetmet_PGArrow_unit
hetmet_PGArrow_tensor
hetmet_PGArrow
hetmet_PGArrow_unit
hetmet_PGArrow_tensor
@@
-284,7
+288,9
@@
deSugar hsc_env
}
else return final_pgm
}
else return final_pgm
- ; (ds_binds', ds_rules_for_imps) <- simpleOptPgm dflags ds_binds rules_for_imps
+ ; (ds_binds', ds_rules_for_imps) <- if dopt Opt_F_simpleopt_before_flatten dflags
+ then return (ds_binds, rules_for_imps')
+ else simpleOptPgm dflags ds_binds rules_for_imps'
-- The simpleOptPgm gets rid of type
-- bindings plus any stupid dead code
-- The simpleOptPgm gets rid of type
-- bindings plus any stupid dead code
@@
-529,6
+535,8
@@
switching off EnableRewriteRules. See DsExpr.dsExplicitList.
That keeps the desugaring of list comprehensions simple too.
That keeps the desugaring of list comprehensions simple too.
+
+
Nor do we want to warn of conversion identities on the LHS;
the rule is precisly to optimise them:
{-# RULES "fromRational/id" fromRational = id :: Rational -> Rational #-}
Nor do we want to warn of conversion identities on the LHS;
the rule is precisly to optimise them:
{-# RULES "fromRational/id" fromRational = id :: Rational -> Rational #-}
@@
-586,4
+594,4
@@
simplifyBind (Rec (rbs@((b,e):rbs'))) =
else (NonRec b (simplify e)):(simplifyBind $ Rec rbs')
simplifyBinds = concatMap simplifyBind
else (NonRec b (simplify e)):(simplifyBind $ Rec rbs')
simplifyBinds = concatMap simplifyBind
-\end{code}
\ No newline at end of file
+\end{code}