[commit: ghc] master: Record evaluated-ness on workers and wrappers (6b976eb)

git at git.haskell.org git at git.haskell.org
Fri Jan 13 09:03:00 UTC 2017


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

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

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

commit 6b976eb89fe72827f226506d16d3721ba4e28bab
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date:   Fri Jan 13 08:56:53 2017 +0000

    Record evaluated-ness on workers and wrappers
    
    In Trac #13027, comment:20, I noticed that wrappers created after
    demand analysis weren't recording the evaluated-ness of strict
    constructor arguments.  In the ticket that led to a (debatable)
    Lint error but in general the more we know about evaluated-ness
    the better we can optimise.
    
    This commit adds that info both in the worker (on args) and in
    the wrapper (on CPR result patterns).
    
    See Note [Record evaluated-ness in worker/wrapper] in WwLib
    
    On the way I defined Id.setCaseBndrEvald, and used it to shorten
    the code in a few other places


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

6b976eb89fe72827f226506d16d3721ba4e28bab
 compiler/basicTypes/Id.hs      |  13 ++++-
 compiler/coreSyn/CoreUtils.hs  |   6 +--
 compiler/simplCore/Simplify.hs |  12 ++---
 compiler/stranal/WwLib.hs      | 107 ++++++++++++++++++++++++++++++++---------
 4 files changed, 101 insertions(+), 37 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 6b976eb89fe72827f226506d16d3721ba4e28bab


More information about the ghc-commits mailing list