vppinfra: don't use memcmp to compare keys in cuckoo 33/26533/3
authorDamjan Marion <damarion@cisco.com>
Wed, 15 Apr 2020 18:37:54 +0000 (20:37 +0200)
committerFlorin Coras <florin.coras@gmail.com>
Wed, 15 Apr 2020 19:34:11 +0000 (19:34 +0000)
Type: improvement
Change-Id: I7e11bf72be5fad5967724c038eb649a261294ca0
Signed-off-by: Damjan Marion <damarion@cisco.com>
src/vppinfra/cuckoo_16_8.h
src/vppinfra/cuckoo_8_8.h
src/vppinfra/cuckoo_common.h
src/vppinfra/cuckoo_template.h

index 0cc7b57..b667ff6 100644 (file)
 #include <vppinfra/cuckoo_common.h>
 
 #undef CLIB_CUCKOO_OPTIMIZE_PREFETCH
-#undef CLIB_CUCKOO_OPTIMIZE_CMP_REDUCED_HASH
 #undef CLIB_CUCKOO_OPTIMIZE_UNROLL
 #undef CLIB_CUCKOO_OPTIMIZE_USE_COUNT_LIMITS_SEARCH
 #define CLIB_CUCKOO_OPTIMIZE_PREFETCH 1
-#define CLIB_CUCKOO_OPTIMIZE_CMP_REDUCED_HASH 1
 #define CLIB_CUCKOO_OPTIMIZE_UNROLL 1
 #define CLIB_CUCKOO_OPTIMIZE_USE_COUNT_LIMITS_SEARCH 1
 
index ace535b..67af79c 100644 (file)
 #include <vppinfra/cuckoo_common.h>
 
 #undef CLIB_CUCKOO_OPTIMIZE_PREFETCH
-#undef CLIB_CUCKOO_OPTIMIZE_CMP_REDUCED_HASH
 #undef CLIB_CUCKOO_OPTIMIZE_UNROLL
 #undef CLIB_CUCKOO_OPTIMIZE_USE_COUNT_LIMITS_SEARCH
 #define CLIB_CUCKOO_OPTIMIZE_PREFETCH 1
-#define CLIB_CUCKOO_OPTIMIZE_CMP_REDUCED_HASH 1
 #define CLIB_CUCKOO_OPTIMIZE_UNROLL 1
 #define CLIB_CUCKOO_OPTIMIZE_USE_COUNT_LIMITS_SEARCH 1
 
index 8b7b27a..ea0fc30 100644 (file)
@@ -24,7 +24,6 @@
 #include <vppinfra/types.h>
 
 #define CLIB_CUCKOO_OPTIMIZE_PREFETCH 1
-#define CLIB_CUCKOO_OPTIMIZE_CMP_REDUCED_HASH 1
 #define CLIB_CUCKOO_OPTIMIZE_UNROLL 1
 #define CLIB_CUCKOO_OPTIMIZE_USE_COUNT_LIMITS_SEARCH 1
 
index d48079a..364c291 100644 (file)
@@ -383,11 +383,7 @@ always_inline int CV (clib_cuckoo_bucket_search) (CVT (clib_cuckoo_bucket) *
         break;
       }
 #endif
-    if (
-#if CLIB_CUCKOO_OPTIMIZE_CMP_REDUCED_HASH
-        reduced_hash == b->reduced_hashes[i] &&
-#endif
-        0 == memcmp (&kvp->key, &b->elts[i].key, sizeof (kvp->key)))
+    if (CV (clib_cuckoo_key_compare) (kvp->key, b->elts[i].key))
       {
         kvp->value = b->elts[i].value;
         clib_cuckoo_bucket_aux_t bucket_aux2 = b->aux;