<!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/7e93ae8b2257c17d5ae5ef7832db723e897c8e8b">7e93ae8b</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-21T13:13:29-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">rts: Post ticky entry counts to the eventlog

We currently only post the entry counters, not the other global
counters as in my experience the former are more useful. We use the heap
profiler's census period to decide when to dump.

Also spruces up the documentation surrounding ticky-ticky a bit.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/bc9c3916df96a20c58b91fd383a0da77ec83c4b0">bc9c3916</a></strong>
<div>
<span>by Ben Gamari</span>
<i>at 2020-11-22T06:28:10-05:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Implement -ddump-c-backend argument

To dump output of the C backend.
</pre>
</li>
<li>
<strong><a href="https://gitlab.haskell.org/ghc/ghc/-/commit/f9bf2628215a03a69b22c1d87c2f1cc2a0e443ea">f9bf2628</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2020-11-22T16:22:31+00: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/ef1ccf965f5fa7febff9258b581ab59ddf983b25">ef1ccf96</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2020-11-22T16:22:31+00: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/78f84c1feadfeba6796b75330d54ba4de415279d">78f84c1f</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2020-11-22T16:22:31+00: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/9fc26bf9d606e74ae08f07a79a2b71253fb1eaa5">9fc26bf9</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2020-11-22T16:22:31+00: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/7b2648e51016a052623e164fc9768d9125839ada">7b2648e5</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2020-11-22T16:22:31+00: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/197608eff7bac84ae439a7eaab60fe95abb550c4">197608ef</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2020-11-22T16:22:31+00: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/f4741fc750593f21f83899eac8b4b4d46f157ea2">f4741fc7</a></strong>
<div>
<span>by John Ericson</span>
<i>at 2020-11-22T16:22:31+00: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/f35b37023a72a3665ccccbb3f2746239f38c52a2">f35b3702</a></strong>
<div>
<span>by Sylvain Henry</span>
<i>at 2020-11-22T16:22:31+00:00</i>
</div>
<pre class="commit-message" style="white-space: pre-wrap; margin: 0;">Fix Word64/Int64 constant-folding

I've refactored literal narrow/coerce functions to make them more
generic. Hence this patch incidentally implements basic support for
Int8/16/32 and Word8/16/32 in Core.
</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="#ee840b93f51ee5ed4233a2f892343421ba49af58">
compiler/GHC/Builtin/bytearray-ops.txt.pp
</a>
</li>
<li class="file-stats">
<a href="#451725cc4e5d443a3b7c2adcdf224840f953b7e2">
compiler/GHC/Builtin/primops.txt.pp
</a>
</li>
<li class="file-stats">
<a href="#2f6f8d6d05acc04b08fff94df4b3996c65b87892">
compiler/GHC/ByteCode/Asm.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="#9df7e695170800345fb44916a8e8f4b8f3c55be0">
compiler/GHC/Driver/CodeOutput.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="#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="#36435f993774454b5956f3a38a9276ed176c61cc">
docs/users_guide/debugging.rst
</a>
</li>
<li class="file-stats">
<a href="#28cb2d1fcbc22664fcf251f87743f25d05fcd16f">
docs/users_guide/eventlog-formats.rst
</a>
</li>
<li class="file-stats">
<a href="#c69ed1e399ce62d9f23fc51d2806dab1d9b7bfd6">
docs/users_guide/expected-undocumented-flags.txt
</a>
</li>
<li class="file-stats">
<a href="#9114465b0120ae8f2588fc60cb49ff264de54ecb">
docs/users_guide/profiling.rst
</a>
</li>
<li class="file-stats">
<a href="#debe527847514360ea5e75538c7630ba2dfebba6">
includes/rts/EventLogFormat.h
</a>
</li>
<li class="file-stats">
<a href="#241971342cd0c394b24e67a781cf7e3d2f01aa72">
includes/rts/Flags.h
</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>
</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: #666;">

<br>
<a href="https://gitlab.haskell.org/ghc/ghc/-/compare/a08e0a138375942d87023e7fc8b878f31a1ea26a...f35b37023a72a3665ccccbb3f2746239f38c52a2">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>