diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2021-07-02 08:50:16 +0100 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2021-07-19 10:59:38 +0100 |
commit | 5b187575dac64e0a202f0700bdb7a1d1604f9438 (patch) | |
tree | 9f24e24b67c08dfab0e1cf44fda2edb195382889 /.git-ignore-revs | |
parent | 41d6cfc4d36ba93d82f16f9a83ea69f4e02c3810 (diff) | |
download | haskell-5b187575dac64e0a202f0700bdb7a1d1604f9438.tar.gz |
Better sharing of join points (#19996)wip/T19557
This patch, provoked by regressions in the text package
(#19557), improves sharing of join points. This also fixes
the terrible behaviour in #20049.
See Note [Duplicating join points] in GHC.Core.Opt.Simplify.
* In the StrictArg case of mkDupableContWithDmds, don't
use Plan A for data constructors
* In postInlineUnconditionally, don't inline JoinIds
Avoids inlining join $j x = Just x
in case blah of
A -> $j x1
B -> $j x2
C -> $j x3
* In mkDupableStrictBind and mkDupableStrictAlt, create
join points (much) more often: exprIsTrivial rather than
exprIsDupable. This may be much, but we'll see.
Metric Decrease:
T12545
T13253-spj
T13719
T18140
T18282
T18304
T18698a
T18698b
Metric Increase:
T16577
T18923
T9961
Diffstat (limited to '.git-ignore-revs')
0 files changed, 0 insertions, 0 deletions