<!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>
John Ericson pushed to branch wip/int64-everywhere
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/1f52ce78db2e844a2583a77e2f074a399a430540">1f52ce78</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2020-09-08T11:48:22-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Make fixed-size `Int32#` and `Int64#`

The boxed Int64 uses Int64#, but Int32# still uses Int#. The 32-bit case
is less pressing to change because it is not a source of brittle
CPP---it is the same thing on all platforms.

We need Int64/Word64 constant folding to avoid the let/app restriction on Core, so
that is implemented now. 32-bit constant unfolding and 32-bit literals
are left as follow-up.

This is the bulk of #11953

ghc-bignum: add support for Word64#/Int64# on 64-bit arch

Fix fingerprint Core generation

Fix some tests

Co-authored-by: Sylvain Henry <hsyl20@gmail.com>
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f2269e66ea5cb6ecdad06c14ad19d455f64580db">f2269e66</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2020-09-08T11:48:22-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Inline INT64 and WORD64 macros in primops.txt.pp

The definition is now unconditional so there is no reason for that CPP.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/276b494c28f21cc914cf97ba6ba150343cff67d2">276b494c</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2020-09-08T11:48:22-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix toArgRep
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/b459551fa09006916e389ebcf50efab4b1661c89">b459551f</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2020-09-08T11:48:22-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Adapt rules from #16402 to Word64#/Int64#
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/ca51d791b454f530934a1db2d5ec0f9ae952fcc2">ca51d791</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2020-09-08T11:48:22-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Copy enumFrom* implementations from Int/Word for Int64/Word64

Without this, we don't get proper list fusion.

I think this sort of copying is OK for now, but we absolutely need
something better if we are going to make `IntN` use `IntN#` for all `N`.
The degree to which proper metaprogramming has been punted upon by
factoring everything through the native-sized types is disconcerting.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/8994b35ee9c7dcf1757f34ba6d8cd494b74309eb">8994b35e</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2020-09-08T11:48:23-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">`integerFromInt64#` can be inlined when the word size is >= 64 bits

Maybe this will help with the renaming test failure?
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/32a5c849b0edc49a611f320e2a8b00e662cbddcf">32a5c849</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2020-09-08T11:48:23-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Add builtin rule for `divInt64#` and `modInt64#`
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/d8e97fddf37c900dce00bc6fe83fd588372d33c9">d8e97fdd</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2020-09-08T11:48:23-04:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">WIP: Add missing floats <-> int/word 64 rule and primops
</pre>
</li>
</ul>
<h4>30 changed files:</h4>
<ul>
<li class="file-stats">
<a href="#0887cf39c5cdf9cf8d6758f410d7dab3023c0d77">
compiler/GHC/Builtin/Names.hs
</a>
</li>
<li class="file-stats">
<a href="#451725cc4e5d443a3b7c2adcdf224840f953b7e2">
compiler/GHC/Builtin/primops.txt.pp
</a>
</li>
<li class="file-stats">
<a href="#c898e00d01234ab22d3b485be68db3645f52f220">
compiler/GHC/Cmm/MachOp.hs
</a>
</li>
<li class="file-stats">
<a href="#c1d65bce6c6501bf42d5bf890e846709b5645832">
compiler/GHC/CmmToAsm/CPrim.hs
</a>
</li>
<li class="file-stats">
<a href="#f71fa75baa7807186473f09c45a9ada1b72f4c6c">
compiler/GHC/CmmToAsm/PPC/CodeGen.hs
</a>
</li>
<li class="file-stats">
<a href="#e76eae04dea432f874db91c25e4a5725d7cc127b">
compiler/GHC/CmmToAsm/SPARC/CodeGen.hs
</a>
</li>
<li class="file-stats">
<a href="#2bae5947e9412f6deebf4db7dcb89d780913130f">
compiler/GHC/CmmToAsm/X86/CodeGen.hs
</a>
</li>
<li class="file-stats">
<a href="#76664ab267df4fc0bec2465efd78bf0afacfe3a7">
compiler/GHC/CmmToC.hs
</a>
</li>
<li class="file-stats">
<a href="#a49dbda5c8a9c380f638f55cf5ade791db0017cc">
compiler/GHC/CmmToLlvm/CodeGen.hs
</a>
</li>
<li class="file-stats">
<a href="#aa79261abf782f3dc603af7fbd5c4b08ed3ddb88">
compiler/GHC/Core/Opt/ConstantFold.hs
</a>
</li>
<li class="file-stats">
<a href="#4aad0050db1a8a20db8bbca149111de99cb299c9">
compiler/GHC/Core/TyCon.hs
</a>
</li>
<li class="file-stats">
<a href="#99771528d6dbafffa79f4900ea74e7d5ec76800c">
compiler/GHC/CoreToByteCode.hs
</a>
</li>
<li class="file-stats">
<a href="#f017e4c978a9ff341ce5a7b838787fd2a4758b59">
compiler/GHC/HsToCore/Match/Literal.hs
</a>
</li>
<li class="file-stats">
<a href="#9a73e96e44e832a1552fc6bfd3939464f00823a2">
compiler/GHC/Iface/Tidy/StaticPtrTable.hs
</a>
</li>
<li class="file-stats">
<a href="#657eec52eed3c8be846a0b60eb6088d5f465de8a">
compiler/GHC/Stg/Lift/Analysis.hs
</a>
</li>
<li class="file-stats">
<a href="#1a141104a301aae725892eb71bc39ae039bcf246">
compiler/GHC/StgToCmm/ArgRep.hs
</a>
</li>
<li class="file-stats">
<a href="#7b3ca11b848c39ab65628e324180feb03c61a091">
compiler/GHC/StgToCmm/Layout.hs
</a>
</li>
<li class="file-stats">
<a href="#d12a108e34fe83acc9c99357ae841e22a0af0a23">
compiler/GHC/StgToCmm/Prim.hs
</a>
</li>
<li class="file-stats">
<a href="#b62375d0938c2cf6d00a6bec9649e795e57a9683">
compiler/GHC/StgToCmm/Ticky.hs
</a>
</li>
<li class="file-stats">
<a href="#3aa56839e36b2219f9ad54f5646ef3005da9c672">
compiler/GHC/Tc/Deriv/Generate.hs
</a>
</li>
<li class="file-stats">
<a href="#ad440013ca2a3a7accc3edc7f7807446b7b079c2">
compiler/GHC/Tc/Instance/Typeable.hs
</a>
</li>
<li class="file-stats">
<a href="#ee98f016857ad5548bb7cdc5dd85246585acdfd6">
compiler/GHC/Types/Literal.hs
</a>
</li>
<li class="file-stats">
<a href="#d3cf57b6a5ebc234dc7689db38ef9b6cf2259c0f">
compiler/GHC/Utils/Outputable.hs
</a>
</li>
<li class="file-stats">
<a href="#ccd32698c1d6d80e18d4e38a453603292e206906">
includes/stg/Prim.h
</a>
</li>
<li class="file-stats">
<a href="#48a6c03232a2b3f836daeff09b3c6e3790804632">
libraries/base/GHC/Exts.hs
</a>
</li>
<li class="file-stats">
<a href="#f4df73449102e301ecaa0e5dd6d41b079b28b6a4">
libraries/base/GHC/Float.hs
</a>
</li>
<li class="file-stats">
<a href="#8237d7c338108cdefc162d88e5819c2f43aebf02">
libraries/base/GHC/Float/ConversionUtils.hs
</a>
</li>
<li class="file-stats">
<a href="#416a3c16226cd35674c4a73af56751db4c7bc5b6">
libraries/base/GHC/Float/RealFracMethods.hs
</a>
</li>
<li class="file-stats">
<a href="#10be392b7f7b391a804a9d9e07af9686755ee4c7">
libraries/base/GHC/Int.hs
</a>
</li>
<li class="file-stats">
<a href="#b20ce2a65f9fef1d6f463b355ce3dbfce3cae71a">
libraries/base/GHC/Integer.hs
</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/e57c5969a0e4b3ad65fe029a23a742928449fd16...d8e97fddf37c900dce00bc6fe83fd588372d33c9">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>