diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2020-03-20 08:48:47 +0000 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2020-03-29 17:29:30 -0400 |
commit | 54250f2d8de910b094070c1b48f086030df634b1 (patch) | |
tree | e062c160912d97eefbdd21d2ce239fd824089e43 /testsuite/tests/stranal/sigs/T17932.stderr | |
parent | f1a6c73d01912b389e012a0af81a5c2002e82636 (diff) | |
download | haskell-54250f2d8de910b094070c1b48f086030df634b1.tar.gz |
Demand analysis: simplify the demand for a RHS
Ticket #17932 showed that we were using a stupid demand for the RHS
of a let-binding, when the result is a product. This was the result
of a "fix" in 2013, which (happily) turns out to no longer be
necessary.
So I just deleted the code, which simplifies the demand analyser,
and fixes #17932. That in turn uncovered that the anticipation
of worker/wrapper in CPR analysis was inaccurate, hence the logic
that decides whether to unbox an argument in WW was extracted into
a function `wantToUnbox`, now consulted by CPR analysis.
I tried nofib, and got 0.0% perf changes.
All this came up when messing about with !2873 (ticket #17917),
but is idependent of it.
Unfortunately, this patch regresses #4267 and realised that it is now
blocked on #16335.
Diffstat (limited to 'testsuite/tests/stranal/sigs/T17932.stderr')
-rw-r--r-- | testsuite/tests/stranal/sigs/T17932.stderr | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/testsuite/tests/stranal/sigs/T17932.stderr b/testsuite/tests/stranal/sigs/T17932.stderr new file mode 100644 index 0000000000..c086c8cd86 --- /dev/null +++ b/testsuite/tests/stranal/sigs/T17932.stderr @@ -0,0 +1,30 @@ + +==================== Strictness signatures ==================== +T17932.$tc'Options: +T17932.$tc'X: +T17932.$tcOptions: +T17932.$tcX: +T17932.$trModule: +T17932.flags: <S(SS),1*U(1*U,1*U)> + + + +==================== Cpr signatures ==================== +T17932.$tc'Options: m1 +T17932.$tc'X: m1 +T17932.$tcOptions: m1 +T17932.$tcX: m1 +T17932.$trModule: m1 +T17932.flags: + + + +==================== Strictness signatures ==================== +T17932.$tc'Options: +T17932.$tc'X: +T17932.$tcOptions: +T17932.$tcX: +T17932.$trModule: +T17932.flags: <S(SS),1*U(1*U,1*U)> + + |