<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en">
<head>
<meta content="text/html; charset=US-ASCII" http-equiv="Content-Type">
<title>
GitLab
</title>

<style data-premailer="ignore" type="text/css">
a { color: #1068bf; }
</style>


<style>img {
max-width: 100%; height: auto;
}
body {
font-size: 0.875rem;
}
body {
-webkit-text-shadow: rgba(255,255,255,0.01) 0 0 1px;
}
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", Ubuntu, Cantarell, "Helvetica Neue", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: inherit;
}
</style>
</head>
<body style='font-size: inherit; -webkit-text-shadow: rgba(255,255,255,0.01) 0 0 1px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans", Ubuntu, Cantarell, "Helvetica Neue", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";'>
<div class="content">

<h3 style="margin-top: 20px; margin-bottom: 10px;">
Simon Peyton Jones pushed to branch wip/T21851-rule-win
at <a href="https://gitlab.haskell.org/ghc/ghc" style="color: #1068bf;">Glasgow Haskell Compiler / GHC</a>
</h3>
<h4 style="margin-top: 10px; margin-bottom: 10px;">
Commits:
</h4>
<ul>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/5a535172d13b30c94766751d0bc21a494b8858ed" style="color: #1068bf;">5a535172</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2022-09-29T17:04:20+02:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>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
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ea0083bf56b222579b586c8247031e04c80c15f1" style="color: #1068bf;">ea0083bf</a></strong>
<div>
<span>by Bryan Richter</span>
<i>at 2022-09-29T15:48:38-04:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>Revert "ci: enable parallel compression for xz"

Combined wxth XZ_OPT=9, this blew the memory capacity of CI runners.

This reverts commit a5f9c35f5831ef5108e87813a96eac62803852ab.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/7b9ad44f42207a7d4ce388c945437f5856609401" style="color: #1068bf;">7b9ad44f</a></strong>
<div>
<span>by Simon Peyton Jones</span>
<i>at 2022-09-30T08:48:08+01:00</i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 0.8125rem; color: #303030; position: relative; font-family: "Menlo", "DejaVu Sans Mono", "Liberation Mono", "Consolas", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace; word-break: break-all; word-wrap: break-word; background-color: #fafafa; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dbdbdb;'>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
</pre>
</li>
</ul>
<h4 style="margin-top: 10px; margin-bottom: 10px;">30 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#157f7634c25bc6366cb7c9c9edb48e819dce38db" style="color: #1068bf;">
.gitlab/ci.sh
</a>
</li>
<li class="file-stats">
<a href="#c3967bb9d3e8f5aae2dd111b5a335b48c21c1999" style="color: #1068bf;">
compiler/GHC/Core/Opt/Arity.hs
</a>
</li>
<li class="file-stats">
<a href="#8104fa1b71db6cfc4eb90cd769463d9eb9004619" style="color: #1068bf;">
compiler/GHC/Core/Opt/DmdAnal.hs
</a>
</li>
<li class="file-stats">
<a href="#bac3d5159a5688007de3aa3f5c4e50569677b347" style="color: #1068bf;">
compiler/GHC/Core/Opt/OccurAnal.hs
</a>
</li>
<li class="file-stats">
<a href="#ae6d91a5d028418bbf1431347d659e744e0a3128" style="color: #1068bf;">
compiler/GHC/Core/Opt/Simplify/Iteration.hs
</a>
</li>
<li class="file-stats">
<a href="#48fbb5cdea308650de5756521feb28ec68819b9b" style="color: #1068bf;">
compiler/GHC/Core/Opt/Simplify/Utils.hs
</a>
</li>
<li class="file-stats">
<a href="#5b215b0e109123e4bef5434854f18e2f61c45b88" style="color: #1068bf;">
compiler/GHC/Core/Opt/WorkWrap.hs
</a>
</li>
<li class="file-stats">
<a href="#166e3514d27c63ef7e86af29830d9e8b2a31c8b1" style="color: #1068bf;">
compiler/GHC/Types/Basic.hs
</a>
</li>
<li class="file-stats">
<a href="#d09e98aae6ad2eb59d08eac7894b68c0ab820cda" style="color: #1068bf;">
compiler/GHC/Types/Demand.hs
</a>
</li>
<li class="file-stats">
<a href="#cb4ad425e8ed846dfcc5d3793b08b95f6864e545" style="color: #1068bf;">
compiler/GHC/Utils/Monad.hs
</a>
</li>
<li class="file-stats">
<a href="#2e45f2cd303dd998950a7c8042e796a5b2abd64f" style="color: #1068bf;">
docs/users_guide/using-optimisation.rst
</a>
</li>
<li class="file-stats">
<a href="#46fdea7197af7a69a0a0d1b96b0a0dab860a614b" style="color: #1068bf;">
testsuite/tests/arityanal/should_compile/Arity01.stderr
</a>
</li>
<li class="file-stats">
<a href="#d17dc73d83ae4f8e388a6375f61874dd8423a3d7" style="color: #1068bf;">
testsuite/tests/arityanal/should_compile/Arity02.stderr
</a>
</li>
<li class="file-stats">
<a href="#6bde466587e782a5b7fd61f10ce3a979706ec4aa" style="color: #1068bf;">
testsuite/tests/arityanal/should_compile/Arity04.stderr
</a>
</li>
<li class="file-stats">
<a href="#e2f6b12889757561d508a64f69d28577e96df813" style="color: #1068bf;">
testsuite/tests/arityanal/should_compile/Arity05.stderr
</a>
</li>
<li class="file-stats">
<a href="#5914145683c5d7552ea12d5d3983e8c742a33aed" style="color: #1068bf;">
testsuite/tests/arityanal/should_compile/Arity06.stderr
</a>
</li>
<li class="file-stats">
<a href="#9e2ec3b8c3c0f7ce87270f705e6d052be5db75de" style="color: #1068bf;">
testsuite/tests/arityanal/should_compile/Arity08.stderr
</a>
</li>
<li class="file-stats">
<a href="#2779dd39638d332b4347f082443df52a088814ec" style="color: #1068bf;">
testsuite/tests/arityanal/should_compile/Arity11.stderr
</a>
</li>
<li class="file-stats">
<a href="#e866e357dffcf10a28dffedc3e9b7a5fc972bbef" style="color: #1068bf;">
testsuite/tests/arityanal/should_compile/Arity14.stderr
</a>
</li>
<li class="file-stats">
<a href="#436215f53f3a2051fa7f4ce7d1cca1320d45de55" style="color: #1068bf;">
testsuite/tests/arityanal/should_compile/Arity15.stderr
</a>
</li>
<li class="file-stats">
<a href="#f35be4ae0d8a38fde38c379c92b618447655d9cc" style="color: #1068bf;">
testsuite/tests/arityanal/should_compile/Arity16.stderr
</a>
</li>
<li class="file-stats">
<a href="#bba937be987fc0f56e4491605152234c25e4a7bc" style="color: #1068bf;">
testsuite/tests/determinism/determ004/determ004.hs
</a>
</li>
<li class="file-stats">
<a href="#14582a9b3e149cd5da0ea57352802ae4299e978f" style="color: #1068bf;">
testsuite/tests/lib/integer/Makefile
</a>
</li>
<li class="file-stats">
<a href="#0bcd44e02395d7650d219b852ee8bc4c68f9edaf" style="color: #1068bf;">
testsuite/tests/simplCore/should_compile/OpaqueNoSpecialise.stderr
</a>
</li>
<li class="file-stats">
<a href="#85eac70392c65ae4e667bc56676eaf6a1aff3000" style="color: #1068bf;">
testsuite/tests/simplCore/should_compile/T13156.hs
</a>
</li>
<li class="file-stats">
<a href="#6146913e3b5045eb363eec26d48cdea5614659b8" style="color: #1068bf;">
testsuite/tests/simplCore/should_compile/T14152.stderr
</a>
</li>
<li class="file-stats">
<a href="#21362be35cc9a50315b56fb0f9a0a8a56af4edcb" style="color: #1068bf;">
testsuite/tests/simplCore/should_compile/T14152a.stderr
</a>
</li>
<li class="file-stats">
<a href="#993d82b169a2a16b1d68eb2d5844a5489b23fdfe" style="color: #1068bf;">
testsuite/tests/simplCore/should_compile/T18013.stderr
</a>
</li>
<li class="file-stats">
<a href="#567031a571455045b61cacbcb7f3806ae34cd4f6" style="color: #1068bf;">
testsuite/tests/simplCore/should_compile/T18355.stderr
</a>
</li>
<li class="file-stats">
<a href="#ccd142ffb3a688c4a7ae3f491c075bde68d8b17b" style="color: #1068bf;">
testsuite/tests/simplCore/should_compile/T19890.stderr
</a>
</li>
</ul>
<h5 style="margin-top: 10px; margin-bottom: 10px; font-size: 0.875rem;">The diff was not included because it is too large.</h5>

</div>
<div class="footer" style="margin-top: 10px;">
<p style="font-size: small; color: #666;">

<br>
<a href="https://gitlab.haskell.org/ghc/ghc/-/compare/683c166b191bdea248e9eb069be3a748eb97aad4...7b9ad44f42207a7d4ce388c945437f5856609401" style="color: #1068bf;">View it on GitLab</a>.
<br>
You're receiving this email because of your account on <a target="_blank" rel="noopener noreferrer" href="https://gitlab.haskell.org" style="color: #1068bf;">gitlab.haskell.org</a>. <a href="https://gitlab.haskell.org/-/profile/notifications" target="_blank" rel="noopener noreferrer" class="mng-notif-link" style="color: #1068bf;">Manage all notifications</a> · <a href="https://gitlab.haskell.org/help" target="_blank" rel="noopener noreferrer" class="help-link" style="color: #1068bf;">Help</a>



</p>
</div>
</body>
</html>