[project @ 2001-09-26 16:19:28 by simonpj]
[ghc-hetmet.git] / ghc / compiler / simplCore / FloatOut.lhs
index c929be3..7fed6f8 100644 (file)
@@ -13,19 +13,15 @@ module FloatOut ( floatOutwards ) where
 import CoreSyn
 import CoreUtils       ( mkSCC )
 
-import CmdLineOpts     ( opt_D_verbose_core2core, opt_D_dump_simpl_stats )
-import ErrUtils                ( dumpIfSet )
+import CmdLineOpts     ( DynFlags, DynFlag(..) )
+import ErrUtils                ( dumpIfSet_dyn )
 import CostCentre      ( dupifyCC, CostCentre )
-import Id              ( Id, idType )
+import Id              ( Id )
 import VarEnv
-import CoreLint                ( beginPass, endPass )
-import PprCore
+import CoreLint                ( showPass, endPass )
 import SetLevels       ( setLevels,
                          Level(..), tOP_LEVEL, ltMajLvl, ltLvl, isTopLvl
                        )
-import BasicTypes      ( Unused )
-import Type            ( isUnLiftedType )
-import Var             ( TyVar )
 import UniqSupply       ( UniqSupply )
 import List            ( partition )
 import Outputable
@@ -77,31 +73,31 @@ type FloatBinds    = [FloatBind]
 %************************************************************************
 
 \begin{code}
-floatOutwards :: Bool          -- True <=> float lambdas to top level
+floatOutwards :: DynFlags
+             -> Bool           -- True <=> float lambdas to top level
              -> UniqSupply 
              -> [CoreBind] -> IO [CoreBind]
 
-floatOutwards float_lams us pgm
+floatOutwards dflags float_lams us pgm
   = do {
-       beginPass float_msg ;
+       showPass dflags float_msg ;
 
        let { annotated_w_levels = setLevels float_lams pgm us ;
              (fss, binds_s')    = unzip (map floatTopBind annotated_w_levels)
            } ;
 
-       dumpIfSet opt_D_verbose_core2core "Levels added:"
+       dumpIfSet_dyn dflags Opt_D_verbose_core2core "Levels added:"
                  (vcat (map ppr annotated_w_levels));
 
        let { (tlets, ntlets, lams) = get_stats (sum_stats fss) };
 
-       dumpIfSet opt_D_dump_simpl_stats "FloatOut stats:"
+       dumpIfSet_dyn dflags Opt_D_dump_simpl_stats "FloatOut stats:"
                (hcat [ int tlets,  ptext SLIT(" Lets floated to top level; "),
                        int ntlets, ptext SLIT(" Lets floated elsewhere; from "),
                        int lams,   ptext SLIT(" Lambda groups")]);
 
-       endPass float_msg
-               opt_D_verbose_core2core         {- no specific flag for dumping float-out -} 
-               (concat binds_s')
+       endPass dflags float_msg  Opt_D_verbose_core2core (concat binds_s')
+                       {- no specific flag for dumping float-out -} 
     }
   where
     float_msg | float_lams = "Float out (floating lambdas too)"