[Git][ghc/ghc][wip/fixed-width-lits] 8 commits: rts: Flush eventlog buffers from flushEventLog
John Ericson
gitlab at gitlab.haskell.org
Wed Nov 25 19:43:00 UTC 2020
John Ericson pushed to branch wip/fixed-width-lits at Glasgow Haskell Compiler / GHC
Commits:
f88f4339 by Ben Gamari at 2020-11-24T02:43:20-05:00
rts: Flush eventlog buffers from flushEventLog
As noted in #18043, flushTrace failed flush anything beyond the writer.
This means that a significant amount of data sitting in capability-local
event buffers may never get flushed, despite the users' pleads for us to
flush.
Fix this by making flushEventLog flush all of the event buffers before
flushing the writer.
Fixes #18043.
- - - - -
7c03cc50 by Ben Gamari at 2020-11-24T02:43:55-05:00
gitlab-ci: Run LLVM job on appropriately-labelled MRs
Namely, those marked with the ~"LLVM backend" label
- - - - -
9b95d815 by Ben Gamari at 2020-11-24T02:43:55-05:00
gitlab-ci: Run LLVM builds on Debian 10
The current Debian 9 image doesn't provide LLVM 7.
- - - - -
2ed3e6c0 by Ben Gamari at 2020-11-24T02:43:55-05:00
CmmToLlvm: Declare signature for memcmp
Otherwise `opt` fails with:
error: use of undefined value '@memcmp$def'
- - - - -
c4958d33 by Moritz Angermann at 2020-11-25T12:08:44-05:00
[Sized Cmm] properly retain sizes.
This replaces all Word<N> = W<N># Word# and Int<N> = I<N># Int# with
Word<N> = W<N># Word<N># and Int<N> = I<N># Int<N>#, thus providing us
with properly sized primitives in the codegenerator instead of pretending
they are all full machine words.
This came up when implementing darwinpcs for arm64. The darwinpcs reqires
us to pack function argugments in excess of registers on the stack. While
most procedure call standards (pcs) assume arguments are just passed in
8 byte slots; and thus the caller does not know the exact signature to make
the call, darwinpcs requires us to adhere to the prototype, and thus have
the correct sizes. If we specify CInt in the FFI call, it should correspond
to the C int, and not just be Word sized, when it's only half the size.
This does change the expected output of T16402 but the new result is no
less correct as it eliminates the narrowing (instead of the `and` as was
previously done).
Bumps the array, bytestring, text, and binary submodules.
Co-Authored-By: Ben Gamari <ben at well-typed.com>
Metric Increase:
T13701
T14697
- - - - -
24e0ea5e by John Ericson at 2020-11-25T13:38:35-05:00
Make primop handler indentation more consistent
- - - - -
cd935e98 by John Ericson at 2020-11-25T14:21:52-05:00
Cleanup some primop-related identifers
- Don't use "extend" or "narrow" in some of the user-facing primops
names for conversions.
- Names like `narrowInt32#` are misleading when `Int` is 32-bits.
- Names like `extendInt64#` are flat-out wrong when `Int is
32-bits.
- `narrow{Int,Word}<N>#` however map a type to itself, and so don't
suffer from this problem. They are left as-is.
- Harmonize the internal (big sum type) names of the native vs
fixed-sized number primops a bit. (Mainly by renaming the former.)
- - - - -
9ffabc57 by Sylvain Henry at 2020-11-25T14:38:43-05:00
Make proper fixed-with number literals
(Progress towards #11953, #17377, #17375)
Besides being nicer to use, this also will allow for better constant
folding for the fixed-width types, on par with what `Int#` and `Word#`
have today.
- - - - -
30 changed files:
- .gitlab-ci.yml
- compiler/GHC/Builtin/Names.hs
- compiler/GHC/Builtin/Types.hs
- compiler/GHC/Builtin/primops.txt.pp
- compiler/GHC/ByteCode/Asm.hs
- compiler/GHC/Cmm.hs
- compiler/GHC/Cmm/Expr.hs
- compiler/GHC/CmmToAsm/Ppr.hs
- compiler/GHC/CmmToC.hs
- compiler/GHC/CmmToLlvm/Base.hs
- compiler/GHC/Core.hs
- compiler/GHC/Core/Opt/ConstantFold.hs
- compiler/GHC/CoreToByteCode.hs
- compiler/GHC/HsToCore/Foreign/Call.hs
- compiler/GHC/HsToCore/Foreign/Decl.hs
- compiler/GHC/HsToCore/Match/Literal.hs
- compiler/GHC/HsToCore/Quote.hs
- compiler/GHC/Runtime/Heap/Inspect.hs
- compiler/GHC/StgToCmm/DataCon.hs
- compiler/GHC/StgToCmm/Prim.hs
- compiler/GHC/StgToCmm/Utils.hs
- compiler/GHC/Tc/Deriv/Generate.hs
- compiler/GHC/Types/Literal.hs
- compiler/GHC/Utils/Outputable.hs
- ghc/ghc-bin.cabal.in
- includes/RtsAPI.h
- includes/rts/EventLogWriter.h
- libraries/array
- libraries/base/Debug/Trace.hs
- libraries/base/GHC/Float.hs
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/cfb672c49dc9081982f9284abf6302fd202f4eea...9ffabc576acc84fd8429a12f32e76b84ef7a0003
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/cfb672c49dc9081982f9284abf6302fd202f4eea...9ffabc576acc84fd8429a12f32e76b84ef7a0003
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/20201125/e2d1ccc9/attachment.html>
More information about the ghc-commits
mailing list