[commit: ghc] wip/rae: Cache coercionKind, fixing #11598. (1ac0607)

git at git.haskell.org git at git.haskell.org
Tue Mar 8 16:33:00 UTC 2016


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

On branch  : wip/rae
Link       : http://ghc.haskell.org/trac/ghc/changeset/1ac06072fa1b6d87f90e10d1f7692b5315eb31bf/ghc

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

commit 1ac06072fa1b6d87f90e10d1f7692b5315eb31bf
Author: Richard Eisenberg <eir at cis.upenn.edu>
Date:   Wed Feb 24 23:28:07 2016 -0500

    Cache coercionKind, fixing #11598.
    
    This commit creates a new datatype, CoercionRep, that
    stores the details of a coercion. The Coercion datatype now
    stores its kind, role, and free variables, so looking up
    these details is very quick. In the cases that we never need
    these details, I believe that laziness will prevent us from
    calculating them.


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

1ac06072fa1b6d87f90e10d1f7692b5315eb31bf
 compiler/coreSyn/CoreFVs.hs         |   56 +-
 compiler/coreSyn/CoreLint.hs        |  209 +++---
 compiler/iface/IfaceSyn.hs          |    4 +-
 compiler/iface/IfaceType.hs         |  127 ++--
 compiler/iface/TcIface.hs           |   60 +-
 compiler/prelude/TysWiredIn.hs-boot |    2 +
 compiler/simplCore/Simplify.hs      |    1 +
 compiler/specialise/Rules.hs        |   57 +-
 compiler/typecheck/FamInst.hs       |    2 +-
 compiler/typecheck/TcEvidence.hs    |    6 +-
 compiler/typecheck/TcHsSyn.hs       |   18 +-
 compiler/typecheck/TcMType.hs       |   42 +-
 compiler/typecheck/TcSMonad.hs      |    4 +-
 compiler/typecheck/TcTyClsDecls.hs  |    2 +-
 compiler/typecheck/TcType.hs        |  129 ++--
 compiler/typecheck/TcValidity.hs    |   26 +-
 compiler/types/Coercion.hs          | 1214 +++++++++++++++++++----------------
 compiler/types/Coercion.hs-boot     |   36 +-
 compiler/types/FamInstEnv.hs        |  144 ++---
 compiler/types/OptCoercion.hs       |  654 +++++++++++++++----
 compiler/types/TyCoRep.hs           |  706 ++++++++++++++------
 compiler/types/TyCoRep.hs-boot      |    1 +
 compiler/types/Type.hs              |  228 +++----
 compiler/types/Type.hs-boot         |   10 +-
 compiler/types/Unify.hs             |  223 +------
 compiler/utils/FV.hs                |   12 +
 compiler/utils/Pair.hs              |    4 +-
 27 files changed, 2319 insertions(+), 1658 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 1ac06072fa1b6d87f90e10d1f7692b5315eb31bf


More information about the ghc-commits mailing list