Mesa (master): util: delete fnv1a hash function

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon May 25 19:56:39 UTC 2020


Module: Mesa
Branch: master
Commit: 46d5b07c5c39d1b8cf10976f6574a63062dea9c4
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=46d5b07c5c39d1b8cf10976f6574a63062dea9c4

Author: Dmitriy Nester <dmitriynester at gmail.com>
Date:   Thu Feb 27 15:42:21 2020 +0200

util: delete fnv1a hash function

xxhash is faster than fnv1a in almost all circumstances, so we're
switching to it globally.

Signed-off-by: Dmytro Nester <dmytro.nester at globallogic.com>
Reviewed-by: Eric Anholt <eric at anholt.net>
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2405
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4020>

---

 src/util/Makefile.sources |  1 -
 src/util/fnv1a.h          | 61 -----------------------------------------------
 src/util/hash_table.h     |  3 +--
 src/util/meson.build      |  1 -
 4 files changed, 1 insertion(+), 65 deletions(-)

diff --git a/src/util/Makefile.sources b/src/util/Makefile.sources
index 95e2f788c1e..dc1b205bfc9 100644
--- a/src/util/Makefile.sources
+++ b/src/util/Makefile.sources
@@ -22,7 +22,6 @@ MESA_UTIL_FILES := \
 	double.h \
 	fast_idiv_by_const.c \
 	fast_idiv_by_const.h \
-	fnv1a.h \
 	format/u_format.c \
 	format/u_format.h \
 	format/u_format_bptc.c \
diff --git a/src/util/fnv1a.h b/src/util/fnv1a.h
deleted file mode 100644
index 0f92d0b0e40..00000000000
--- a/src/util/fnv1a.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright © 2009,2012 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Eric Anholt <eric at anholt.net>
- *
- */
-
-#ifndef _FNV1A_H
-#define _FNV1A_H
-
-enum {
-   _mesa_fnv32_1a_offset_bias = 2166136261u,
-};
-
-/**
- * Quick FNV-1a hash implementation based on:
- * http://www.isthe.com/chongo/tech/comp/fnv/
- *
- * FNV-1a is not be the best hash out there -- Jenkins's lookup3 is supposed
- * to be quite good, and it probably beats FNV.  But FNV has the advantage
- * that it involves almost no code.  For an improvement on both, see Paul
- * Hsieh's http://www.azillionmonkeys.com/qed/hash.html
- */
-static inline uint32_t
-_mesa_fnv32_1a_accumulate_block(uint32_t hash, const void *data, size_t size)
-{
-   const uint8_t *bytes = (const uint8_t *)data;
-
-   while (size-- != 0) {
-      hash ^= *bytes;
-      hash = hash * 0x01000193;
-      bytes++;
-   }
-
-   return hash;
-}
-
-#define _mesa_fnv32_1a_accumulate(hash, expr) \
-   _mesa_fnv32_1a_accumulate_block(hash, &(expr), sizeof(expr))
-
-#endif
diff --git a/src/util/hash_table.h b/src/util/hash_table.h
index b1eb9d4e217..eabc88a5906 100644
--- a/src/util/hash_table.h
+++ b/src/util/hash_table.h
@@ -1,4 +1,4 @@
-/*
+/*
  * Copyright © 2009,2012 Intel Corporation
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
@@ -32,7 +32,6 @@
 #include <inttypes.h>
 #include <stdbool.h>
 #include "c99_compat.h"
-#include "fnv1a.h"
 #include "macros.h"
 
 #ifdef __cplusplus
diff --git a/src/util/meson.build b/src/util/meson.build
index 7ea125e5ac8..1fda53bafd5 100644
--- a/src/util/meson.build
+++ b/src/util/meson.build
@@ -46,7 +46,6 @@ files_mesa_util = files(
   'double.h',
   'fast_idiv_by_const.c',
   'fast_idiv_by_const.h',
-  'fnv1a.h',
   'format_r11g11b10f.h',
   'format_rgb9e5.h',
   'format_srgb.h',



More information about the mesa-commit mailing list