[Git][ghc/ghc][wip/int64-everywhere] 9 commits: Use "to" instead of "2" in internal names of conversion ops

John Ericson gitlab at gitlab.haskell.org
Tue Sep 8 04:00:29 UTC 2020



John Ericson pushed to branch wip/int64-everywhere at Glasgow Haskell Compiler / GHC


Commits:
c1b8b1e2 by John Ericson at 2020-09-07T23:58:03-04:00
Use "to" instead of "2" in internal names of conversion ops

Change the constructors for the primop union, and also names of the
literal conversion functions.

"2" runs into trouble when we need to do conversions from fixed-width
types, and end up with thing like "Int642Word".

Only the names internal to GHC are changed, as I don't want to worry
about breaking changes ATM.

- - - - -
d667cd08 by John Ericson at 2020-09-07T23:59:36-04:00
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 at gmail.com>

- - - - -
cb772b76 by John Ericson at 2020-09-07T23:59:36-04:00
Inline INT64 and WORD64 macros in primops.txt.pp

The definition is now unconditional so there is no reason for that CPP.

- - - - -
a8a352fb by Sylvain Henry at 2020-09-07T23:59:36-04:00
Fix toArgRep

- - - - -
dc8d3c23 by Sylvain Henry at 2020-09-07T23:59:36-04:00
Adapt rules from #16402 to Word64#/Int64#

- - - - -
90bff3d9 by John Ericson at 2020-09-07T23:59:36-04:00
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.

- - - - -
ff154b09 by John Ericson at 2020-09-07T23:59:36-04:00
`integerFromInt64#` can be inlined when the word size is >= 64 bits

Maybe this will help with the renaming test failure?

- - - - -
24feaca2 by John Ericson at 2020-09-07T23:59:36-04:00
Add builtin rule for `divInt64#` and `modInt64#`

- - - - -
f0b0f83f by John Ericson at 2020-09-07T23:59:36-04:00
WIP: Add missing floats <-> int/word 64 rule and primops

- - - - -


30 changed files:

- compiler/GHC/Builtin/Names.hs
- compiler/GHC/Builtin/primops.txt.pp
- compiler/GHC/Cmm/MachOp.hs
- compiler/GHC/CmmToAsm/CPrim.hs
- compiler/GHC/CmmToAsm/PPC/CodeGen.hs
- compiler/GHC/CmmToAsm/SPARC/CodeGen.hs
- compiler/GHC/CmmToAsm/X86/CodeGen.hs
- compiler/GHC/CmmToC.hs
- compiler/GHC/CmmToLlvm/CodeGen.hs
- compiler/GHC/Core/Opt/ConstantFold.hs
- compiler/GHC/Core/TyCon.hs
- compiler/GHC/CoreToByteCode.hs
- compiler/GHC/HsToCore/Match/Literal.hs
- compiler/GHC/Iface/Tidy/StaticPtrTable.hs
- compiler/GHC/Stg/Lift/Analysis.hs
- compiler/GHC/StgToCmm/ArgRep.hs
- compiler/GHC/StgToCmm/Layout.hs
- compiler/GHC/StgToCmm/Prim.hs
- compiler/GHC/StgToCmm/Ticky.hs
- compiler/GHC/Tc/Deriv/Generate.hs
- compiler/GHC/Tc/Instance/Typeable.hs
- compiler/GHC/Types/Literal.hs
- compiler/GHC/Utils/Outputable.hs
- includes/stg/Prim.h
- libraries/base/GHC/Exts.hs
- libraries/base/GHC/Float.hs
- libraries/base/GHC/Float/ConversionUtils.hs
- libraries/base/GHC/Float/RealFracMethods.hs
- libraries/base/GHC/Int.hs
- libraries/base/GHC/Integer.hs


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/2c7f5d578e9eba7738173f1534a3f81c3faeab65...f0b0f83fd9f789bca8407badab70f1792aa1854e

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/2c7f5d578e9eba7738173f1534a3f81c3faeab65...f0b0f83fd9f789bca8407badab70f1792aa1854e
You're receiving this email because of your account on gitlab.haskell.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20200908/316f7eb9/attachment.html>


More information about the ghc-commits mailing list