[commit: ghc] wip/T11731: Add a final demand analyzer run right before TidyCore (cf883c4)
git at git.haskell.org
git at git.haskell.org
Sun Apr 3 21:09:51 UTC 2016
Repository : ssh://git@git.haskell.org/ghc
On branch : wip/T11731
Link : http://ghc.haskell.org/trac/ghc/changeset/cf883c4a5fdca91cf1487eab2787da6e62e39f7d/ghc
>---------------------------------------------------------------
commit cf883c4a5fdca91cf1487eab2787da6e62e39f7d
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.
>---------------------------------------------------------------
cf883c4a5fdca91cf1487eab2787da6e62e39f7d
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/haddock/all.T | 3 +-
.../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, 299 insertions(+), 52 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 cf883c4a5fdca91cf1487eab2787da6e62e39f7d
More information about the ghc-commits
mailing list