[commit: ghc] wip/nested-cpr: Add Converges to DmdResult (24fa001)
git at git.haskell.org
git at git.haskell.org
Tue Feb 4 18:26:47 UTC 2014
Repository : ssh://git@git.haskell.org/ghc
On branch : wip/nested-cpr
Link : http://ghc.haskell.org/trac/ghc/changeset/24fa001912799578d1a658e7d09343a0bd97e748/ghc
>---------------------------------------------------------------
commit 24fa001912799578d1a658e7d09343a0bd97e748
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.
>---------------------------------------------------------------
24fa001912799578d1a658e7d09343a0bd97e748
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 24fa001912799578d1a658e7d09343a0bd97e748
More information about the ghc-commits
mailing list