\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"
where
stg_linter = if dopt Opt_DoStgLinting dflags
then lintStgBindings
- else ( \ whodunnit binds -> binds )
+ else ( \ _whodunnit binds -> binds )
-------------------------------------------
do_stg_pass (binds, us, ccs) to_do
{-# SCC "ProfMassage" #-}
let
(collected_CCs, binds3)
- = stgMassageForProfiling this_pkg module_name us1 binds
+ = stgMassageForProfiling dflags this_pkg module_name us1 binds
this_pkg = thisPackage dflags
in
end_pass us2 "ProfMassage" collected_CCs binds3
-- add to description of what's happened (reverse order)
-- here so it can be inlined...
-foldl_mn f z [] = return z
+foldl_mn :: (b -> a -> IO b) -> b -> [a] -> IO b
+foldl_mn _ z [] = return z
foldl_mn f z (x:xs) = f z x >>= \ zz ->
foldl_mn f zz xs
\end{code}