[commit: ghc] master: Reorganise the work list, so that flattening goals are treated in the right order (13b0b46)

git at git.haskell.org git at git.haskell.org
Wed Dec 10 16:00:25 UTC 2014


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

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/13b0b460d365828c7d41b39d2ce7d5bbe4c69f98/ghc

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

commit 13b0b460d365828c7d41b39d2ce7d5bbe4c69f98
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date:   Tue Dec 9 17:38:12 2014 +0000

    Reorganise the work list, so that flattening goals are treated in the right order
    
    Trac #9872 showed the importance of processing goals in depth-first, so that
    we do not build up a huge pool of suspended function calls, waiting for their
    children to fire.  There is a detailed explanation in
         Note [The flattening work list]
    in TcFlatten
    
    The effect for Trac #9872 (slow1.hs) is dramatic.  We go from too long
    to wait down to 28Gbyte allocation.  GHC 7.8.3 did 116Gbyte allocation!


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

13b0b460d365828c7d41b39d2ce7d5bbe4c69f98
 compiler/typecheck/TcCanonical.hs                  |  32 +--
 compiler/typecheck/TcFlatten.hs                    |  97 ++++----
 compiler/typecheck/TcInteract.hs                   |  15 +-
 compiler/typecheck/TcRnMonad.hs                    |  10 +-
 compiler/typecheck/TcSMonad.hs                     | 246 +++++++++++++--------
 .../indexed-types/should_fail/NoMatchErr.stderr    |   2 +-
 .../tests/indexed-types/should_fail/T2544.stderr   |  21 +-
 .../tests/indexed-types/should_fail/T2627b.stderr  |   4 +-
 .../tests/indexed-types/should_fail/T4093a.hs      |  24 +-
 .../tests/indexed-types/should_fail/T4093a.stderr  |   4 +-
 .../tests/indexed-types/should_fail/T7010.stderr   |   2 +-
 .../tests/indexed-types/should_fail/T9036.stderr   |   4 +-
 .../typecheck/should_fail/FrozenErrorTests.stderr  |   2 +-
 testsuite/tests/typecheck/should_fail/T5853.stderr |  25 ++-
 14 files changed, 288 insertions(+), 200 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 13b0b460d365828c7d41b39d2ce7d5bbe4c69f98


More information about the ghc-commits mailing list