[set] Tune size again

Switch from a 128+64 hierarchy, to 32+32. New page size is 1024.
This should make set iteration faster, without affecting other op
performances much.
This commit is contained in:
Behdad Esfahbod 2018-02-14 15:44:48 -08:00
parent 20022575c6
commit e1f1f96577
1 changed files with 3 additions and 4 deletions

View File

@ -177,11 +177,11 @@ struct hb_set_t
return 0;
}
static const unsigned int PAGE_BITS = 8192; /* Use to tune. */
typedef uint32_t elt_t;
static const unsigned int ELT_BITS = sizeof (elt_t) * 8;
static const unsigned int PAGE_BITS = ELT_BITS * ELT_BITS; /* 1024. Use to tune. */
static_assert ((PAGE_BITS & ((PAGE_BITS) - 1)) == 0, "");
typedef uint64_t elt_t;
#if 0 && HAVE_VECTOR_SIZE
/* The vectorized version does not work with clang as non-const
* elt() errs "non-const reference cannot bind to vector element". */
@ -192,7 +192,6 @@ struct hb_set_t
vector_t v;
static const unsigned int ELT_BITS = sizeof (elt_t) * 8;
static const unsigned int ELT_MASK = ELT_BITS - 1;
static const unsigned int BITS = sizeof (vector_t) * 8;
static const unsigned int MASK = BITS - 1;