Compute demand signatures assuming idArity
This does four things: 1. Look at `idArity` instead of manifest lambdas to decide whether to use LetUp 2. Compute the strictness signature in LetDown assuming at least `idArity` incoming arguments 3. Remove the special case for trivial RHSs, which is subsumed by 2 4. Don't perform the W/W split when doing so would eta expand a binding. Otherwise we would eta expand PAPs, causing unnecessary churn in the Simplifier. NoFib Results -------------------------------------------------------------------------------- Program Allocs Instrs -------------------------------------------------------------------------------- fannkuch-redux +0.3% 0.0% gg -0.0% -0.1% maillist +0.2% +0.2% minimax 0.0% +0.8% pretty 0.0% -0.1% reptile -0.0% -1.2% -------------------------------------------------------------------------------- Min -0.0% -1.2% Max +0.3% +0.8% Geometric Mean +0.0% -0.0%
parent
1abb76ab
No related branches found
No related tags found
Pipeline #5366 passed with warnings
Stage: lint
Stage: build
Stage: full-build
Stage: cleanup
Stage: packaging
Stage: hackage
Stage: deploy
Showing
- compiler/basicTypes/Demand.hs 89 additions, 24 deletionscompiler/basicTypes/Demand.hs
- compiler/basicTypes/Id.hs 1 addition, 0 deletionscompiler/basicTypes/Id.hs
- compiler/basicTypes/IdInfo.hs 28 additions, 16 deletionscompiler/basicTypes/IdInfo.hs
- compiler/basicTypes/Var.hs 8 additions, 2 deletionscompiler/basicTypes/Var.hs
- compiler/coreSyn/CoreArity.hs 1 addition, 1 deletioncompiler/coreSyn/CoreArity.hs
- compiler/coreSyn/CoreLint.hs 3 additions, 23 deletionscompiler/coreSyn/CoreLint.hs
- compiler/coreSyn/CoreUnfold.hs 15 additions, 4 deletionscompiler/coreSyn/CoreUnfold.hs
- compiler/simplCore/SimplMonad.hs 3 additions, 2 deletionscompiler/simplCore/SimplMonad.hs
- compiler/simplCore/SimplUtils.hs 9 additions, 1 deletioncompiler/simplCore/SimplUtils.hs
- compiler/stranal/DmdAnal.hs 201 additions, 96 deletionscompiler/stranal/DmdAnal.hs
- compiler/stranal/WorkWrap.hs 37 additions, 4 deletionscompiler/stranal/WorkWrap.hs
- compiler/stranal/WwLib.hs 1 addition, 1 deletioncompiler/stranal/WwLib.hs
- testsuite/tests/perf/compiler/WWRec.hs 73 additions, 0 deletionstestsuite/tests/perf/compiler/WWRec.hs
- testsuite/tests/perf/compiler/all.T 7 additions, 0 deletionstestsuite/tests/perf/compiler/all.T
- testsuite/tests/stranal/sigs/NewtypeArity.hs 10 additions, 0 deletionstestsuite/tests/stranal/sigs/NewtypeArity.hs
- testsuite/tests/stranal/sigs/NewtypeArity.stderr 18 additions, 0 deletionstestsuite/tests/stranal/sigs/NewtypeArity.stderr
- testsuite/tests/stranal/sigs/all.T 1 addition, 0 deletionstestsuite/tests/stranal/sigs/all.T
Loading