desugar: do not bother simplifying if we are doing simpleopt-before-flatten
[ghc-hetmet.git] / compiler / deSugar / Desugar.lhs
index 7ba91d9..c8f6390 100644 (file)
@@ -235,7 +235,10 @@ deSugar hsc_env
               final_prs = addExportFlagsAndRules target
                              export_set keep_alive rules_for_locals (fromOL all_prs)
 
-              final_pgm = simplifyBinds $ combineEvBinds ds_ev_binds final_prs
+              final_pgm = let comb = combineEvBinds ds_ev_binds final_prs
+                          in if dopt Opt_F_simpleopt_before_flatten dflags
+                             then comb
+                             else simplifyBinds comb
        -- Notice that we put the whole lot in a big Rec, even the foreign binds
        -- When compiling PrelFloat, which defines data Float = F# Float#
        -- we want F# to be in scope in the foreign marshalling code!