Commits on Source (9)
-
48ab9ca5
-
b8df5c72
-
463ffe02
-
Pierre Le Marre authored
- Fix changelog for Unicode 15.0.0 - Fix the checksums of the downloaded Unicode files, in base's tool: "ucd2haskell".
Verifiedfbe1e86e -
We simply need to align to the word size for pointer tagging to work. On 32-bit targets, aligned((8)) is wasteful.
8a31d02e -
Ryan Scott authored
This implements this Core Libraries Proposal: https://github.com/haskell/core-libraries-committee/issues/85 In particular, it: 1. Exposes the `symbolSing` method of `KnownSymbol`, 2. Exports the abstract `SSymbol` type used in `symbolSing`, and 3. Defines an API for interacting with `SSymbol`. This also makes corresponding changes for `natSing`/`KnownNat`/`SNat` and `charSing`/`KnownChar`/`SChar`. This fixes #15183 and addresses part (2) of #21568.
532de368 -
Simon Peyton Jones authored
We were religiously keeping exit join points throughout, which had some bad effects (#21148, #22084). This MR does two things: * Arranges that exit join points are inhibited from inlining only in /one/ Simplifier pass (right after Exitification). See Note [Be selective about not-inlining exit join points] in GHC.Core.Opt.Exitify It's not a big deal, but it shaves 0.1% off compile times. * Inline used-once non-recursive join points very aggressively Given join j x = rhs in joinrec k y = ....j x.... where this is the only occurrence of `j`, we want to inline `j`. (Unless sm_keep_exits is on.) See Note [Inline used-once non-recursive join points] in GHC.Core.Opt.Simplify.Utils This is just a tidy-up really. It doesn't change allocation, but getting rid of a binding is always good. Very effect on nofib -- some up and down.
5b1c1381 -
Simon Peyton Jones authored
When doing performance debugging on #22084 / !8901, I found that the algorithm in SpecConstr.decreaseSpecCount was so aggressive that if there were /more/ specialisations available for an outer function, that could more or less kill off specialisation for an /inner/ function. (An example was in nofib/spectral/fibheaps.) This patch makes it a bit more aggressive, by dividing by 2, rather than by the number of outer specialisations.
0f74e329
Showing
- .editorconfig 4 additions, 0 deletions.editorconfig
- README.md 7 additions, 4 deletionsREADME.md
- compiler/GHC/Core/Opt/Exitify.hs 24 additions, 0 deletionscompiler/GHC/Core/Opt/Exitify.hs
- compiler/GHC/Core/Opt/Pipeline.hs 53 additions, 27 deletionscompiler/GHC/Core/Opt/Pipeline.hs
- compiler/GHC/Core/Opt/Simplify/Env.hs 9 additions, 6 deletionscompiler/GHC/Core/Opt/Simplify/Env.hs
- compiler/GHC/Core/Opt/Simplify/Utils.hs 23 additions, 6 deletionscompiler/GHC/Core/Opt/Simplify/Utils.hs
- compiler/GHC/Core/Opt/SpecConstr.hs 89 additions, 69 deletionscompiler/GHC/Core/Opt/SpecConstr.hs
- compiler/GHC/Driver/Config/Core/Opt/Simplify.hs 24 additions, 30 deletionscompiler/GHC/Driver/Config/Core/Opt/Simplify.hs
- compiler/GHC/Tc/Instance/Class.hs 4 additions, 4 deletionscompiler/GHC/Tc/Instance/Class.hs
- docs/users_guide/9.6.1-notes.rst 2 additions, 0 deletionsdocs/users_guide/9.6.1-notes.rst
- docs/users_guide/exts/pattern_synonyms.rst 2 additions, 2 deletionsdocs/users_guide/exts/pattern_synonyms.rst
- libraries/base/Data/Array/Byte.hs 1 addition, 2 deletionslibraries/base/Data/Array/Byte.hs
- libraries/base/GHC/TypeLits.hs 242 additions, 38 deletionslibraries/base/GHC/TypeLits.hs
- libraries/base/GHC/TypeNats.hs 164 additions, 65 deletionslibraries/base/GHC/TypeNats.hs
- libraries/base/changelog.md 7 additions, 1 deletionlibraries/base/changelog.md
- libraries/base/tests/T15183.hs 31 additions, 0 deletionslibraries/base/tests/T15183.hs
- libraries/base/tests/T15183.stdout 3 additions, 0 deletionslibraries/base/tests/T15183.stdout
- libraries/base/tests/all.T 1 addition, 0 deletionslibraries/base/tests/all.T
- libraries/base/tools/ucd2haskell/ucd.sh 3 additions, 7 deletionslibraries/base/tools/ucd2haskell/ucd.sh
- rts/include/Stg.h 2 additions, 2 deletionsrts/include/Stg.h
libraries/base/tests/T15183.hs
0 → 100644
libraries/base/tests/T15183.stdout
0 → 100644