[commit: ghc] wip/nested-cpr: Add Converges to DmdResult (5c14e89)
git at git.haskell.org
git at git.haskell.org
Fri Jan 17 23:49:44 UTC 2014
Repository : ssh://git@git.haskell.org/ghc
On branch : wip/nested-cpr
Link : http://ghc.haskell.org/trac/ghc/changeset/5c14e89920cd25c6e7c67db25c70fc88db84ce28/ghc
>---------------------------------------------------------------
commit 5c14e89920cd25c6e7c67db25c70fc88db84ce28
Author: Joachim Breitner <mail at joachim-breitner.de>
Date: Thu Dec 12 15:45:19 2013 +0000
Add Converges to DmdResult
to detect definite convergence (required for nested CPR).
Notable details:
* botDmdType is no longer the unit for lubDmdType. So do not use foldr
lubDmdType botDmdType when combinding the branches of a case, to
avoid throwing away information.
* avoid declaring recursive things as terminating for sure, by removing
the Converges flag from a loop breaker.
* cprProdSig comes with a Converging flag, so it is removed using
sigMayDiverge where necessary
* a data constructor worker is not converging, if it is strict in any
of its fields.
>---------------------------------------------------------------
5c14e89920cd25c6e7c67db25c70fc88db84ce28
compiler/basicTypes/Demand.lhs | 67 ++++++++++++++++----
compiler/basicTypes/MkId.lhs | 5 +-
compiler/stranal/DmdAnal.lhs | 15 +++--
.../tests/simplCore/should_compile/T7360.stderr | 2 +-
.../simplCore/should_compile/spec-inline.stderr | 2 +-
5 files changed, 70 insertions(+), 21 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 5c14e89920cd25c6e7c67db25c70fc88db84ce28
More information about the ghc-commits
mailing list