\section[SimplStg]{Driver for simplifying @STG@ programs}
\begin{code}
+{-# OPTIONS_GHC -w #-}
+-- The above warning supression flag is a temporary kludge.
+-- While working on this module you are encouraged to remove it and fix
+-- any warnings in the module. See
+-- http://hackage.haskell.org/trac/ghc/wiki/WorkingConventions#Warnings
+-- for details
+
module SimplStg ( stg2stg ) where
#include "HsVersions.h"
import StgStats ( showStgStats )
import SRT ( computeSRTs )
-import Packages ( HomeModules )
import DynFlags ( DynFlags(..), DynFlag(..), dopt, StgToDo(..),
getStgToDo )
import Id ( Id )
\begin{code}
stg2stg :: DynFlags -- includes spec of what stg-to-stg passes to do
- -> HomeModules
-> Module -- module name (profiling only)
-> [StgBinding] -- input...
-> IO ( [(StgBinding,[(Id,[Id])])] -- output program...
, CollectedCCs) -- cost centre information (declared and used)
-stg2stg dflags pkg_deps module_name binds
+stg2stg dflags module_name binds
= do { showPass dflags "Stg2Stg"
; us <- mkSplitUniqSupply 'g'
{-# SCC "ProfMassage" #-}
let
(collected_CCs, binds3)
- = stgMassageForProfiling pkg_deps module_name us1 binds
+ = stgMassageForProfiling this_pkg module_name us1 binds
+ this_pkg = thisPackage dflags
in
end_pass us2 "ProfMassage" collected_CCs binds3