diff options
author | Clifford Wolf <clifford@clifford.at> | 2015-10-28 11:21:55 +0100 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2015-10-28 11:21:55 +0100 |
commit | 1e32e4bdae2e3fb3d1bf68314e146052a3c65561 (patch) | |
tree | d2e1e951be964afcc3b097c17b12e0a24d07ba96 /kernel/sigtools.h | |
parent | e69efec588ddfa65b7a2d6970bab7a3bcfa77b04 (diff) |
Improved SigMap performance
Diffstat (limited to 'kernel/sigtools.h')
-rw-r--r-- | kernel/sigtools.h | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/kernel/sigtools.h b/kernel/sigtools.h index 3ef87199..d73c5623 100644 --- a/kernel/sigtools.h +++ b/kernel/sigtools.h @@ -253,18 +253,21 @@ struct SigMap for (int i = 0; i < GetSize(from); i++) { - RTLIL::SigBit bf = database.find(from[i]); - RTLIL::SigBit bt = database.find(to[i]); + int bfi = database.lookup(from[i]); + int bti = database.lookup(to[i]); + + const RTLIL::SigBit &bf = database[bfi]; + const RTLIL::SigBit &bt = database[bti]; if (bf.wire || bt.wire) { - database.merge(bf, bt); + database.imerge(bfi, bti); if (bf.wire == nullptr) - database.promote(bf); + database.ipromote(bfi); if (bt.wire == nullptr) - database.promote(bt); + database.ipromote(bti); } } } |