[commit: ghc] ghc-8.0: Improve piResultTys and friends (6ccb004)

git at git.haskell.org git at git.haskell.org
Sun Mar 13 22:33:12 UTC 2016


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

On branch  : ghc-8.0
Link       : http://ghc.haskell.org/trac/ghc/changeset/6ccb00466147602e8fc0dccf97f575afbbe1a436/ghc

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

commit 6ccb00466147602e8fc0dccf97f575afbbe1a436
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date:   Thu Feb 18 11:34:12 2016 +0000

    Improve piResultTys and friends
    
    Several things here:
    
    * Re-implement piResultTys so that its substitution has
      the correct in-scope set
    
      That means paying close attention to performance, since as we
      discovered in Trac #11371, it's a heavily used function and
      is often used on ordinary function types, with no foralls to
      worry about substituting.
    
    * Kill off applyTys, which was just the same as piResultTys.
    
    * Re-engineer MkCore.mkCoreApps so that it calls piResultTys,
      rather than repeatedly calling piResultTy.
    
    (cherry picked from commit 4d031cf91c5eed9b162703daee274bbbe94bdc42)


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

6ccb00466147602e8fc0dccf97f575afbbe1a436
 compiler/coreSyn/CoreLint.hs     |   2 +-
 compiler/coreSyn/CoreUtils.hs    |   6 +-
 compiler/coreSyn/MkCore.hs       |  26 +++----
 compiler/iface/BuildTyCl.hs      |   2 +-
 compiler/typecheck/TcClassDcl.hs |   7 +-
 compiler/typecheck/TcInstDcls.hs |   2 +-
 compiler/typecheck/TcType.hs     |   2 +-
 compiler/types/Coercion.hs       |   9 ++-
 compiler/types/Type.hs           | 145 ++++++++++++++++++++++-----------------
 9 files changed, 109 insertions(+), 92 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 6ccb00466147602e8fc0dccf97f575afbbe1a436


More information about the ghc-commits mailing list