diff options
author | clairexen <claire@symbioticeda.com> | 2020-05-31 20:40:48 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-31 20:40:48 +0200 |
commit | ff785cdb46d6b1ddc19d5acc21b4d1236b3adf3f (patch) | |
tree | 1cd1a2a26ed78e489b4945275a92bbb02f1b02d4 /kernel/hashlib.h | |
parent | fe273faad11d67b1473b966e606ca982b91afd85 (diff) | |
parent | 6eea4b3d79590f874caa3ec740785781f3926666 (diff) | |
download | yosys-ff785cdb46d6b1ddc19d5acc21b4d1236b3adf3f.tar.gz yosys-ff785cdb46d6b1ddc19d5acc21b4d1236b3adf3f.tar.bz2 yosys-ff785cdb46d6b1ddc19d5acc21b4d1236b3adf3f.zip |
Merge pull request #1862 from boqwxp/cleanup_techmap
Clean up `passes/techmap/techmap.cc`
Diffstat (limited to 'kernel/hashlib.h')
-rw-r--r-- | kernel/hashlib.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/kernel/hashlib.h b/kernel/hashlib.h index 592d6e577..5c87b55f5 100644 --- a/kernel/hashlib.h +++ b/kernel/hashlib.h @@ -207,6 +207,7 @@ class dict entry_t() { } entry_t(const std::pair<K, T> &udata, int next) : udata(udata), next(next) { } entry_t(std::pair<K, T> &&udata, int next) : udata(std::move(udata)), next(next) { } + bool operator<(const entry_t &other) const { return udata.first < other.udata.first; } }; std::vector<int> hashtable; @@ -615,6 +616,15 @@ public: return !operator==(other); } + unsigned int hash() const { + unsigned int h = mkhash_init; + for (auto &entry : entries) { + h ^= hash_ops<K>::hash(entry.udata.first); + h ^= hash_ops<T>::hash(entry.udata.second); + } + return h; + } + void reserve(size_t n) { entries.reserve(n); } size_t size() const { return entries.size(); } bool empty() const { return entries.empty(); } |