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

git at git.haskell.org git at git.haskell.org
Tue Aug 21 16:58:51 UTC 2018


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

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

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

commit fd4967573cdc43aaa73447324ec30519aa81b236
Author: Crazycolorz5 <Crazycolorz5 at gmail.com>
Date:   Tue Aug 21 12:58:26 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


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

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


More information about the ghc-commits mailing list