[Git][ghc/ghc][wip/T18793] 2 commits: Arity: Record arity types for non-recursive lets

Sebastian Graf gitlab at gitlab.haskell.org
Thu Oct 15 10:41:12 UTC 2020



Sebastian Graf pushed to branch wip/T18793 at Glasgow Haskell Compiler / GHC


Commits:
89d2a1b3 by Sebastian Graf at 2020-10-15T12:41:06+02:00
Arity: Record arity types for non-recursive lets

In #18793, we saw a compelling example which requires us to look at
non-recursive let-bindings during arity analysis and unleash their arity
types at use sites.

After the refactoring in the previous patch, the needed change is quite
simple and very local to `arityType`'s defn for non-recurisve `Let`.

Apart from that, we had to get rid of the second item of
`Note [Dealing with bottoms]`, which was entirely a safety measure and
hindered optimistic fixed-point iteration.

Fixes #18793.

The following metric increases are all caused by this commit and a
result of the fact that we just do more work now:

Metric Increase:
    T3294
    T12545
    T12707

- - - - -
67b8e742 by Sebastian Graf at 2020-10-15T12:41:06+02:00
Testsuite: Add dead arity analysis tests

We didn't seem to test these old tests at all, judging from their
expected output.

- - - - -


30 changed files:

- compiler/GHC/Core/Opt/Arity.hs
- − testsuite/tests/arityanal/Main.hs
- − testsuite/tests/arityanal/Main.stderr
- testsuite/tests/arityanal/Makefile
- − testsuite/tests/arityanal/f0.stderr
- − testsuite/tests/arityanal/f1.stderr
- − testsuite/tests/arityanal/f10.stderr
- − testsuite/tests/arityanal/f11.stderr
- − testsuite/tests/arityanal/f12.stderr
- − testsuite/tests/arityanal/f13.stderr
- − testsuite/tests/arityanal/f14.stderr
- − testsuite/tests/arityanal/f15.stderr
- − testsuite/tests/arityanal/f2.stderr
- − testsuite/tests/arityanal/f3.stderr
- − testsuite/tests/arityanal/f4.stderr
- − testsuite/tests/arityanal/f5.stderr
- − testsuite/tests/arityanal/f6.stderr
- − testsuite/tests/arityanal/f7.stderr
- − testsuite/tests/arityanal/f8.stderr
- − testsuite/tests/arityanal/f9.stderr
- − testsuite/tests/arityanal/prim.stderr
- testsuite/tests/arityanal/f0.hs → testsuite/tests/arityanal/should_compile/Arity00.hs
- + testsuite/tests/arityanal/should_compile/Arity00.stderr
- testsuite/tests/arityanal/f1.hs → testsuite/tests/arityanal/should_compile/Arity01.hs
- + testsuite/tests/arityanal/should_compile/Arity01.stderr
- testsuite/tests/arityanal/f2.hs → testsuite/tests/arityanal/should_compile/Arity02.hs
- + testsuite/tests/arityanal/should_compile/Arity02.stderr
- testsuite/tests/arityanal/f3.hs → testsuite/tests/arityanal/should_compile/Arity03.hs
- + testsuite/tests/arityanal/should_compile/Arity03.stderr
- testsuite/tests/arityanal/f4.hs → testsuite/tests/arityanal/should_compile/Arity04.hs


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/ef3e4b2cb6e2d57951052420fe0bf6ec11011a83...67b8e742724dd1680b1971369d2622f5e6a24e83

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/ef3e4b2cb6e2d57951052420fe0bf6ec11011a83...67b8e742724dd1680b1971369d2622f5e6a24e83
You're receiving this email because of your account on gitlab.haskell.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20201015/03849db6/attachment.html>


More information about the ghc-commits mailing list