Mesa (master): util/hash_table: update users to use new optimal integer hash functions
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Jan 23 17:36:11 UTC 2020
Module: Mesa
Branch: master
Commit: f77369086ced2a76dd33358d28b7bb0706b1157f
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f77369086ced2a76dd33358d28b7bb0706b1157f
Author: Anthony Pesch <inolen at gmail.com>
Date: Thu Jan 16 09:11:16 2020 -0500
util/hash_table: update users to use new optimal integer hash functions
Reviewed-by: Eric Anholt <eric at anholt.net>
Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3475>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3475>
---
src/broadcom/compiler/vir_live_variables.c | 14 +-------------
src/etnaviv/drm/etnaviv_device.c | 16 ++--------------
src/freedreno/drm/freedreno_device.c | 17 ++---------------
src/gallium/drivers/iris/iris_bufmgr.c | 16 ++--------------
src/gallium/drivers/vc4/vc4_qir_live_variables.c | 14 +-------------
src/mesa/drivers/dri/i965/brw_bufmgr.c | 16 ++--------------
6 files changed, 10 insertions(+), 83 deletions(-)
diff --git a/src/broadcom/compiler/vir_live_variables.c b/src/broadcom/compiler/vir_live_variables.c
index d3ca02f1882..48d0201dc49 100644
--- a/src/broadcom/compiler/vir_live_variables.c
+++ b/src/broadcom/compiler/vir_live_variables.c
@@ -33,18 +33,6 @@ struct partial_update_state {
uint8_t channels;
};
-static uint32_t
-int_hash(const void *key)
-{
- return _mesa_hash_data(key, sizeof(int));
-}
-
-static bool
-int_compare(const void *key1, const void *key2)
-{
- return *(const int *)key1 == *(const int *)key2;
-}
-
static int
vir_reg_to_var(struct qreg reg)
{
@@ -197,7 +185,7 @@ static void
vir_setup_def_use(struct v3d_compile *c)
{
struct hash_table *partial_update_ht =
- _mesa_hash_table_create(c, int_hash, int_compare);
+ _mesa_hash_table_create(c, _mesa_hash_int, _mesa_key_int_equal);
int ip = 0;
vir_for_each_block(block, c) {
diff --git a/src/etnaviv/drm/etnaviv_device.c b/src/etnaviv/drm/etnaviv_device.c
index 32991d0a5b3..b1fc6b91c89 100644
--- a/src/etnaviv/drm/etnaviv_device.c
+++ b/src/etnaviv/drm/etnaviv_device.c
@@ -31,18 +31,6 @@
static pthread_mutex_t etna_drm_table_lock = PTHREAD_MUTEX_INITIALIZER;
-static uint32_t
-u32_hash(const void *key)
-{
- return _mesa_hash_data(key, sizeof(uint32_t));
-}
-
-static bool
-u32_equals(const void *key1, const void *key2)
-{
- return *(const uint32_t *)key1 == *(const uint32_t *)key2;
-}
-
struct etna_device *etna_device_new(int fd)
{
struct etna_device *dev = calloc(sizeof(*dev), 1);
@@ -56,8 +44,8 @@ struct etna_device *etna_device_new(int fd)
p_atomic_set(&dev->refcnt, 1);
dev->fd = fd;
- dev->handle_table = _mesa_hash_table_create(NULL, u32_hash, u32_equals);
- dev->name_table = _mesa_hash_table_create(NULL, u32_hash, u32_equals);
+ dev->handle_table = _mesa_hash_table_create(NULL, _mesa_hash_u32, _mesa_key_u32_equal);
+ dev->name_table = _mesa_hash_table_create(NULL, _mesa_hash_u32, _mesa_key_u32_equal);
etna_bo_cache_init(&dev->bo_cache);
ret = drmCommandWriteRead(dev->fd, DRM_ETNAVIV_GET_PARAM, &req, sizeof(req));
diff --git a/src/freedreno/drm/freedreno_device.c b/src/freedreno/drm/freedreno_device.c
index b2f6c981963..0a760bc4e38 100644
--- a/src/freedreno/drm/freedreno_device.c
+++ b/src/freedreno/drm/freedreno_device.c
@@ -33,19 +33,6 @@
static pthread_mutex_t table_lock = PTHREAD_MUTEX_INITIALIZER;
-static uint32_t
-u32_hash(const void *key)
-{
- return _mesa_hash_data(key, sizeof(uint32_t));
-}
-
-static bool
-u32_equals(const void *key1, const void *key2)
-{
- return *(const uint32_t *)key1 == *(const uint32_t *)key2;
-}
-
-
struct fd_device * kgsl_device_new(int fd);
struct fd_device * msm_device_new(int fd);
@@ -90,8 +77,8 @@ out:
p_atomic_set(&dev->refcnt, 1);
dev->fd = fd;
- dev->handle_table = _mesa_hash_table_create(NULL, u32_hash, u32_equals);
- dev->name_table = _mesa_hash_table_create(NULL, u32_hash, u32_equals);
+ dev->handle_table = _mesa_hash_table_create(NULL, _mesa_hash_u32, _mesa_key_u32_equal);
+ dev->name_table = _mesa_hash_table_create(NULL, _mesa_hash_u32, _mesa_key_u32_equal);
fd_bo_cache_init(&dev->bo_cache, FALSE);
fd_bo_cache_init(&dev->ring_cache, TRUE);
diff --git a/src/gallium/drivers/iris/iris_bufmgr.c b/src/gallium/drivers/iris/iris_bufmgr.c
index 167538d49c4..d0e641b2068 100644
--- a/src/gallium/drivers/iris/iris_bufmgr.c
+++ b/src/gallium/drivers/iris/iris_bufmgr.c
@@ -160,18 +160,6 @@ static uint64_t vma_alloc(struct iris_bufmgr *bufmgr,
enum iris_memory_zone memzone,
uint64_t size, uint64_t alignment);
-static uint32_t
-key_hash_uint(const void *key)
-{
- return _mesa_hash_data(key, 4);
-}
-
-static bool
-key_uint_equal(const void *a, const void *b)
-{
- return *((unsigned *) a) == *((unsigned *) b);
-}
-
static struct iris_bo *
find_and_ref_external_bo(struct hash_table *ht, unsigned int key)
{
@@ -1698,9 +1686,9 @@ iris_bufmgr_init(struct gen_device_info *devinfo, int fd, bool bo_reuse)
init_cache_buckets(bufmgr);
bufmgr->name_table =
- _mesa_hash_table_create(NULL, key_hash_uint, key_uint_equal);
+ _mesa_hash_table_create(NULL, _mesa_hash_uint, _mesa_key_uint_equal);
bufmgr->handle_table =
- _mesa_hash_table_create(NULL, key_hash_uint, key_uint_equal);
+ _mesa_hash_table_create(NULL, _mesa_hash_uint, _mesa_key_uint_equal);
if (devinfo->gen >= 12) {
bufmgr->aux_map_ctx = gen_aux_map_init(bufmgr, &aux_map_allocator,
diff --git a/src/gallium/drivers/vc4/vc4_qir_live_variables.c b/src/gallium/drivers/vc4/vc4_qir_live_variables.c
index 5629ce044d9..61dc16915b7 100644
--- a/src/gallium/drivers/vc4/vc4_qir_live_variables.c
+++ b/src/gallium/drivers/vc4/vc4_qir_live_variables.c
@@ -34,18 +34,6 @@ struct partial_update_state {
uint8_t channels;
};
-static uint32_t
-int_hash(const void *key)
-{
- return _mesa_hash_data(key, sizeof(int));
-}
-
-static bool
-int_compare(const void *key1, const void *key2)
-{
- return *(const int *)key1 == *(const int *)key2;
-}
-
static int
qir_reg_to_var(struct qreg reg)
{
@@ -194,7 +182,7 @@ static void
qir_setup_def_use(struct vc4_compile *c)
{
struct hash_table *partial_update_ht =
- _mesa_hash_table_create(c, int_hash, int_compare);
+ _mesa_hash_table_create(c, _mesa_hash_int, _mesa_key_int_equal);
int ip = 0;
qir_for_each_block(block, c) {
diff --git a/src/mesa/drivers/dri/i965/brw_bufmgr.c b/src/mesa/drivers/dri/i965/brw_bufmgr.c
index 536fe36e5e4..8c1a6a722f5 100644
--- a/src/mesa/drivers/dri/i965/brw_bufmgr.c
+++ b/src/mesa/drivers/dri/i965/brw_bufmgr.c
@@ -166,18 +166,6 @@ static uint64_t vma_alloc(struct brw_bufmgr *bufmgr,
enum brw_memory_zone memzone,
uint64_t size, uint64_t alignment);
-static uint32_t
-key_hash_uint(const void *key)
-{
- return _mesa_hash_data(key, 4);
-}
-
-static bool
-key_uint_equal(const void *a, const void *b)
-{
- return *((unsigned *) a) == *((unsigned *) b);
-}
-
static struct brw_bo *
hash_find_bo(struct hash_table *ht, unsigned int key)
{
@@ -1739,9 +1727,9 @@ brw_bufmgr_init(struct gen_device_info *devinfo, int fd, bool bo_reuse)
init_cache_buckets(bufmgr);
bufmgr->name_table =
- _mesa_hash_table_create(NULL, key_hash_uint, key_uint_equal);
+ _mesa_hash_table_create(NULL, _mesa_hash_uint, _mesa_key_uint_equal);
bufmgr->handle_table =
- _mesa_hash_table_create(NULL, key_hash_uint, key_uint_equal);
+ _mesa_hash_table_create(NULL, _mesa_hash_uint, _mesa_key_uint_equal);
return bufmgr;
}
More information about the mesa-commit
mailing list