[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