[Git][ghc/ghc][wip/T21851-rule-win] 3 commits: Demand: Format Call SubDemands `Cn(sd)` as `C(n,sd)` (#22231)
Simon Peyton Jones (@simonpj)
gitlab at gitlab.haskell.org
Fri Sep 30 07:45:59 UTC 2022
Simon Peyton Jones pushed to branch wip/T21851-rule-win at Glasgow Haskell Compiler / GHC
Commits:
5a535172 by Sebastian Graf at 2022-09-29T17:04:20+02:00
Demand: Format Call SubDemands `Cn(sd)` as `C(n,sd)` (#22231)
Justification in #22231. Short form: In a demand like `1C1(C1(L))`
it was too easy to confuse which `1` belongs to which `C`. Now
that should be more obvious.
Fixes #22231
- - - - -
ea0083bf by Bryan Richter at 2022-09-29T15:48:38-04:00
Revert "ci: enable parallel compression for xz"
Combined wxth XZ_OPT=9, this blew the memory capacity of CI runners.
This reverts commit a5f9c35f5831ef5108e87813a96eac62803852ab.
- - - - -
7b9ad44f by Simon Peyton Jones at 2022-09-30T08:48:08+01:00
Make rewrite rules "win" over inlining
If a rewrite rule and a rewrite rule compete in the simplifier, this
patch makes sure that the rewrite rule "win". That is, in general
a bit fragile, but it's a huge help when making specialisation work
reliably, as #21851 and #22097 showed.
The change is fairly straightforwad, and documented in
Note [Rewrite rules and inlining]
in GHC.Core.Opt.Simplify.Iteration.
Compile-times change, with (sadly) a 0.5% upward trend.
But the payoff (more reliable specialisation) is large.
Metrics: compile_time/bytes allocated
-------------------------------------
Metrics: compile_time/bytes allocated
-----------------------------------------------
T10421(normal) +4.4% BAD
T10421a(normal) +6.1%
T10547(normal) +1.8%
T11195(normal) +1.2%
T11303b(normal) +1.2%
T11822(normal) +1.0%
T13253(normal) +1.7%
T15304(normal) -1.3%
T16577(normal) +3.3% BAD
T17516(normal) +2.4%
T17977b(normal) +1.2%
T5837(normal) +1.6%
T8095(normal) -1.2%
T9198(normal) +1.1%
T9961(normal) +2.8% BAD
hard_hole_fits(normal) +1.0%
geo. mean +0.5%
minimum -1.7%
maximum +6.1%
Metric Increase:
T10421
T16577
T9961
- - - - -
30 changed files:
- .gitlab/ci.sh
- compiler/GHC/Core/Opt/Arity.hs
- compiler/GHC/Core/Opt/DmdAnal.hs
- compiler/GHC/Core/Opt/OccurAnal.hs
- compiler/GHC/Core/Opt/Simplify/Iteration.hs
- compiler/GHC/Core/Opt/Simplify/Utils.hs
- compiler/GHC/Core/Opt/WorkWrap.hs
- compiler/GHC/Types/Basic.hs
- compiler/GHC/Types/Demand.hs
- compiler/GHC/Utils/Monad.hs
- docs/users_guide/using-optimisation.rst
- testsuite/tests/arityanal/should_compile/Arity01.stderr
- testsuite/tests/arityanal/should_compile/Arity02.stderr
- testsuite/tests/arityanal/should_compile/Arity04.stderr
- testsuite/tests/arityanal/should_compile/Arity05.stderr
- testsuite/tests/arityanal/should_compile/Arity06.stderr
- testsuite/tests/arityanal/should_compile/Arity08.stderr
- testsuite/tests/arityanal/should_compile/Arity11.stderr
- testsuite/tests/arityanal/should_compile/Arity14.stderr
- testsuite/tests/arityanal/should_compile/Arity15.stderr
- testsuite/tests/arityanal/should_compile/Arity16.stderr
- testsuite/tests/determinism/determ004/determ004.hs
- testsuite/tests/lib/integer/Makefile
- testsuite/tests/simplCore/should_compile/OpaqueNoSpecialise.stderr
- testsuite/tests/simplCore/should_compile/T13156.hs
- testsuite/tests/simplCore/should_compile/T14152.stderr
- testsuite/tests/simplCore/should_compile/T14152a.stderr
- testsuite/tests/simplCore/should_compile/T18013.stderr
- testsuite/tests/simplCore/should_compile/T18355.stderr
- testsuite/tests/simplCore/should_compile/T19890.stderr
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/683c166b191bdea248e9eb069be3a748eb97aad4...7b9ad44f42207a7d4ce388c945437f5856609401
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/683c166b191bdea248e9eb069be3a748eb97aad4...7b9ad44f42207a7d4ce388c945437f5856609401
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/20220930/f20ff06b/attachment-0001.html>
More information about the ghc-commits
mailing list