import StgLint ( lintStgBindings )
import StgStats ( showStgStats )
import StgVarInfo ( setStgVarInfo )
-import UpdAnal ( updateAnalyse )
import SRT ( computeSRTs )
-import CmdLineOpts ( opt_SccGroup,
- opt_StgDoLetNoEscapes, opt_D_verbose_stg2stg,
+import CmdLineOpts ( opt_StgDoLetNoEscapes, opt_D_verbose_stg2stg,
opt_DoStgLinting, opt_D_dump_stg,
StgToDo(..)
)
}
where
- grp_name = case (opt_SccGroup) of
- Just xx -> _PK_ xx
- Nothing -> _PK_ (moduleString module_name) -- default: module name
-
- -------------
stg_linter = if opt_DoStgLinting
then lintStgBindings
else ( \ whodunnit binds -> binds )
case to_do of
StgDoStaticArgs -> panic "STG static argument transformation deleted"
- StgDoUpdateAnalysis ->
- _scc_ "StgUpdAnal"
- -- NB We have to do setStgVarInfo first! (There's one
- -- place free-var info is used) But no let-no-escapes,
- -- because update analysis doesn't care.
- end_pass us2 "UpdAnal" ccs (updateAnalyse (setStgVarInfo False binds))
-
D_stg_stats ->
trace (showStgStats binds)
end_pass us2 "StgStats" ccs binds
_scc_ "ProfMassage"
let
(collected_CCs, binds3)
- = stgMassageForProfiling module_name grp_name us1 binds
+ = stgMassageForProfiling module_name us1 binds
in
end_pass us2 "ProfMassage" collected_CCs binds3