X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FsimplCore%2FSimplCore.lhs;h=95bd40b331f233fa8894be652e2d2f08ed51d6a6;hb=27061b5b4008a831eba4784358b040bb1250dcef;hp=0a6c40471744c22e4e61a7a3f43bafcf0bdeeeda;hpb=a33ae68ab331a16fbb6e7d6931d1c38bd8f37a85;p=ghc-hetmet.git diff --git a/compiler/simplCore/SimplCore.lhs b/compiler/simplCore/SimplCore.lhs index 0a6c404..95bd40b 100644 --- a/compiler/simplCore/SimplCore.lhs +++ b/compiler/simplCore/SimplCore.lhs @@ -57,10 +57,12 @@ import StrictAnal ( saBinds ) import CprAnalyse ( cprAnalyse ) #endif import Vectorise ( vectorise ) +import Util import UniqSupply ( UniqSupply, mkSplitUniqSupply, splitUniqSupply ) import IO ( hPutStr, stderr ) import Outputable +import Control.Monad import List ( partition, intersperse ) import Maybes \end{code} @@ -479,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