desugar: do not bother simplifying if we are doing simpleopt-before-flatten
authorAdam Megacz <megacz@cs.berkeley.edu>
Tue, 31 May 2011 22:04:01 +0000 (15:04 -0700)
committerAdam Megacz <megacz@cs.berkeley.edu>
Tue, 31 May 2011 22:04:01 +0000 (15:04 -0700)
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_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!
        -- 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!