[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