diff options
author | H. Peter Anvin <hpa@zytor.com> | 2007-10-02 17:40:00 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2007-10-02 17:40:00 -0700 |
commit | a59795c9860a9a31e6ccf3555ef0e0ca04a0dd87 (patch) | |
tree | 608679c4a8021e3e2e28644d1e3059a5e0091e4c /hashtbl.c | |
parent | 17394a7d8e3240c6dafddab7725d953904208e5a (diff) | |
download | nasm-a59795c9860a9a31e6ccf3555ef0e0ca04a0dd87.tar.gz nasm-a59795c9860a9a31e6ccf3555ef0e0ca04a0dd87.tar.bz2 nasm-a59795c9860a9a31e6ccf3555ef0e0ca04a0dd87.zip |
Use the crc64 we already use as the perfect hash function prehash
Use the same crc64 that we already use for the symbol table hash as
the perfect hash function prehash. We appear to get radically faster
convergence this way, and the crc64 is probably *faster*, since the
table likely to be resident in memory.
Diffstat (limited to 'hashtbl.c')
-rw-r--r-- | hashtbl.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -48,7 +48,7 @@ void **hash_find(struct hash_table *head, const char *key, struct hash_insert *insert) { struct hash_tbl_node *np; - uint64_t hash = crc64(key); + uint64_t hash = crc64(CRC64_INIT, key); struct hash_tbl_node *tbl = head->table; size_t mask = head->size-1; size_t pos = hash & mask; @@ -76,7 +76,7 @@ void **hash_findi(struct hash_table *head, const char *key, struct hash_insert *insert) { struct hash_tbl_node *np; - uint64_t hash = crc64i(key); + uint64_t hash = crc64i(CRC64_INIT, key); struct hash_tbl_node *tbl = head->table; size_t mask = head->size-1; size_t pos = hash & mask; |