3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-10-08 08:51:55 +00:00

improve perf

This commit is contained in:
Don Syme 2025-09-17 00:58:15 +01:00
parent b858070387
commit 6fe095c40c
2 changed files with 3 additions and 5 deletions

View file

@ -6,7 +6,7 @@
#include <random>
struct int_hash {
unsigned operator()(int k) const { return static_cast<unsigned>(k); }
unsigned operator()(int k) const { return static_cast<unsigned>(k) * 2654435761U; }
};
struct int_eq {

View file

@ -26,7 +26,7 @@ Revision History:
#include "util/memory_manager.h"
#include "util/hash.h"
#include "util/vector.h"
#ifdef __builtin_prefetch
#ifdef __has_builtin(__builtin_prefetch)
#define HASHTABLE_PREFETCH(addr) __builtin_prefetch(addr, 0, 3)
#else
#define HASHTABLE_PREFETCH(addr) ((void)0)
@ -65,14 +65,12 @@ public:
bool is_free() const { return m_state == HT_FREE; }
bool is_deleted() const { return m_state == HT_DELETED; }
bool is_used() const { return m_state == HT_USED; }
unsigned char get_probe_distance() const { return m_probe_distance; }
T & get_data() { return m_data; }
const T & get_data() const { return m_data; }
void set_data(T && d) { m_data = std::move(d); m_state = HT_USED; }
void set_hash(unsigned h) { m_hash = h; }
void set_probe_distance(unsigned char dist) { m_probe_distance = dist; }
void mark_as_deleted() { m_state = HT_DELETED; }
void mark_as_free() { m_state = HT_FREE; m_probe_distance = 0; }
void mark_as_free() { m_state = HT_FREE; }
};
/**