[Mesa-dev] [PATCH 0/7] Prehash all the things

Thomas Helland thomashelland90 at gmail.com
Thu Feb 2 20:57:26 UTC 2017

This series converts multiple users of the hash table to reuse the
hash when searching, and then inserting an element if the search did
not find an entry. Since we have the functionality we should take
advantage of it to lower the number of calls to the hashing functions.
I'm not quite sold on the first patch, but the rest I like. I'll work
on getting some performance numbers up shortly.

PS: This will not show any effect if built with asserts, as the hash
table implementation asserts that the pre_hash is correct by doing
a hash of the key inside an assert. So if one wants to benchmark this
one will need to take care of that.

Thomas Helland (7):
  mesa: Avoid unnecessary string hashing in symbol table
  util: Avoid computing hash twice in string_to_uint_map
  glsl: Prehash to avoid computing the hash twice
  glsl: Prehash to avoid hashing two times when inserting
  glsl: Don't hash two times when inserting in constant propagation
  nir: Prehash in instr_set to avoid unnecessary hashing
  glsl: Hash only once if inserting new elemnt in refcount hash table

 src/compiler/glsl/ir_variable_refcount.cpp          |  7 +++++--
 src/compiler/glsl/opt_constant_propagation.cpp      |  8 +++++---
 src/compiler/glsl/opt_constant_variable.cpp         |  6 ++++--
 src/compiler/glsl/opt_copy_propagation_elements.cpp |  7 +++++--
 src/compiler/nir/nir_instr_set.c                    |  8 ++++++--
 src/mesa/program/symbol_table.c                     | 20 +++++++++++++-------
 src/util/string_to_uint_map.h                       |  9 ++++++---
 7 files changed, 44 insertions(+), 21 deletions(-)


More information about the mesa-dev mailing list