FIX #2197: an update frame might point to an IND_OLDGEN
[ghc-hetmet.git] / compiler / simplCore / SimplCore.lhs
index fc5b903..95bd40b 100644 (file)
@@ -57,11 +57,13 @@ import StrictAnal   ( saBinds )
 import CprAnalyse       ( cprAnalyse )
 #endif
 import Vectorise        ( vectorise )
+import Util
 
 import UniqSupply      ( UniqSupply, mkSplitUniqSupply, splitUniqSupply )
 import IO              ( hPutStr, stderr )
 import Outputable
-import List            ( partition )
+import Control.Monad
+import List            ( partition, intersperse )
 import Maybes
 \end{code}
 
@@ -463,8 +465,11 @@ simplifyPgm mode switches hsc_env us imp_rule_base guts
   where
     dflags        = hsc_dflags hsc_env
     phase_info    = case mode of
-                         SimplGently  -> "gentle"
-                         SimplPhase n -> show n
+                         SimplGently     -> "gentle"
+                         SimplPhase n ss -> shows n
+                                           . showString " ["
+                                           . showString (concat $ intersperse "," ss)
+                                           $ "]"
 
     dump_phase     = shouldDumpSimplPhase dflags mode
                   
@@ -476,17 +481,13 @@ simplifyPgm mode switches hsc_env us imp_rule_base guts
        -- about to begin, with '1' for the first
       | iteration_no > max_iterations  -- Stop if we've run out of iterations
       = do {
-#ifdef DEBUG
-           if  max_iterations > 2 then
-               hPutStr stderr ("NOTE: Simplifier still going after " ++ 
+           when (debugIsOn && (max_iterations > 2)) $
+                   hPutStr stderr ("NOTE: Simplifier still going after " ++ 
                                show max_iterations ++ 
                                " iterations; bailing out.  Size = " ++ show (coreBindsSize binds) ++ "\n" )
-           else 
-               return ();
-#endif
                -- Subtract 1 from iteration_no to get the
                -- number of iterations we actually completed
-           return ("Simplifier baled out", iteration_no - 1, counts, binds)
+           ; return ("Simplifier bailed out", iteration_no - 1, counts, binds)
        }
 
       -- Try and force thunks off the binds; significantly reduces