X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2FdeSugar%2FDesugar.lhs;h=0e7c0324ce9bd6456a8d042dd224d40432729231;hp=f219c019796f0cd52ab11b7f7db237a8f12dd827;hb=16b9e80dc14db24509f051f294b5b51943285090;hpb=4564ccb752ff2dd28176ff1b567b8475fdb8b403 diff --git a/compiler/deSugar/Desugar.lhs b/compiler/deSugar/Desugar.lhs index f219c01..0e7c032 100644 --- 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 ]) + ; (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 @@ -259,7 +263,7 @@ deSugar hsc_env hetmet_unflatten hetmet_flattened_id us - final_pgm + final_pgm' hetmet_PGArrow hetmet_PGArrow_unit hetmet_PGArrow_tensor @@ -284,7 +288,9 @@ deSugar hsc_env } 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