diff options
Diffstat (limited to 'compiler/simplStg/SimplStg.lhs')
-rw-r--r-- | compiler/simplStg/SimplStg.lhs | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/compiler/simplStg/SimplStg.lhs b/compiler/simplStg/SimplStg.lhs index b5b55fc291..635df3ce41 100644 --- a/compiler/simplStg/SimplStg.lhs +++ b/compiler/simplStg/SimplStg.lhs @@ -21,13 +21,15 @@ import CostCentre ( CollectedCCs ) import SCCfinal ( stgMassageForProfiling ) import StgLint ( lintStgBindings ) import StgStats ( showStgStats ) +import UnariseStg ( unarise ) import SRT ( computeSRTs ) import DynFlags ( DynFlags(..), DynFlag(..), dopt, StgToDo(..), getStgToDo ) import Id ( Id ) import Module ( Module ) -import ErrUtils ( doIfSet_dyn, dumpIfSet_dyn, showPass ) +import ErrUtils +import SrcLoc import UniqSupply ( mkSplitUniqSupply, splitUniqSupply ) import Outputable \end{code} @@ -44,17 +46,19 @@ stg2stg dflags module_name binds ; us <- mkSplitUniqSupply 'g' ; doIfSet_dyn dflags Opt_D_verbose_stg2stg - (printDump (text "VERBOSE STG-TO-STG:")) + (log_action dflags dflags SevDump noSrcSpan defaultDumpStyle (text "VERBOSE STG-TO-STG:")) ; (binds', us', ccs) <- end_pass us "Stg2Stg" ([],[],[]) binds -- Do the main business! + ; let (us0, us1) = splitUniqSupply us' ; (processed_binds, _, cost_centres) - <- foldl_mn do_stg_pass (binds', us', ccs) (getStgToDo dflags) + <- foldl_mn do_stg_pass (binds', us0, ccs) (getStgToDo dflags) + ; let un_binds = unarise us1 processed_binds ; let srt_binds - | dopt Opt_TryNewCodeGen dflags = zip processed_binds (repeat []) - | otherwise = computeSRTs processed_binds + | dopt Opt_TryNewCodeGen dflags = zip un_binds (repeat []) + | otherwise = computeSRTs un_binds ; dumpIfSet_dyn dflags Opt_D_dump_stg "STG syntax:" (pprStgBindingsWithSRTs srt_binds) |