git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 1/4] hashmap: introduce memhash_feed to access the internals of FNV-1 hash

From
Stefan Beller <sbeller@google.com>
Date
Oct 24, 2017, 20:48 UTC
Message-ID
<CAGZ79kaQA90t6o2bn=H4Xrf2RiBOHc=gBE8XuKb+iHB6oEQVqA@mail.gmail.com>
In-Reply-To
<06c950e8-92c6-4926-ccac-2827d480f373@web.de>
>> +unsigned int memhash_feed(unsigned int hash_seed, const unsigned char next)
>
> Why is the second parameter const and the first one isn't?  (We tend
> not to bother with const for value types.)
will do.
Show 7 quoted lines
>> +             hash = memhash_feed(hash, c);
>
> I guess compilers inline a copy of the function here with -O2.  My
> knee-jerk reaction, however, is horror in the face of adding a function
> call to the inner loop of a hash function.  Do you have performance
> test results, ideally also with -O0?  And why not make memhash_feed()
> an inline function or macro to sidestep that issue?

My gut feeling was similar, but then I assumed compilers of today would be smart.

As per the discussion on a later patch, we could migrate all memhash* functions to fnv32.c except for the _feed, which will be static in its header fnv32.h

Thanks, Stefan

Previous: René ScharfeNext: Stefan Beller
Message 4 of 31 in “(x)diff cleanup: remove duplicate code”
  1. 0/4 (x)diff cleanup: remove duplicate codeStefan Beller, Oct 24, 2017
  2. 1/4 hashmap: introduce memhash_feed to access the internals of FNV-1 hashStefan Beller, Oct 24, 2017
  3. René ScharfeOct 24, 2017
  4. Stefan BellerOct 24, 2017
  5. 2/4 xdiff-interface: export comparing and hashing stringsStefan Beller, Oct 24, 2017
  6. René ScharfeOct 24, 2017
  7. Stefan BellerOct 24, 2017
  8. René ScharfeOct 26, 2017
  9. 3/4 xdiff: use stronger hash function internallyStefan Beller, Oct 24, 2017
  10. René ScharfeOct 24, 2017
  11. Stefan BellerOct 24, 2017
  12. Jonathan NiederOct 24, 2017
  13. 4/4 diff.c: get rid of duplicate implementationStefan Beller, Oct 24, 2017
  14. Stefan BellerOct 24, 2017
  15. 0/2 (x)diff cleanup: remove duplicate codeStefan Beller, Oct 24, 2017
  16. 1/2 xdiff-interface: export comparing and hashing stringsStefan Beller, Oct 24, 2017
  17. Eric SunshineOct 25, 2017
  18. 2/2 diff.c: get rid of duplicate implementationStefan Beller, Oct 24, 2017
  19. Junio C HamanoOct 25, 2017
  20. Stefan BellerOct 25, 2017
  21. 0/2 (x)diff cleanup: remove duplicate codeStefan Beller, Oct 25, 2017
  22. 2/2 diff.c: get rid of duplicate implementationStefan Beller, Oct 25, 2017
  23. Junio C HamanoOct 26, 2017
  24. René ScharfeOct 26, 2017
  25. Jeff KingOct 30, 2017
  26. Jeff KingOct 30, 2017
  27. 1/2 xdiff-interface: export comparing and hashing stringsStefan Beller, Oct 25, 2017
  28. René ScharfeOct 26, 2017
  29. Junio C HamanoOct 27, 2017
  30. Stefan BellerOct 27, 2017
  31. 1/5 fnv: migrate code from hashmap to fnvStefan Beller, Oct 24, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.