<!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>img {
max-width: 100%; height: auto;
}
</style>
</head>
<body>
<div class="content">

<h3>
Sebastian Graf pushed to branch wip/nested-cpr-2019
at <a href="https://gitlab.haskell.org/ghc/ghc">Glasgow Haskell Compiler / GHC</a>
</h3>
<h4>
Commits:
</h4>
<ul>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b3b4b5055ac2df4e56f1a7bd059322ed00c7f099">b3b4b505</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:29+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Nested CPR
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/da503e337ca72c5f91605d0f8908575e5b13e929">da503e33</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Move tests from stranal to cpranal
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/aeffe9f19b06c209fd03020cdab01e2c272eb64e">aeffe9f1</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Accept FacState
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/cadbe986f3601959ef6aea825caf8e6e626ad7bf">cadbe986</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Factor Cpr and Termination into a joint lattice

As a result, we don't even have to export Termination from Cpr. Neat!

Also I realised there is a simpler and more sound way to generate and
unleash CPR signatures.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e603eec27654e9ae4f91eda658b637b900077ac7">e603eec2</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Consider unboxing effects of WW better and get rid of hack
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/da7fb664b52b7f07d1d1d986063590baca4084f3">da7fb664</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">stuff
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/c4f117329532c3d96c08f80fe83b57ab5ba85605">c4f11732</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">A slew of testsuite changes
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dcb0d297ad5dce7f7389187377ff52a12d3f8a9c">dcb0d297</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix T1600
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d9f34cfc18117447e166de1ad1f108d19d70f129">d9f34cfc</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix primop termination
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d905fbe5ce420138f1e4c15ec19c97396b7f6999">d905fbe5</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Test for DataCon wrapper CPR
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ed4779b69a33aaaa1a36614a7e700777461ef4cc">ed4779b6</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix CPR of bottoming functions/primops
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d038b30e9b8fce75bd8d40c88a14f1c7467a78be">d038b30e</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix DataConWrapperCpr and accept other test outputs
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fc138815fbfc069023e4d3f66c7686133bff100d">fc138815</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Accept two more changed test outputs
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/25bd8b59928eca48a92f5c7b9e0ef358a71fe1dc">25bd8b59</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Update CaseBinderCPR with a new function
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a500eb47a6f7be265348a862101ec0a1054d2c18">a500eb47</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Don't give the case binder the CPR property
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/fac1289618afcd817d05c34262c3c5e539de35c8">fac12896</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Prune CPR sigs to constant depth on all bindings
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/a197f41665689de65d731ba738da81ed0f55de91">a197f416</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Use variable length coding for ConTags
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/deaae1055229c7313a93489f0f67e5331b14c92a">deaae105</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Accept testuite output
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b393fc78519a66f8927e1b1a2be450c980c57463">b393fc78</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Don't attach CPR sigs to expandable bindings; transform their unfoldings instead
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/e9ed08edccbe2c9b8de7e1457172ba1f808a2233">e9ed08ed</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Revert "Don't give the case binder the CPR property"

This reverts commit 910edd76d5fe68b58c74f3805112f9faef4f2788.

It seems we broke too much with this change. We lost our big win in
`fish`.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2f0f2e2cb81720151790dd81d9573d7cbbb99c98">2f0f2e2c</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">A more modular and configurable approach to optimistic case binder CPR
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/70500c7ffae6de316b2c3a2bbfdd6af4978777d1">70500c7f</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix T9291
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/1b3206ff799b6e1e79d849587f224944a0623cf5">1b3206ff</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Document -fcase-binder-cpr-depth in the user's guide
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/70975b23f49f539632b97c1dc2ce80b7164f0c7f">70975b23</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Testsuite changes
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/68bb4fea8c4113f52a58d8a09deb7b4dbea4c4e9">68bb4fea</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:35+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Refactoring around cprAnalBind
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/196f86e68183d0ffcf853bc781ad09de7f126c8e">196f86e6</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:36+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix case binder CPR by not looking into unfoldings of case binders
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/dc2778bbe4e7f504873eb63ded245c3d7d07c5f7">dc2778bb</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:36+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix T16893
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/436312b20c747b1afae82eedc3e054a179e732bb">436312b2</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:36+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Accept new test output for T17673
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/9a0484ccd4c5afb63cc2200a15050f9289be1b2e">9a0484cc</a></strong>
<div>
<span>by Sebastian Graf</span>
<i>at 2020-10-21T08:47:36+02:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Accepting metric changes to advance CI

There are two ghc/alloc increases, which we might want to investigate
later on.

Metric Decrease:
    T1969
    T9233
    T9872a
    T9872b
    T9872c
    T9872d
    T12425
Metric Increase:
    T13253
    T13701
    T15164
Metric Increase ['max_bytes_used'] (test_env='x86_64-darwin'):
    T9675
Metric Increase ['max_bytes_used', 'peak_megabytes_allocated']:
    T10370
</pre>
</li>
</ul>
<h4>30 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#35cff95f9f44690fc50b44bbe8ac3c554c7d5a5e">
compiler/GHC/Core/Make.hs
</a>
</li>
<li class="file-stats">
<a href="#c3967bb9d3e8f5aae2dd111b5a335b48c21c1999">
compiler/GHC/Core/Opt/Arity.hs
</a>
</li>
<li class="file-stats">
<a href="#c1bf6b849619bc8d7ef37a97d993dbfaa9966f7b">
compiler/GHC/Core/Opt/CprAnal.hs
</a>
</li>
<li class="file-stats">
<a href="#cc763cdd1967f5d921161a32f64136cfcf0332c5">
compiler/GHC/Core/Opt/SetLevels.hs
</a>
</li>
<li class="file-stats">
<a href="#f168a93cde5e2aec2441d6331dfe500172df4af3">
compiler/GHC/Core/Opt/Simplify.hs
</a>
</li>
<li class="file-stats">
<a href="#5b215b0e109123e4bef5434854f18e2f61c45b88">
compiler/GHC/Core/Opt/WorkWrap.hs
</a>
</li>
<li class="file-stats">
<a href="#f4421b4e35592648510c877ecf55b1af2b96dcee">
compiler/GHC/Core/Opt/WorkWrap/Utils.hs
</a>
</li>
<li class="file-stats">
<a href="#bbf06eb5d4f0db7bc3213b84b9f5822710ff7be8">
compiler/GHC/CoreToIface.hs
</a>
</li>
<li class="file-stats">
<a href="#f4ae6618b39d5ee4af8302b821aa7e38097a84b7">
compiler/GHC/Data/Maybe.hs
</a>
</li>
<li class="file-stats">
<a href="#2e5692f568fd7b67a6b172e2a60469da8392508c">
compiler/GHC/Driver/Flags.hs
</a>
</li>
<li class="file-stats">
<a href="#774d88050336ef660c7a219fb06c480c2fc639bc">
compiler/GHC/Driver/Session.hs
</a>
</li>
<li class="file-stats">
<a href="#079d6b28856775716c78fdd4a4b35bb45a59002c">
compiler/GHC/Iface/Syntax.hs
</a>
</li>
<li class="file-stats">
<a href="#d11203a9321005ba51a16d751c86f609d1f18c71">
compiler/GHC/Iface/Tidy.hs
</a>
</li>
<li class="file-stats">
<a href="#5a3376ebe9ef8294e13f1fb3761637fa76cd1558">
compiler/GHC/Types/Cpr.hs
</a>
</li>
<li class="file-stats">
<a href="#d09e98aae6ad2eb59d08eac7894b68c0ab820cda">
compiler/GHC/Types/Demand.hs
</a>
</li>
<li class="file-stats">
<a href="#38110817cdbc9a34d2b80a14070cabc7515c808a">
compiler/GHC/Types/Id/Info.hs
</a>
</li>
<li class="file-stats">
<a href="#261c0c5029eb34eb7436b087d77314f377ff8223">
compiler/GHC/Types/Id/Make.hs
</a>
</li>
<li class="file-stats">
<a href="#2e45f2cd303dd998950a7c8042e796a5b2abd64f">
docs/users_guide/using-optimisation.rst
</a>
</li>
<li class="file-stats">
<a href="#2ac98cc8621d6bfdea8f2b4778708fd4cc6b2a43">
testsuite/tests/stranal/sigs/CaseBinderCPR.hs

testsuite/tests/cpranal/sigs/CaseBinderCPR.hs
</a>
</li>
<li class="file-stats">
<a href="#ababeed265656180dcff618bf07f106122a4c488">
<span class="new-file">
+
testsuite/tests/cpranal/sigs/CaseBinderCPR.stderr
</span>
</a>
</li>
<li class="file-stats">
<a href="#43ee12cc363fbd354ba8fe834bc0645da253e571">
testsuite/tests/stranal/sigs/FacState.hs

testsuite/tests/cpranal/sigs/FacState.hs
</a>
</li>
<li class="file-stats">
<a href="#def1a3e69aaf5611b8d113117ba3736904fa8034">
<span class="new-file">
+
testsuite/tests/cpranal/sigs/FacState.stderr
</span>
</a>
</li>
<li class="file-stats">
<a href="#dd093eefcb81a5d889a35fe44f9c2f67acb37513">
<span class="new-file">
+
testsuite/tests/cpranal/sigs/Makefile
</span>
</a>
</li>
<li class="file-stats">
<a href="#798336961fb8c99684cf88b3cdac786a15a8938e">
testsuite/tests/stranal/should_compile/T10694.hs

testsuite/tests/cpranal/sigs/T10694.hs
</a>
</li>
<li class="file-stats">
<a href="#14abb53dfb8f7d74fcd5b2d69e33df3b785bbe7f">
<span class="new-file">
+
testsuite/tests/cpranal/sigs/T10694.stderr
</span>
</a>
</li>
<li class="file-stats">
<a href="#83c51c55db5835fdec38507a4acaaa61da9e39d9">
<span class="new-file">
+
testsuite/tests/cpranal/sigs/T1600.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#df2e65c6e33c778dc318d3acbec1fa430a0317c7">
<span class="new-file">
+
testsuite/tests/cpranal/sigs/T1600.stderr
</span>
</a>
</li>
<li class="file-stats">
<a href="#05af8a6a342fd637034bfd0e421810942c654871">
testsuite/tests/stranal/sigs/T5075.hs

testsuite/tests/cpranal/sigs/T5075.hs
</a>
</li>
<li class="file-stats">
<a href="#497848767bc267f518c8129a8c44e431e9cc322e">
<span class="new-file">
+
testsuite/tests/cpranal/sigs/T5075.stderr
</span>
</a>
</li>
<li class="file-stats">
<a href="#3d4f812fdd4620ab74241ea7d7e332aa4b8fc08e">
<span class="new-file">
+
testsuite/tests/cpranal/sigs/all.T
</span>
</a>
</li>
</ul>
<h5>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: #777;">

<br>
<a href="https://gitlab.haskell.org/ghc/ghc/-/compare/6f7b40177f693d748080a2c5e17dc2c4da3138a8...9a0484ccd4c5afb63cc2200a15050f9289be1b2e">View it on GitLab</a>.
<br>
You're receiving this email because of your account on gitlab.haskell.org.
If you'd like to receive fewer emails, you can
adjust your notification settings.



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