<!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;
}
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;">
Ben Gamari pushed to branch wip/T22077
at <a href="https://gitlab.haskell.org/ghc/ghc" style="color: #1068bf; text-decoration: none;">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/3820387b6135d40de1308acc0708807b6a3c150e" style="color: #1068bf; text-decoration: none;">3820387b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-25T10:08:03-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;'>rts: Add missing declaration of stg_noDuplicate
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/46101141baa3e180ddf2d25326d8f08b3b53699b" style="color: #1068bf; text-decoration: none;">46101141</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-25T10:08:11-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;'>base: Move CString, CStringLen to GHC.Foreign
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3b0785cafb5ed25238d3997908af2bcdd648c46a" style="color: #1068bf; text-decoration: none;">3b0785ca</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-25T10:08:11-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;'>base: Move IPE helpers to GHC.InfoProv
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/2be785d17a78fbe31059cdbca3085325d5214fcb" style="color: #1068bf; text-decoration: none;">2be785d1</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-25T10:08:11-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;'>rts: Refactor IPE tracing support
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/3650e2a795ea00b1e8bae03ab623aa41284bb863" style="color: #1068bf; text-decoration: none;">3650e2a7</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-25T10:08:11-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;'>Refactor IPE initialization

Here we refactor the representation of info table provenance information
in object code to significantly reduce its size and link-time impact.
Specifically, we deduplicate strings and represent them as 32-bit
offsets into a common string table.

In addition, we rework the registration logic to eliminate allocation
from the registration path, which is run from a static initializer where
things like allocation are technically undefined behavior (although it
did previously seem to work). For similar reasons we eliminate lock
usage from registration path, instead relying on atomic CAS.

Closes #22077.
</pre>
</li>
<li>
<strong style="font-weight: bold;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/734e4ef27fe8108ab888943bcca0d9b03de5de44" style="color: #1068bf; text-decoration: none;">734e4ef2</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2022-08-25T10:08:11-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;'>Separate IPE source file from span

The source file name can very often be shared across many IPE entries
whereas the source coordinates are generally unique. Separate the two to
exploit sharing of the former.
</pre>
</li>
</ul>
<h4 style="margin-top: 10px; margin-bottom: 10px;">30 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#db697f6aea9f93f1583f1d5c62d25570a1e07f73" style="color: #1068bf; text-decoration: none;">
compiler/GHC/Cmm/CLabel.hs
</a>
</li>
<li class="file-stats">
<a href="#71e696f452eb493722d70306c6f304fc9b2f6a95" style="color: #1068bf; text-decoration: none;">
compiler/GHC/Cmm/Parser.y
</a>
</li>
<li class="file-stats">
<a href="#9df7e695170800345fb44916a8e8f4b8f3c55be0" style="color: #1068bf; text-decoration: none;">
compiler/GHC/Driver/CodeOutput.hs
</a>
</li>
<li class="file-stats">
<a href="#9a679a2680ef6061397f1987091ea9f96ffe095d" style="color: #1068bf; text-decoration: none;">
compiler/GHC/Driver/Main.hs
</a>
</li>
<li class="file-stats">
<a href="#474afbd1996fa06b8bc9410a2805103be57860f7" style="color: #1068bf; text-decoration: none;">
<span class="new-file">
+
compiler/GHC/StgToCmm/InfoTableProv.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#8390b439f37437a2642e4e31bd6e7e91438915d1" style="color: #1068bf; text-decoration: none;">
compiler/GHC/StgToCmm/Prof.hs
</a>
</li>
<li class="file-stats">
<a href="#0f33fd88c617246c7f89c4477d2d1d24f942df23" style="color: #1068bf; text-decoration: none;">
compiler/ghc.cabal.in
</a>
</li>
<li class="file-stats">
<a href="#ec3a110ebba35a2ac78897f655d6cd55fc4b11cc" style="color: #1068bf; text-decoration: none;">
libraries/base/Foreign/C/String.hs
</a>
</li>
<li class="file-stats">
<a href="#0cba8cd0b4d1e9b852fcc660e75a3175bc5d2f8a" style="color: #1068bf; text-decoration: none;">
libraries/base/GHC/Foreign.hs
</a>
</li>
<li class="file-stats">
<a href="#b38856d310248d4769bfaa6042cdc64d01b27ee0" style="color: #1068bf; text-decoration: none;">
<span class="new-file">
+
libraries/base/GHC/InfoProv.hsc
</span>
</a>
</li>
<li class="file-stats">
<a href="#f0c9eb35f5d8b0735521d0fc3130910ca414d528" style="color: #1068bf; text-decoration: none;">
libraries/base/GHC/Stack/CCS.hsc
</a>
</li>
<li class="file-stats">
<a href="#9cc5887db9e4af2e8d686d9953728d48fd50dd64" style="color: #1068bf; text-decoration: none;">
libraries/base/GHC/Stack/CloneStack.hs
</a>
</li>
<li class="file-stats">
<a href="#b7cfb47853ef95330e499ca0c5b90964744d101f" style="color: #1068bf; text-decoration: none;">
libraries/base/base.cabal
</a>
</li>
<li class="file-stats">
<a href="#200c4c756172f6b340836fe30c1d59fde1d17523" style="color: #1068bf; text-decoration: none;">
rts/IPE.c
</a>
</li>
<li class="file-stats">
<a href="#260aaa1045176812c4f20ed18734479ba43bbbe6" style="color: #1068bf; text-decoration: none;">
rts/IPE.h
</a>
</li>
<li class="file-stats">
<a href="#9ed11d0519762dae04656481b089dbb5b05acf98" style="color: #1068bf; text-decoration: none;">
rts/RtsStartup.c
</a>
</li>
<li class="file-stats">
<a href="#050d739b5c42d009648d099fb66bae809e83482e" style="color: #1068bf; text-decoration: none;">
rts/Trace.c
</a>
</li>
<li class="file-stats">
<a href="#af7520a7c19cb7a894a90a944c97a4ed95f12b78" style="color: #1068bf; text-decoration: none;">
rts/Trace.h
</a>
</li>
<li class="file-stats">
<a href="#4bef7d0c5d4ce46744aaacac2800349746d7e44f" style="color: #1068bf; text-decoration: none;">
rts/eventlog/EventLog.c
</a>
</li>
<li class="file-stats">
<a href="#76aeecda0541f8b07341c3e7947c02a0cae5b8af" style="color: #1068bf; text-decoration: none;">
rts/eventlog/EventLog.h
</a>
</li>
<li class="file-stats">
<a href="#1ce50078fc531487782432592488ae95c6156df4" style="color: #1068bf; text-decoration: none;">
rts/include/Cmm.h
</a>
</li>
<li class="file-stats">
<a href="#2c9d1869cf5d3b9fec1ccc583a5ade7b3b3f4d19" style="color: #1068bf; text-decoration: none;">
rts/include/Rts.h
</a>
</li>
<li class="file-stats">
<a href="#71b34aa09551eb8e1b64680080d75efe1d457ddb" style="color: #1068bf; text-decoration: none;">
rts/include/rts/IPE.h
</a>
</li>
<li class="file-stats">
<a href="#4f5d8a62e14906b85d22aa560fdb6d7c1bc2cb8e" style="color: #1068bf; text-decoration: none;">
rts/include/stg/MiscClosures.h
</a>
</li>
<li class="file-stats">
<a href="#5d16d2b1e39374d5bc4e4c5edaf25abde7c6b10a" style="color: #1068bf; text-decoration: none;">
rts/include/stg/SMP.h
</a>
</li>
<li class="file-stats">
<a href="#371d3c3c9fad484c1163aa733d70507ce33084c9" style="color: #1068bf; text-decoration: none;">
rts/sm/NonMoving.h
</a>
</li>
<li class="file-stats">
<a href="#dfbfc165b2c52e4320927fe47c7e4b6a3d88eec4" style="color: #1068bf; text-decoration: none;">
testsuite/tests/profiling/should_run/staticcallstack001.hs
</a>
</li>
<li class="file-stats">
<a href="#d4c054f391601378143168c916529135eaed17d6" style="color: #1068bf; text-decoration: none;">
testsuite/tests/profiling/should_run/staticcallstack001.stdout
</a>
</li>
<li class="file-stats">
<a href="#20152b2bc7c5c1605c0c8bf2dbf3f9a23d1bdbbe" style="color: #1068bf; text-decoration: none;">
testsuite/tests/profiling/should_run/staticcallstack002.hs
</a>
</li>
<li class="file-stats">
<a href="#937d6daebde08d678e7c18b9624159273e804b92" style="color: #1068bf; text-decoration: none;">
testsuite/tests/profiling/should_run/staticcallstack002.stdout
</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/1864cd27cb51092d71d21f39e1fef550037ef635...734e4ef27fe8108ab888943bcca0d9b03de5de44" style="color: #1068bf; text-decoration: none;">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>