[commit: ghc] wip/D5082: rts: Specialize hashing at call site rather than in struct. (b019949)

git at git.haskell.org git at git.haskell.org
Mon Jan 21 00:23:48 UTC 2019


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

On branch  : wip/D5082
Link       : http://ghc.haskell.org/trac/ghc/changeset/b019949e02b3ed449f0524f5703392d1b49e3f4b/ghc

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

commit b019949e02b3ed449f0524f5703392d1b49e3f4b
Author: Crazycolorz5 <Crazycolorz5 at gmail.com>
Date:   Sun Jan 20 19:22:55 2019 -0500

    rts: Specialize hashing at call site rather than in struct.
    
    Separate word and string hash tables on the type level, and do not
    store the hashing function.
    Thus when a different hash function is desire it is provided upon
    accessing the table. This is worst case the same as
    before the change, and in the majority of cases is better. Also mark
    the functions for aggressive inlining to improve performance.
    {F1686506}
    
    Reviewers: bgamari, erikd, simonmar
    
    Subscribers: rwbarton, thomie, carter
    
    GHC Trac Issues: #13165
    
    Differential Revision: https://phabricator.haskell.org/D4889


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

b019949e02b3ed449f0524f5703392d1b49e3f4b
 rts/FileLock.c        |  12 ++---
 rts/Hash.c            | 124 +++++++++++++++++++++++++++++++++++---------------
 rts/Hash.h            |  46 +++++++++++++------
 rts/Hpc.c             |  12 ++---
 rts/Linker.c          |  12 ++---
 rts/LinkerInternals.h |   8 ++--
 rts/RtsSymbolInfo.c   |   6 +--
 rts/StaticPtrTable.c  |  14 +++---
 8 files changed, 152 insertions(+), 82 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 b019949e02b3ed449f0524f5703392d1b49e3f4b


More information about the ghc-commits mailing list