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}
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
-- 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