[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