[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