diff options
author | Simon Peyton Jones <simon.peytonjones@gmail.com> | 2022-01-24 00:55:34 +0000 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2022-01-26 19:47:09 -0500 |
commit | ce488c2bdba764baf3fa5fa880b7865600679620 (patch) | |
tree | 6362c472b9a3f372ccc9df9616f5916d9b126354 /testsuite/tests/ghci.debugger/scripts/all.T | |
parent | a5924b38b0cbe75021e6042b946fe921f2c4afe4 (diff) | |
download | haskell-ce488c2bdba764baf3fa5fa880b7865600679620.tar.gz |
Better occurrence analysis with casts
This patch addresses #20988 by refactoring the way the
occurrence analyser deals with lambdas.
Previously it used collectBinders to split off a group of binders,
and deal with them together. Now I deal with them one at a time
in occAnalLam, which allows me to skip casts easily. See
Note [Occurrence analysis for lambda binders]
about "lambda-groups"
This avoidance of splitting out a list of binders has some good
consequences. Less code, more efficient, and I think, more clear.
The Simplifier needed a similar change, now that lambda-groups
can inlude casts. It turned out that I could simplify the code
here too, in particular elminating the sm_bndrs field of StrictBind.
Simpler, more efficient.
Compile-time metrics improve slightly; here are the ones that are
+/- 0.5% or greater:
Baseline
Test Metric value New value Change
--------------------------------------------------------------------
T11303b(normal) ghc/alloc 40,736,702 40,543,992 -0.5%
T12425(optasm) ghc/alloc 90,443,459 90,034,104 -0.5%
T14683(normal) ghc/alloc 2,991,496,696 2,956,277,288 -1.2%
T16875(normal) ghc/alloc 34,937,866 34,739,328 -0.6%
T17977b(normal) ghc/alloc 37,908,550 37,709,096 -0.5%
T20261(normal) ghc/alloc 621,154,237 618,312,480 -0.5%
T3064(normal) ghc/alloc 190,832,320 189,952,312 -0.5%
T3294(normal) ghc/alloc 1,604,674,178 1,604,608,264 -0.0%
T5321FD(normal) ghc/alloc 270,540,489 251,888,480 -6.9% GOOD
T5321Fun(normal) ghc/alloc 300,707,814 281,856,200 -6.3% GOOD
WWRec(normal) ghc/alloc 588,460,916 585,536,400 -0.5%
geo. mean -0.3%
Metric Decrease:
T5321FD
T5321Fun
Diffstat (limited to 'testsuite/tests/ghci.debugger/scripts/all.T')
0 files changed, 0 insertions, 0 deletions