[commit: ghc] master: Make module membership on ModuleGraph faster (b8fec69)

git at git.haskell.org git at git.haskell.org
Tue Jul 18 12:27:38 UTC 2017


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

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

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

commit b8fec6950ad99cbf11cd22698b8d5ab35afb828f
Author: Bartosz Nitka <niteria at gmail.com>
Date:   Wed May 31 10:47:03 2017 -0700

    Make module membership on ModuleGraph faster
    
    When loading/reloading with a large number of modules
    (>5000) the cost of linear lookups becomes significant.
    
    The changes here made `:reload` go from 6s to 1s on my
    test case.
    
    The bottlenecks were `needsLinker` in `DriverPipeline` and
    `getModLoop` in `GhcMake`.
    
    Test Plan: ./validate
    
    Reviewers: simonmar, austin, bgamari
    
    Subscribers: thomie, rwbarton
    
    Differential Revision: https://phabricator.haskell.org/D3703


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

b8fec6950ad99cbf11cd22698b8d5ab35afb828f
 compiler/backpack/DriverBkp.hs                |  5 +-
 compiler/basicTypes/Module.hs                 |  5 +-
 compiler/main/DriverMkDepend.hs               | 16 +++---
 compiler/main/DriverPipeline.hs               |  5 +-
 compiler/main/GHC.hs                          | 12 +++--
 compiler/main/GhcMake.hs                      | 73 ++++++++++++++++++---------
 compiler/main/HscMain.hs                      |  2 +-
 compiler/main/HscTypes.hs                     | 67 ++++++++++++++++++++----
 ghc/GHCi/UI.hs                                | 23 +++++----
 ghc/GHCi/UI/Tags.hs                           |  2 +-
 testsuite/tests/ghc-api/apirecomp001/myghc.hs |  4 +-
 utils/check-api-annotations/Main.hs           | 10 ++--
 utils/check-ppr/Main.hs                       |  2 +-
 utils/ghctags/Main.hs                         |  6 +--
 14 files changed, 158 insertions(+), 74 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 b8fec6950ad99cbf11cd22698b8d5ab35afb828f


More information about the ghc-commits mailing list