import TcHsSyn ( TypecheckedMonoBinds, TypecheckedForeignDecl )
import CoreSyn
import DsMonad
-import DsBinds ( dsMonoBinds )
+import DsBinds ( dsMonoBinds, AutoScc(..) )
import DsForeign ( dsForeigns )
import DsUtils
import DsExpr () -- Forces DsExpr to be compiled; DsBinds only
-- depends on DsExpr.hi-boot.
-import Name ( Module, moduleString )
+import Module ( Module, moduleString )
import Bag ( isEmptyBag, unionBags )
import CmdLineOpts ( opt_SccGroup, opt_SccProfilingOn )
import CoreLint ( beginPass, endPass )
beginPass "Desugar"
-- Do desugaring
let (core_prs, ds_warns1) = initDs us1 global_val_env module_and_group
- (dsMonoBinds opt_SccProfilingOn all_binds [])
+ (dsMonoBinds auto_scc all_binds [])
+ auto_scc | opt_SccProfilingOn = TopLevel
+ | otherwise = NoSccs
ds_binds' = [Rec core_prs]
((fi_binds, fe_binds, h_code, c_code), ds_warns2) =
- initDs us3 global_val_env module_and_group (dsForeigns fo_decls)
+ initDs us3 global_val_env module_and_group (dsForeigns mod_name fo_decls)
ds_binds = fi_binds ++ ds_binds' ++ fe_binds