[commit: ghc] master: Add a final demand analyzer run right before TidyCore (f4fd98c)

git at git.haskell.org git at git.haskell.org
Thu Apr 14 20:21:53 UTC 2016


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/f4fd98c717a7f68d76a3054021b3be65d1ebad82/ghc

>---------------------------------------------------------------

commit f4fd98c717a7f68d76a3054021b3be65d1ebad82
Author: Joachim Breitner <mail at joachim-breitner.de>
Date:   Thu Mar 31 10:18:15 2016 +0200

    Add a final demand analyzer run right before TidyCore
    
    in order to have precise used-once information in the exported
    strictness signatures, as well as precise used-once information on
    thunks. This avoids the bad effects of #11731.
    
    The subsequent worker-wrapper pass is responsible for removing the
    demand environment part of the strictness signature. It does not run
    after the final demand analyzer pass, so remove this also in CoreTidy.
    
    The subsequent worker-wrapper pass is also responsible for removing
    used-once-information from the demands and strictness signatures, as
    these might not be preserved by the simplifier. This is _not_ done by
    CoreTidy, because we _do_ want this information, as produced by the last
    round of the demand analyzer, to be available to the code generator.
    
    Differential Revision: https://phabricator.haskell.org/D2073


>---------------------------------------------------------------

f4fd98c717a7f68d76a3054021b3be65d1ebad82
 compiler/basicTypes/Demand.hs                      | 72 ++++++++++++++------
 compiler/basicTypes/Id.hs                          | 11 ++-
 compiler/basicTypes/IdInfo.hs                      | 15 +++-
 compiler/coreSyn/CoreTidy.hs                       |  5 +-
 compiler/simplCore/SimplCore.hs                    |  5 ++
 compiler/stranal/DmdAnal.hs                        | 28 ++++++++
 compiler/stranal/WorkWrap.hs                       | 79 ++++++++++++++++------
 testsuite/tests/perf/compiler/all.T                | 27 +++++---
 .../tests/simplCore/should_compile/T4908.stderr    |  6 +-
 .../simplCore/should_compile/spec-inline.stderr    |  4 +-
 testsuite/tests/simplCore/should_run/all.T         |  2 +-
 .../tests/stranal/should_compile/T10694.stderr     | 61 +++++++++++++++++
 .../stranal/sigs/BottomFromInnerLambda.stderr      |  7 ++
 testsuite/tests/stranal/sigs/DmdAnalGADTs.stderr   | 14 ++++
 testsuite/tests/stranal/sigs/HyperStrUse.stderr    |  6 ++
 testsuite/tests/stranal/sigs/StrAnalExample.stderr |  6 ++
 testsuite/tests/stranal/sigs/T8569.stderr          |  9 +++
 testsuite/tests/stranal/sigs/T8598.stderr          |  6 ++
 testsuite/tests/stranal/sigs/UnsatFun.stderr       | 12 ++++
 19 files changed, 313 insertions(+), 62 deletions(-)

Diff suppressed because of size. To see it, use:

    git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc f4fd98c717a7f68d76a3054021b3be65d1ebad82


More information about the ghc-commits mailing list