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!