<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html lang="en" style='--code-editor-font: var(--default-mono-font, "GitLab Mono"), JetBrains Mono, Menlo, DejaVu Sans Mono, Liberation Mono, Consolas, Ubuntu Mono, Courier New, andale mono, lucida console, monospace;'>
<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: var(--default-regular-font, "GitLab Sans"),-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: var(--default-regular-font, "GitLab Sans"),-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;">
Ben Gamari pushed to branch wip/T24471 at <a href="https://gitlab.haskell.org/ghc/ghc">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/61bb5ff68630c203eaae4baba554640246df5a63">61bb5ff6</a></strong>
<div>
<span> by Finley McIlwaine </span> <i> at 2024-03-04T09:01:40-08:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #333238; position: relative; font-family: var(--default-mono-font, "GitLab Mono"),"JetBrains Mono","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: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>add -fprof-late-overloaded and -fprof-late-overloaded-calls

* Refactor late cost centre insertion for extensibility
* Add two more late cost centre insertion methods that add SCCs to overloaded
  top level bindings and call sites with dictionary arguments.
* Some tests for the basic functionality of the new insertion methods

Resolves: #24500
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/82ccb8012ba532f0fa06dc6ff96d33217560088a">82ccb801</a></strong>
<div>
<span> by Andreas Klebinger </span> <i> at 2024-03-04T19:59:14-05:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #333238; position: relative; font-family: var(--default-mono-font, "GitLab Mono"),"JetBrains Mono","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: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>x86-ncg: Fix fma codegen when arguments are globals

Fix a bug in the x86 ncg where results would be wrong when the desired output
register and one of the input registers were the same global.

Also adds a tiny optimization to make use of the memory addressing
support when convenient.

Fixes #24496
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/afb90d4cb3642b37f8f80cb1e6289f54bc9ba6bf">afb90d4c</a></strong>
<div>
<span> by Ben Gamari </span> <i> at 2024-03-05T08:22:58-05:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #333238; position: relative; font-family: var(--default-mono-font, "GitLab Mono"),"JetBrains Mono","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: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>ghc-experimental: Add dummy dependencies to work around #24436

This is a temporary measure to improve CI reliability until a proper
solution is developed.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/427a7d2e6175b972773ad9a43580a98e0c9e95de">427a7d2e</a></strong>
<div>
<span> by Simon Peyton Jones </span> <i> at 2024-03-05T08:23:23-05:00 </i>
</div>
<pre class="commit-message" style='white-space: pre-wrap; display: block; font-size: 14px; color: #333238; position: relative; font-family: var(--default-mono-font, "GitLab Mono"),"JetBrains Mono","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: #fbfafd; border-radius: 2px; margin: 0; padding: 8px 12px; border: 1px solid #dcdcde;'>Three compile perf improvements with deep nesting

These were changes are all triggered by #24471.

1. Make GHC.Core.Opt.SetLevels.lvlMFE behave better when there are
   many free variables.  See Note [Large free-variable sets].

2. Make GHC.Core.Opt.Arity.floatIn a bit lazier in its Cost argument.
   This benefits the common case where the ArityType turns out to
   be nullary. See Note [Care with nested expressions]

3. Make GHC.CoreToStg.Prep.cpeArg behave for deeply-nested
   expressions.  See Note [Eta expansion of arguments in CorePrep]
   wrinkle (EA2).

Compile times go down by up to 3.5%, and much more in artificial
cases.

Metric Decrease:
    CoOpt_Read
    T12425
</pre>
</li>
</ul>
<h4 style="margin-top: 10px; margin-bottom: 10px;">
30 changed files:
</h4>
<ul>
<li class="file-stats">
<a href="#2bae5947e9412f6deebf4db7dcb89d780913130f">
compiler/GHC/CmmToAsm/X86/CodeGen.hs
</a>
</li>
<li class="file-stats">
<a href="#f67efdd3ec0e6a124bc1f40bec7c1e910d36c06c">
compiler/GHC/Core/LateCC.hs
</a>
</li>
<li class="file-stats">
<a href="#3eb36aa30815ac0904daf0ce6372b104d5d03abf">
<span class="new-file">
+
compiler/GHC/Core/LateCC/OverloadedCalls.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#e9dcf226ea260581a815d3eaff0049e11529205c">
<span class="new-file">
+
compiler/GHC/Core/LateCC/TopLevelBinds.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#f264f4258163c8fe6b333c218f25a0eb1ecc2fe0">
<span class="new-file">
+
compiler/GHC/Core/LateCC/Types.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#b4d75644dbc1e6812abeefb7a6a62d193ded5600">
<span class="new-file">
+
compiler/GHC/Core/LateCC/Utils.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#c3967bb9d3e8f5aae2dd111b5a335b48c21c1999">
compiler/GHC/Core/Opt/Arity.hs
</a>
</li>
<li class="file-stats">
<a href="#bd153f89bc48f3fd5079b51fb799808aacbd750c">
compiler/GHC/Core/Opt/Pipeline.hs
</a>
</li>
<li class="file-stats">
<a href="#cc763cdd1967f5d921161a32f64136cfcf0332c5">
compiler/GHC/Core/Opt/SetLevels.hs
</a>
</li>
<li class="file-stats">
<a href="#a5d27de4e3111a69f69902c65ecf7b3379f7c49a">
compiler/GHC/CoreToStg/Prep.hs
</a>
</li>
<li class="file-stats">
<a href="#2e5692f568fd7b67a6b172e2a60469da8392508c">
compiler/GHC/Driver/Flags.hs
</a>
</li>
<li class="file-stats">
<a href="#9a679a2680ef6061397f1987091ea9f96ffe095d">
compiler/GHC/Driver/Main.hs
</a>
</li>
<li class="file-stats">
<a href="#774d88050336ef660c7a219fb06c480c2fc639bc">
compiler/GHC/Driver/Session.hs
</a>
</li>
<li class="file-stats">
<a href="#5461e7beeb7ae73d7c01f720cbaa3fa2c5333590">
compiler/GHC/Tc/Utils/TcType.hs
</a>
</li>
<li class="file-stats">
<a href="#0f33fd88c617246c7f89c4477d2d1d24f942df23">
compiler/ghc.cabal.in
</a>
</li>
<li class="file-stats">
<a href="#523e258f899a29c551e69a88115587d32ba73db1">
docs/users_guide/9.10.1-notes.rst
</a>
</li>
<li class="file-stats">
<a href="#9114465b0120ae8f2588fc60cb49ff264de54ecb">
docs/users_guide/profiling.rst
</a>
</li>
<li class="file-stats">
<a href="#a44d8b426a3430be92a166411d2d505f35432afd">
libraries/ghc-experimental/src/Data/Sum/Experimental.hs
</a>
</li>
<li class="file-stats">
<a href="#062257c20147398f8b84ea2bb9e75d35e328e699">
libraries/ghc-experimental/src/Data/Tuple/Experimental.hs
</a>
</li>
<li class="file-stats">
<a href="#e9d8f296c5070a69c6daca3c9b7d646b82840c5b">
<span class="new-file">
+
testsuite/tests/primops/should_run/T24496.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#ee418c5a3b7a51a82c459dc63e30c58b19c36de3">
<span class="new-file">
+
testsuite/tests/primops/should_run/T24496.stdout
</span>
</a>
</li>
<li class="file-stats">
<a href="#98e52aadad6ed0677c8e810ba5f46030fd516bdd">
testsuite/tests/primops/should_run/all.T
</a>
</li>
<li class="file-stats">
<a href="#382baa1450ea74ecf1198bd2e384e396d34d414e">
testsuite/tests/profiling/should_run/all.T
</a>
</li>
<li class="file-stats">
<a href="#26bedb4f64ff619f015528e7ed1cca25f9578d27">
<span class="new-file">
+
testsuite/tests/profiling/should_run/scc-prof-overloaded-calls001.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#30da6dc768f8e3c06215aa172eae5241ddd8ff83">
<span class="new-file">
+
testsuite/tests/profiling/should_run/scc-prof-overloaded-calls001.prof.sample
</span>
</a>
</li>
<li class="file-stats">
<a href="#9c2f3f22b943503890aa2471d257e28c42acad59">
<span class="new-file">
+
testsuite/tests/profiling/should_run/scc-prof-overloaded-calls001.stdout
</span>
</a>
</li>
<li class="file-stats">
<a href="#a4a7d60f65905e5d793f458e12ac3e2d3647be98">
<span class="new-file">
+
testsuite/tests/profiling/should_run/scc-prof-overloaded-calls002.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#7bf8be08a42a03f3e4183cf116eafd980a7fc332">
<span class="new-file">
+
testsuite/tests/profiling/should_run/scc-prof-overloaded-calls002.prof.sample
</span>
</a>
</li>
<li class="file-stats">
<a href="#6e4842d548bcff99f6322a13ab81ebbaca9e9d37">
<span class="new-file">
+
testsuite/tests/profiling/should_run/scc-prof-overloaded-calls002.stdout
</span>
</a>
</li>
<li class="file-stats">
<a href="#8ac383baf1e88e39b2a6705ee1fd20ded02972fa">
<span class="new-file">
+
testsuite/tests/profiling/should_run/scc-prof-overloaded001.hs
</span>
</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: #737278;">

<br>
<a href="https://gitlab.haskell.org/ghc/ghc/-/compare/fd5073c699a3b4d2583437094683ac13f9f088da...427a7d2e6175b972773ad9a43580a98e0c9e95de">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">gitlab.haskell.org</a>. <a href="https://gitlab.haskell.org/-/profile/notifications" target="_blank" rel="noopener noreferrer" class="mng-notif-link">Manage all notifications</a> · <a href="https://gitlab.haskell.org/help" target="_blank" rel="noopener noreferrer" class="help-link">Help</a>



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