[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