projects
/
ghc-hetmet.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
4f56755
)
Fix simplifier statistics
author
simonpj@microsoft.com
<unknown>
Thu, 9 Sep 2010 08:54:41 +0000
(08:54 +0000)
committer
simonpj@microsoft.com
<unknown>
Thu, 9 Sep 2010 08:54:41 +0000
(08:54 +0000)
compiler/simplCore/SimplCore.lhs
patch
|
blob
|
history
diff --git
a/compiler/simplCore/SimplCore.lhs
b/compiler/simplCore/SimplCore.lhs
index
dd0422b
..
2a41a0e
100644
(file)
--- a/
compiler/simplCore/SimplCore.lhs
+++ b/
compiler/simplCore/SimplCore.lhs
@@
-496,8
+496,9
@@
simplifyPgmIO pass@(CoreDoSimplify mode max_iterations switches)
-- Subtract 1 from iteration_no to get the
-- number of iterations we actually completed
-- Subtract 1 from iteration_no to get the
-- number of iterations we actually completed
- return ("Simplifier baled out", iteration_no - 1, total_counts,
- guts { mg_binds = binds, mg_rules = rules })
+ return ( "Simplifier baled out", iteration_no - 1
+ , totalise counts_so_far
+ , guts { mg_binds = binds, mg_rules = rules } )
-- Try and force thunks off the binds; significantly reduces
-- space usage, especially with -O. JRS, 000620.
-- Try and force thunks off the binds; significantly reduces
-- space usage, especially with -O. JRS, 000620.
@@
-542,8
+543,9
@@
simplifyPgmIO pass@(CoreDoSimplify mode max_iterations switches)
-- Stop if nothing happened; don't dump output
if isZeroSimplCount counts1 then
-- Stop if nothing happened; don't dump output
if isZeroSimplCount counts1 then
- return ("Simplifier reached fixed point", iteration_no, total_counts,
- guts { mg_binds = binds1, mg_rules = rules1 })
+ return ( "Simplifier reached fixed point", iteration_no
+ , totalise (counts1 : counts_so_far) -- Include "free" ticks
+ , guts { mg_binds = binds1, mg_rules = rules1 } )
else do {
-- Short out indirections
-- We do this *after* at least one run of the simplifier
else do {
-- Short out indirections
-- We do this *after* at least one run of the simplifier
@@
-565,8
+567,9
@@
simplifyPgmIO pass@(CoreDoSimplify mode max_iterations switches)
(us1, us2) = splitUniqSupply us
-- Remember the counts_so_far are reversed
(us1, us2) = splitUniqSupply us
-- Remember the counts_so_far are reversed
- total_counts = foldr (\c acc -> acc `plusSimplCount` c)
- (zeroSimplCount dflags) counts_so_far
+ totalise :: [SimplCount] -> SimplCount
+ totalise = foldr (\c acc -> acc `plusSimplCount` c)
+ (zeroSimplCount dflags)
-------------------
end_iteration :: DynFlags -> CoreToDo -> Int
-------------------
end_iteration :: DynFlags -> CoreToDo -> Int