added hashlib::mkhash_init
authorClifford Wolf <clifford@clifford.at>
Tue, 30 Dec 2014 17:51:24 +0000 (18:51 +0100)
committerClifford Wolf <clifford@clifford.at>
Tue, 30 Dec 2014 17:51:24 +0000 (18:51 +0100)
kernel/hashlib.h
kernel/rtlil.cc
kernel/rtlil.h
kernel/yosys.h

index c93e00a09c5d68fbf7885ac4bec13aa3d3654541..0b6e94a32a4c26a3ab41368661c272e8b8c20aa2 100644 (file)
@@ -21,13 +21,15 @@ const int hashtable_size_trigger = 2;
 const int hashtable_size_factor = 3;
 
 // The XOR version of DJB2
-// (traditionally 5381 is used as starting value for the djb2 hash)
 inline unsigned int mkhash(unsigned int a, unsigned int b) {
        return ((a << 5) + a) ^ b;
 }
 
+// traditionally 5381 is used as starting value for the djb2 hash
+const unsigned int mkhash_init = 5381;
+
 // The ADD version of DJB2
-// (use this version for cache locality in b)
+// (usunsigned int mkhashe this version for cache locality in b)
 inline unsigned int mkhash_add(unsigned int a, unsigned int b) {
        return ((a << 5) + a) + b;
 }
@@ -96,7 +98,7 @@ struct hash_cstr_ops {
                return true;
        }
        unsigned int hash(const char *a) const {
-               unsigned int hash = 5381;
+               unsigned int hash = mkhash_init;
                while (*a)
                         hash = mkhash(hash, *(a++));
                 return hash;
index 912df790357f8dba54a8bb2ba913260a7ad2045d..cd2232c8c61fceff4fb16fb59e24acb2777e598b 100644 (file)
@@ -2325,7 +2325,7 @@ void RTLIL::SigSpec::updhash() const
        cover("kernel.rtlil.sigspec.hash");
        that->pack();
 
-       that->hash_ = 5381;
+       that->hash_ = mkhash_init;
        for (auto &c : that->chunks_)
                if (c.wire == NULL) {
                        for (auto &v : c.data)
index bb9e85d93edbd0bf8719e68b8a1703138cd40b3f..739b701f8b5d80ea34cbae13385d9f7304c0cfd6 100644 (file)
@@ -463,7 +463,7 @@ struct RTLIL::Const
        inline int size() const { return bits.size(); }
 
        inline unsigned int hash() const {
-               unsigned int h = 5381;
+               unsigned int h = mkhash_init;
                for (auto b : bits)
                        mkhash(h, b);
                return h;
index a4836f35a9b0454116ff09117b2c7abd237187a5..5f3c3577df266c93aa6aaa296fa2f13beb20cd54 100644 (file)
@@ -138,6 +138,7 @@ YOSYS_NAMESPACE_BEGIN
 using std::vector;
 using std::string;
 using hashlib::mkhash;
+using hashlib::mkhash_init;
 using hashlib::mkhash_add;
 using hashlib::mkhash_xorshift;
 using hashlib::hash_ops;