[Git][ghc/ghc][wip/tsan/no-barriers] 13 commits: Support large stack frames/offsets in GHCi bytecode interpreter

Ben Gamari (@bgamari) gitlab at gitlab.haskell.org
Mon Jun 26 21:25:27 UTC 2023



Ben Gamari pushed to branch wip/tsan/no-barriers at Glasgow Haskell Compiler / GHC


Commits:
564164ef by Luite Stegeman at 2023-06-24T10:27:29+09:00
Support large stack frames/offsets in GHCi bytecode interpreter

Bytecode instructions like PUSH_L (push a local variable) contain
an operand that refers to the stack slot. Before this patch, the
operand type was SmallOp (Word16), limiting the maximum stack
offset to 65535 words. This could cause compiler panics in some
cases (See #22888).

This patch changes the operand type for stack offsets from
SmallOp to Op, removing the stack offset limit.

Fixes #22888

- - - - -
8d6574bc by Sylvain Henry at 2023-06-26T13:15:06-04:00
JS: support levity-polymorphic datatypes (#22360,#22291)

- thread knowledge about levity into PrimRep instead of panicking
- JS: remove assumption that unlifted heap objects are rts objects (TVar#, etc.)

Doing this also fixes #22291 (test added).

There is a small performance hit (~1% more allocations).

Metric Increase:
    T18698a
    T18698b

- - - - -
5578bbad by Matthew Pickering at 2023-06-26T13:15:43-04:00
MR Review Template: Mention "Blocked on Review" label

In order to improve our MR review processes we now have the label
"Blocked on Review" which allows people to signal that a MR is waiting
on a review to happen.

See: https://mail.haskell.org/pipermail/ghc-devs/2023-June/021255.html

- - - - -
4427e9cf by Matthew Pickering at 2023-06-26T13:15:43-04:00
Move MR template to Default.md

This makes it more obvious what you have to modify to affect the default
template rather than looking in the project settings.

- - - - -
522bd584 by Arnaud Spiwack at 2023-06-26T13:16:33-04:00
Revert "Avoid desugaring non-recursive lets into recursive lets"

This (temporary) reverts commit 3e80c2b40213bebe302b1bd239af48b33f1b30ef.

Fixes #23550

- - - - -
24efa3bc by Ben Gamari at 2023-06-26T17:25:13-04:00
compiler: Introduce MO_{ACQUIRE,RELEASE}_FENCE

- - - - -
93e3b89a by Ben Gamari at 2023-06-26T17:25:13-04:00
compiler: Drop MO_WriteBarrier

rts: Drop write_barrier

- - - - -
76305a5c by Ben Gamari at 2023-06-26T17:25:13-04:00
rts: Drop load_store_barrier()

This is no longer used.

- - - - -
f750d138 by Ben Gamari at 2023-06-26T17:25:13-04:00
rts: Drop last instances of prim_{write,read}_barrier

- - - - -
90dabd2e by Ben Gamari at 2023-06-26T17:25:21-04:00
rts: Eliminate remaining uses of load_load_barrier

- - - - -
8c7fa772 by Sven Tennie at 2023-06-26T17:25:22-04:00
compiler: Drop MO_ReadBarrier

- - - - -
7a8a2008 by Ben Gamari at 2023-06-26T17:25:22-04:00
rts: Drop load_load_barrier

This is no longer used.

- - - - -
35999b16 by Sven Tennie at 2023-06-26T17:25:22-04:00
Delete write_barrier function

- - - - -


30 changed files:

- .gitlab/merge_request_templates/merge-request.md → .gitlab/merge_request_templates/Default.md
- compiler/GHC/Builtin/Types.hs
- compiler/GHC/ByteCode/Asm.hs
- compiler/GHC/ByteCode/Instr.hs
- compiler/GHC/ByteCode/Types.hs
- compiler/GHC/Cmm/MachOp.hs
- compiler/GHC/Cmm/Parser.y
- compiler/GHC/Cmm/Utils.hs
- compiler/GHC/CmmToAsm/AArch64/CodeGen.hs
- compiler/GHC/CmmToAsm/AArch64/Instr.hs
- compiler/GHC/CmmToAsm/AArch64/Ppr.hs
- compiler/GHC/CmmToAsm/PPC/CodeGen.hs
- compiler/GHC/CmmToAsm/Wasm/FromCmm.hs
- compiler/GHC/CmmToAsm/X86/CodeGen.hs
- compiler/GHC/CmmToC.hs
- compiler/GHC/CmmToLlvm/CodeGen.hs
- compiler/GHC/Core/TyCon.hs
- compiler/GHC/CoreToIface.hs
- compiler/GHC/HsToCore/Binds.hs
- compiler/GHC/HsToCore/Expr.hs
- compiler/GHC/IfaceToCore.hs
- compiler/GHC/Stg/Syntax.hs
- compiler/GHC/StgToByteCode.hs
- compiler/GHC/StgToCmm/ArgRep.hs
- compiler/GHC/StgToCmm/Lit.hs
- compiler/GHC/StgToCmm/Prim.hs
- compiler/GHC/StgToJS/Apply.hs
- compiler/GHC/StgToJS/Expr.hs
- compiler/GHC/StgToJS/Rts/Rts.hs
- compiler/GHC/StgToJS/Types.hs


The diff was not included because it is too large.


View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/c798dde6efd96c797a184d2e84ff03769463b791...35999b161f48f072a7b9e4b7f34a387145eb5263

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/c798dde6efd96c797a184d2e84ff03769463b791...35999b161f48f072a7b9e4b7f34a387145eb5263
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/20230626/a945773a/attachment.html>


More information about the ghc-commits mailing list