From: simonpj@microsoft.com Date: Tue, 8 Dec 2009 17:54:45 +0000 (+0000) Subject: Make -ddump-simpl-stats a bit more informative by default X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=1baa2b524831211cb66317194216d41325d65f1c;p=ghc-hetmet.git Make -ddump-simpl-stats a bit more informative by default This mades -ddump-simpl-stats print out per-rule and per-id information by default, rather than requiring -dppr-debug. On the whole that is what you want. The -dppr-debug flag now just controls printing of the log. --- diff --git a/compiler/simplCore/SimplMonad.lhs b/compiler/simplCore/SimplMonad.lhs index 39fb718..8a02b17 100644 --- a/compiler/simplCore/SimplMonad.lhs +++ b/compiler/simplCore/SimplMonad.lhs @@ -177,17 +177,22 @@ plusSimplCount :: SimplCount -> SimplCount -> SimplCount \end{code} \begin{code} -data SimplCount = VerySimplZero -- These two are used when - | VerySimplNonZero -- we are only interested in - -- termination info - - | SimplCount { - ticks :: !Int, -- Total ticks - details :: !TickCounts, -- How many of each type - n_log :: !Int, -- N - log1 :: [Tick], -- Last N events; <= opt_HistorySize - log2 :: [Tick] -- Last opt_HistorySize events before that - } +data SimplCount + = VerySimplZero -- These two are used when + | VerySimplNonZero -- we are only interested in + -- termination info + + | SimplCount { + ticks :: !Int, -- Total ticks + details :: !TickCounts, -- How many of each type + + n_log :: !Int, -- N + log1 :: [Tick], -- Last N events; <= opt_HistorySize, + -- most recent first + log2 :: [Tick] -- Last opt_HistorySize events before that + -- Having log1, log2 lets us accumulate the + -- recent history reasonably efficiently + } type TickCounts = FiniteMap Tick Int @@ -267,12 +272,8 @@ pprTickCounts ((tick1,n1):ticks) tot_n = sum [n | (_,n) <- real_these] pprTCDetails :: [(Tick, Int)] -> SDoc -pprTCDetails ticks@((tick,_):_) - | verboseSimplStats || isRuleFired tick +pprTCDetails ticks = nest 4 (vcat [int n <+> pprTickCts tick | (tick,n) <- ticks]) - | otherwise - = empty -pprTCDetails [] = panic "pprTCDetails []" \end{code} %************************************************************************ @@ -306,10 +307,6 @@ data Tick | BottomFound | SimplifierDone -- Ticked at each iteration of the simplifier -isRuleFired :: Tick -> Bool -isRuleFired (RuleFired _) = True -isRuleFired _ = False - instance Outputable Tick where ppr tick = text (tickString tick) <+> pprTickCts tick @@ -380,11 +377,8 @@ pprTickCts _ = empty cmpTick :: Tick -> Tick -> Ordering cmpTick a b = case (tickToTag a `compare` tickToTag b) of GT -> GT - EQ | isRuleFired a || verboseSimplStats -> cmpEqTick a b - | otherwise -> EQ + EQ -> cmpEqTick a b LT -> LT - -- Always distinguish RuleFired, so that the stats - -- can report them even in non-verbose mode cmpEqTick :: Tick -> Tick -> Ordering cmpEqTick (PreInlineUnconditionally a) (PreInlineUnconditionally b) = a `compare` b