aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorclairexen <claire@symbioticeda.com>2020-05-31 20:40:48 +0200
committerGitHub <noreply@github.com>2020-05-31 20:40:48 +0200
commitff785cdb46d6b1ddc19d5acc21b4d1236b3adf3f (patch)
tree1cd1a2a26ed78e489b4945275a92bbb02f1b02d4 /kernel
parentfe273faad11d67b1473b966e606ca982b91afd85 (diff)
parent6eea4b3d79590f874caa3ec740785781f3926666 (diff)
downloadyosys-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')
-rw-r--r--kernel/constids.inc1
-rw-r--r--kernel/hashlib.h10
2 files changed, 11 insertions, 0 deletions
diff --git a/kernel/constids.inc b/kernel/constids.inc
index 93c3a7609..383d7c615 100644
--- a/kernel/constids.inc
+++ b/kernel/constids.inc
@@ -171,6 +171,7 @@ X(techmap_autopurge)
X(_TECHMAP_BITS_CONNMAP_)
X(_TECHMAP_CELLTYPE_)
X(techmap_celltype)
+X(_TECHMAP_FAIL_)
X(techmap_maccmap)
X(_TECHMAP_REPLACE_)
X(techmap_simplemap)
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(); }