Simon Peyton Jones pushed to branch wip/spj-unf-size at Glasgow Haskell Compiler / GHC
Commits:
c56567ec by Simon Peyton Jones at 2026-01-15T23:19:04+00:00
Add evals for strict data-con args in worker-functions
This fixes #26722, by adding an eval in a worker for
arguments of strict data constructors, even if the
function body uses them strictly.
See (WIS1) in Note [Which Ids should be strictified]
I took the opportunity to make substantial improvements in the
documentation for call-by-value functions. See especially
Note [CBV Function Ids: overview] in GHC.Types.Id.Info
Note [Which Ids should be CBV candidates?] ditto
Note [EPT enforcement] in GHC.Stg.EnforceEpt
among others.
- - - - -
9719ce5d by Simon Peyton Jones at 2026-01-15T23:19:04+00:00
Improve `interestingArg`
This function analyses a function's argument to see if it is
interesting enough to deserve an inlining discount. Improvements
for
* LitRubbish arguments
* exprIsExpandable arguments
See Note [Interesting arguments] which is substantially rewritten.
- - - - -
7b616b9f by Cheng Shao at 2026-01-16T06:45:00-05:00
compiler: fix regression when compiling foreign stubs in the rts unit
This patch fixes a regression when compiling foreign stubs in the rts
unit introduced in 05e25647f72bc102061af3f20478aa72bff6ff6e. A simple
revert would fix it, but it's better to implement a proper fix with
comment for better understanding of the underlying problem, see the
added comment for explanation.
Co-authored-by: Codex
- - - - -
c343ef64 by Sylvain Henry at 2026-01-16T06:45:51-05:00
base: remove GHC.JS.Prim.Internal.Build (#23432)
See accepted CLC proposal https://github.com/haskell/core-libraries-committee/issues/329
- - - - -
643cc5e9 by Simon Peyton Jones at 2026-01-16T12:23:48+00:00
Work in progress on unfoldings re-engineering
- - - - -
6dd9a7f2 by Simon Peyton Jones at 2026-01-16T12:23:48+00:00
Fix a bad, subtle bug in exprIsConApp_maybe
In extend_in_scope We were simply overwriting useful bindings in the
in-scope set, notably ones that had unfoldings. That could lead to
repeated simplifier iterations.
- - - - -
9d3512a6 by Simon Peyton Jones at 2026-01-16T12:24:32+00:00
Minor refactoring...
Plus: don't be so eager to inline when argument is a non-value,
but has some struture.
We want *some* incentive though.
- - - - -
957256d3 by Simon Peyton Jones at 2026-01-16T12:26:15+00:00
Adjust
* Reduce caseElimDiscount to 10
Example: f_nand in spectral/hartel/event is quite big but was still
getting inlined; that make f_simulate too big for SpecConstr
* Increase jumpSize. Not so much cheaper than tail calls.
I'm trying making them the same size.
- - - - -
d4a49670 by Simon Peyton Jones at 2026-01-16T12:26:15+00:00
Typo
- - - - -
1c711a53 by Simon Peyton Jones at 2026-01-16T12:26:16+00:00
Wibbles
- - - - -
e388a025 by Simon Peyton Jones at 2026-01-16T12:26:16+00:00
Wibble unused variables
- - - - -
e497bf91 by Simon Peyton Jones at 2026-01-16T12:26:16+00:00
Make case expressions and applications a bit bigger
- - - - -
593743bb by Simon Peyton Jones at 2026-01-16T12:26:16+00:00
Wibbles
- - - - -
b335d5d7 by Simon Peyton Jones at 2026-01-16T12:40:20+00:00
Wibble
- - - - -
41 changed files:
- compiler/GHC/Builtin/PrimOps.hs
- compiler/GHC/Core.hs
- compiler/GHC/Core/Lint.hs
- compiler/GHC/Core/Opt/Arity.hs
- compiler/GHC/Core/Opt/LiberateCase.hs
- compiler/GHC/Core/Opt/OccurAnal.hs
- compiler/GHC/Core/Opt/Pipeline.hs
- compiler/GHC/Core/Opt/Simplify/Env.hs
- compiler/GHC/Core/Opt/Simplify/Inline.hs
- compiler/GHC/Core/Opt/Simplify/Iteration.hs
- compiler/GHC/Core/Opt/Simplify/Utils.hs
- compiler/GHC/Core/Opt/SpecConstr.hs
- compiler/GHC/Core/Opt/WorkWrap.hs
- compiler/GHC/Core/Opt/WorkWrap/Utils.hs
- compiler/GHC/Core/Ppr.hs
- compiler/GHC/Core/Seq.hs
- compiler/GHC/Core/SimpleOpt.hs
- compiler/GHC/Core/Subst.hs
- compiler/GHC/Core/Tidy.hs
- compiler/GHC/Core/TyCo/Subst.hs
- compiler/GHC/Core/Unfold.hs
- compiler/GHC/Core/Unfold/Make.hs
- compiler/GHC/Core/Utils.hs
- compiler/GHC/CoreToStg/Prep.hs
- compiler/GHC/Driver/CodeOutput.hs
- compiler/GHC/Driver/Config/Core/Opt/Simplify.hs
- compiler/GHC/Stg/EnforceEpt.hs
- compiler/GHC/Stg/Lint.hs
- compiler/GHC/StgToCmm/Closure.hs
- compiler/GHC/StgToCmm/Expr.hs
- compiler/GHC/Types/Id.hs
- compiler/GHC/Types/Id/Info.hs
- compiler/GHC/Types/Id/Make.hs
- libraries/base/base.cabal.in
- libraries/base/changelog.md
- − libraries/base/src/GHC/JS/Prim/Internal/Build.hs
- testsuite/tests/interface-stability/base-exports.stdout-javascript-unknown-ghcjs
- testsuite/tests/simplCore/should_compile/T18013.stderr
- + testsuite/tests/simplCore/should_compile/T26722.hs
- + testsuite/tests/simplCore/should_compile/T26722.stderr
- testsuite/tests/simplCore/should_compile/all.T
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/440f2511a4b9c4f82d59ab282b298d5...
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/440f2511a4b9c4f82d59ab282b298d5...
You're receiving this email because of your account on gitlab.haskell.org.