[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