• Sebastian Graf's avatar
    Compute demand signatures assuming idArity · 70f93c99
    Sebastian Graf authored
    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%
            reptile          -0.0%     -1.2%
                scc           0.0%     -0.1%
    --------------------------------------------------------------------------------
                Min          -0.0%     -1.2%
                Max          +0.3%     +0.8%
     Geometric Mean          +0.0%     -0.0%
    70f93c99
Name
Last commit
Last update
.circleci Loading commit data...
.gitlab Loading commit data...
bindisttest Loading commit data...
compiler Loading commit data...
distrib Loading commit data...
docs Loading commit data...
driver Loading commit data...
ghc Loading commit data...
hadrian Loading commit data...
includes Loading commit data...
libffi Loading commit data...
libffi-tarballs @ 96d02800 Loading commit data...
libraries Loading commit data...
mk Loading commit data...
nofib @ 7a702cc1 Loading commit data...
rts Loading commit data...
rules Loading commit data...
testsuite Loading commit data...
utils Loading commit data...
.appveyor.sh Loading commit data...
.ghcid Loading commit data...
.gitignore Loading commit data...
.gitlab-ci.yml Loading commit data...
.gitmodules Loading commit data...
.mailmap Loading commit data...
.travis.yml Loading commit data...
ANNOUNCE Loading commit data...
CODEOWNERS Loading commit data...
HACKING.md Loading commit data...
INSTALL.md Loading commit data...
LICENSE Loading commit data...
MAKEHELP.md Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
Vagrantfile Loading commit data...
aclocal.m4 Loading commit data...
appveyor.yml Loading commit data...
boot Loading commit data...
build.nix.sh Loading commit data...
config.guess Loading commit data...
config.sub Loading commit data...
configure.ac Loading commit data...
ghc.mk Loading commit data...
install-sh Loading commit data...
llvm-passes Loading commit data...
llvm-targets Loading commit data...
packages Loading commit data...
settings.in Loading commit data...
validate Loading commit data...