diff options
author | simonpj@microsoft.com <unknown> | 2008-02-28 11:13:01 +0000 |
---|---|---|
committer | simonpj@microsoft.com <unknown> | 2008-02-28 11:13:01 +0000 |
commit | e618109e7d3f313ea334dd8f53803971fb99e797 (patch) | |
tree | 75fd26f6d32a21e120fb1457c4de1970c9cd6f64 | |
parent | 9d6a760bfa5755a44fc9d44ec0234dc6184ae6d6 (diff) | |
download | haskell-e618109e7d3f313ea334dd8f53803971fb99e797.tar.gz |
Comments only
-rw-r--r-- | compiler/deSugar/DsExpr.lhs | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/compiler/deSugar/DsExpr.lhs b/compiler/deSugar/DsExpr.lhs index 0633717d09..27077eb329 100644 --- a/compiler/deSugar/DsExpr.lhs +++ b/compiler/deSugar/DsExpr.lhs @@ -541,13 +541,18 @@ fruitless allocations. Essentially, whenever we see a list literal If fusion fails to occur then build will get inlined and (since we defined a RULE for foldr (:) []) we will get back exactly the - normal desugaring for an explicit list! However, if it does occur - then we can potentially save quite a bit of allocation (up to 25\% - of the total in some nofib programs!) + normal desugaring for an explicit list. + +This optimisation can be worth a lot: up to 25% of the total +allocation in some nofib programs. Specifically + + Program Size Allocs Runtime CompTime + rewrite +0.0% -26.3% 0.02 -1.8% + ansi -0.3% -13.8% 0.00 +0.0% + lift +0.0% -8.7% 0.00 -2.3% Of course, if rules aren't turned on then there is pretty much no point doing this fancy stuff, and it may even be harmful. - \begin{code} dsExplicitList :: PostTcType -> [LHsExpr Id] -> DsM CoreExpr |