, undefined
, undefined
, undefined
+ , undefined
+ , undefined
))
_ -> do
(binds_cvr,ds_hpc_info, modBreaks)
; hetmet_pga_applyr <- if dopt Opt_F_coqpass dflags then dsLookupGlobalId hetmet_pga_applyr_name else return undefined
; hetmet_pga_curryl <- if dopt Opt_F_coqpass dflags then dsLookupGlobalId hetmet_pga_curryl_name else return undefined
; hetmet_pga_curryr <- if dopt Opt_F_coqpass dflags then dsLookupGlobalId hetmet_pga_curryr_name else return undefined
+ ; hetmet_pga_loopl <- if dopt Opt_F_coqpass dflags then dsLookupGlobalId hetmet_pga_loopl_name else return undefined
+ ; hetmet_pga_loopr <- if dopt Opt_F_coqpass dflags then dsLookupGlobalId hetmet_pga_loopr_name else return undefined
; let hpc_init
| opt_Hpc = hpcInitCode mod ds_hpc_info
| otherwise = empty
, hetmet_pga_applyr
, hetmet_pga_curryl
, hetmet_pga_curryr
+ , hetmet_pga_loopl
+ , hetmet_pga_loopr
) }
; case mb_res of {
, hetmet_pga_applyl
, hetmet_pga_applyr
, hetmet_pga_curryl
- , hetmet_pga_curryr) -> do
+ , hetmet_pga_curryr
+ , hetmet_pga_loopl
+ , hetmet_pga_loopr
+ ) -> do
{ -- Add export flags to bindings
keep_alive <- readIORef keep_var
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!
hetmet_pga_applyl
hetmet_pga_applyr
hetmet_pga_curryl
- hetmet_pga_curryr)
+ hetmet_pga_curryr
+ hetmet_pga_loopl
+ hetmet_pga_loopr
+ )
}
else return final_pgm