[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