X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FsimplCore%2FCSE.lhs;h=11eec3e684b6d64214c55eb561adc646ffd3e2ca;hb=de905f504a3e129e2c4a1906d7e0a26e36cd6c4b;hp=e7dd2175235cf3e5adeea63940bd039d4af7cba2;hpb=1ee8a6f6cf3c06e3651438720333612a70348091;p=ghc-hetmet.git diff --git a/compiler/simplCore/CSE.lhs b/compiler/simplCore/CSE.lhs index e7dd217..11eec3e 100644 --- a/compiler/simplCore/CSE.lhs +++ b/compiler/simplCore/CSE.lhs @@ -19,6 +19,7 @@ import CoreSyn import VarEnv import CoreLint ( showPass, endPass ) import Outputable +import StaticFlags ( opt_PprStyle_Debug ) import BasicTypes ( isAlwaysActive ) import Util ( mapAccumL, lengthExceeds ) import UniqFM @@ -314,11 +315,14 @@ addCSEnvItem env expr expr' | exprIsBig expr = env extendCSEnv (CS cs in_scope sub) expr expr' = CS (addToUFM_C combine cs hash [(expr, expr')]) in_scope sub where - hash = hashExpr expr - combine old new = WARN( result `lengthExceeds` 4, text "extendCSEnv: long list:" <+> ppr result ) - result - where - result = new ++ old + hash = hashExpr expr + combine old new + = WARN( result `lengthExceeds` 4, short_msg $$ nest 2 long_msg ) result + where + result = new ++ old + short_msg = ptext SLIT("extendCSEnv: long list, length") <+> int (length result) + long_msg | opt_PprStyle_Debug = (text "hash code" <+> text (show hash)) $$ ppr result + | otherwise = empty lookupSubst (CS _ _ sub) x = case lookupVarEnv sub x of Just y -> y