[commit: ghc] master: Performance enhancements in TcFlatten. (922168f)
git at git.haskell.org
git at git.haskell.org
Wed Dec 17 15:46:24 UTC 2014
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/922168fda3b3a3b96033a9c5d38f3fe70a99fd63/ghc
>---------------------------------------------------------------
commit 922168fda3b3a3b96033a9c5d38f3fe70a99fd63
Author: Richard Eisenberg <eir at cis.upenn.edu>
Date: Tue Dec 16 16:35:43 2014 -0500
Performance enhancements in TcFlatten.
This commit fixes some performance regressions introduced by 0cc47eb,
adding more `Coercible` magic to the solver. See Note
[flatten_many performance] in TcFlatten for more info.
The improvements do not quite restore the old numbers. Given that
the solver is really more involved now, I am accepting this regression.
The way forward (I believe) would be to have *two* flatteners: one
that deals only with nominal equalities and thus never checks roles,
and the more general one. A nice design of keeping this performant
without duplicating code eludes me, but someone else is welcome
to take a stab.
>---------------------------------------------------------------
922168fda3b3a3b96033a9c5d38f3fe70a99fd63
compiler/typecheck/TcFlatten.hs | 83 ++++++++++++++++++++++++++++++++-----
compiler/utils/MonadUtils.hs | 3 ++
testsuite/tests/perf/compiler/all.T | 16 ++++---
3 files changed, 87 insertions(+), 15 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 922168fda3b3a3b96033a9c5d38f3fe70a99fd63
More information about the ghc-commits
mailing list