[commit: ghc] wip/D4889: rts: Specialize hashing at call site rather than in struct (dfb2849)

git at git.haskell.org git at git.haskell.org
Thu Aug 2 21:31:47 UTC 2018


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

On branch  : wip/D4889
Link       : http://ghc.haskell.org/trac/ghc/changeset/dfb28494102c069bfea94fd5dfbc5b9ae77bf52f/ghc

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

commit dfb28494102c069bfea94fd5dfbc5b9ae77bf52f
Author: Crazycolorz5 <Crazycolorz5 at gmail.com>
Date:   Thu Aug 2 17:30:36 2018 -0400

    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


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

dfb28494102c069bfea94fd5dfbc5b9ae77bf52f
 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 dfb28494102c069bfea94fd5dfbc5b9ae77bf52f


More information about the ghc-commits mailing list