<!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: .875rem;
}
body {
-webkit-text-shadow: rgba(255,255,255,.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,.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;">
sheaf pushed to branch wip/ncg-simd 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: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ef0f95e0a012112c367b0673924cafcbd57db475">ef0f95e0</a></strong>
<div>
<span> by sheaf </span> <i> at 2024-08-26T21:01:47+02: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;'>realArgRegsCover: only save/restore GP regs

This commit changes the meaning of the [*] annotation in low-level Cmm.
It now only means that general-purpose registers should be considered
live.

The idea is that we don't want to have to deal with saving/restoring
vector registers, as explained in Note [Caller-saved registers in low-level Cmm].
So we instead rely on the C functions we call to leave all SIMD
registers intact, by making use of __attribute__((target("general-regs-only")))
among other things.

Fixes #25169
</pre>
</li>
<li>
<strong style="font-weight: 600;"><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/0c793246dbed9b7466c6e6c9048a2a114082ab21">0c793246</a></strong>
<div>
<span> by sheaf </span> <i> at 2024-08-26T21:01:47+02: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;'>Modularise RegClass

This commit modularises the RegClass datatype, allowing it to be
used with architectures that have different register architectures, e.g.
RISC-V which has separate floating-point and vector registers.

The two modules GHC.Platform.Reg.Class.Unified and
GHC.Platform.Reg.Class.Separate implement the two register architectures
we currently support (corresponding to the two constructors of the
GHC.Platform.Reg.Class.RegArch datatype).
</pre>
</li>
</ul>
<h4 style="margin-top: 10px; margin-bottom: 10px;">
30 changed files:
</h4>
<ul>
<li class="file-stats">
<a href="#2f6f8d6d05acc04b08fff94df4b3996c65b87892">
compiler/GHC/ByteCode/Asm.hs
</a>
</li>
<li class="file-stats">
<a href="#d088ba20f051734394bf7ca283f33ed8127bc8ab">
compiler/GHC/Cmm/CallConv.hs
</a>
</li>
<li class="file-stats">
<a href="#71e696f452eb493722d70306c6f304fc9b2f6a95">
compiler/GHC/Cmm/Parser.y
</a>
</li>
<li class="file-stats">
<a href="#807babf5b215890881c92043bcd08486141a405c">
compiler/GHC/CmmToAsm/AArch64/Instr.hs
</a>
</li>
<li class="file-stats">
<a href="#7cfe1a34e0b670dd84416b177237fa11a01b43da">
compiler/GHC/CmmToAsm/AArch64/Regs.hs
</a>
</li>
<li class="file-stats">
<a href="#f71fa75baa7807186473f09c45a9ada1b72f4c6c">
compiler/GHC/CmmToAsm/PPC/CodeGen.hs
</a>
</li>
<li class="file-stats">
<a href="#89f8a68c62e7b5e239f8d8d532820fc086d29140">
compiler/GHC/CmmToAsm/PPC/Instr.hs
</a>
</li>
<li class="file-stats">
<a href="#3022d7d8a06ba257d13bbd18a3347522287aa684">
compiler/GHC/CmmToAsm/PPC/Ppr.hs
</a>
</li>
<li class="file-stats">
<a href="#c386b75e4b289cb23bf547322b74c30941596bae">
compiler/GHC/CmmToAsm/PPC/Regs.hs
</a>
</li>
<li class="file-stats">
<a href="#eb63fd2d9f8f64c1063f9ce3e162f92c2e6e508c">
compiler/GHC/CmmToAsm/Reg/Graph.hs
</a>
</li>
<li class="file-stats">
<a href="#70e6dda2b94c6f8cdd584c1b68c5af73bb1f64e3">
compiler/GHC/CmmToAsm/Reg/Graph/TrivColorable.hs
</a>
</li>
<li class="file-stats">
<a href="#83a3b2df5c77503c3a8c6df05a7654333d30cac3">
compiler/GHC/CmmToAsm/Reg/Linear.hs
</a>
</li>
<li class="file-stats">
<a href="#3fbd789701b8a1224341cc789aa0ff4b4b4d14c2">
compiler/GHC/CmmToAsm/Reg/Linear/AArch64.hs
</a>
</li>
<li class="file-stats">
<a href="#3225e35c655b58843bc349bd56680268cdf059ed">
compiler/GHC/CmmToAsm/Reg/Linear/FreeRegs.hs
</a>
</li>
<li class="file-stats">
<a href="#b3464ce8651c663fa952441e77c36955a283cd00">
compiler/GHC/CmmToAsm/Reg/Linear/PPC.hs
</a>
</li>
<li class="file-stats">
<a href="#8a5d5b6d1415946cdbebc680a0c9d26ebca2a497">
compiler/GHC/CmmToAsm/Reg/Linear/X86.hs
</a>
</li>
<li class="file-stats">
<a href="#c2a3ab492c92cc765c97d9d8a6537aacdd65f1f9">
compiler/GHC/CmmToAsm/Reg/Linear/X86_64.hs
</a>
</li>
<li class="file-stats">
<a href="#d521a7e9ecba2e084a32cf4aa6c27fa59efbab32">
compiler/GHC/CmmToAsm/Reg/Target.hs
</a>
</li>
<li class="file-stats">
<a href="#2bae5947e9412f6deebf4db7dcb89d780913130f">
compiler/GHC/CmmToAsm/X86/CodeGen.hs
</a>
</li>
<li class="file-stats">
<a href="#7b360ca84c1b9aaecc0f9de207a7698dc36514fe">
compiler/GHC/CmmToAsm/X86/Instr.hs
</a>
</li>
<li class="file-stats">
<a href="#6f1d6f13690a99cf2aef1d65b21458cd35ce0466">
compiler/GHC/CmmToAsm/X86/Regs.hs
</a>
</li>
<li class="file-stats">
<a href="#8546b186e64a948cf49994a3acafbad3f1fb74f5">
compiler/GHC/Platform/Reg.hs
</a>
</li>
<li class="file-stats">
<a href="#0fc8b8adcea8f09ad4522fd91c7c7b851d524bb1">
compiler/GHC/Platform/Reg/Class.hs
</a>
</li>
<li class="file-stats">
<a href="#dbecdd4508186ae3917de9aeb16bc015752fb0c4">
<span class="new-file">
+
compiler/GHC/Platform/Reg/Class/NoVectors.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#e455326a38dcf2dfb857b957bf15bbee42635334">
<span class="new-file">
+
compiler/GHC/Platform/Reg/Class/Separate.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#4a79af059e661da2ac362ebf5dae5317b1e8385b">
<span class="new-file">
+
compiler/GHC/Platform/Reg/Class/Unified.hs
</span>
</a>
</li>
<li class="file-stats">
<a href="#1522139eef391430974e254694d2feec1d43d85a">
compiler/GHC/StgToByteCode.hs
</a>
</li>
<li class="file-stats">
<a href="#e18aab7fcc134a71d91f9d26e33b5110a3917e44">
compiler/GHC/StgToCmm/Foreign.hs
</a>
</li>
<li class="file-stats">
<a href="#13bc6c694b9a1fa78aeab1e992926d759374ecb2">
compiler/GHC/StgToCmm/Utils.hs
</a>
</li>
<li class="file-stats">
<a href="#0f33fd88c617246c7f89c4477d2d1d24f942df23">
compiler/ghc.cabal.in
</a>
</li>
</ul>
<h5 style="margin-top: 10px; margin-bottom: 10px; font-size: .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/b5b1db776b20041c0a1ba20ca47bad14bd1446f6...0c793246dbed9b7466c6e6c9048a2a114082ab21">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>