Keep a map of NetNets for fast access.
It turns out that netnets in scopes are accessed a lot, and mapping them may help with performance.
This commit is contained in:
parent
81a0007f22
commit
0af896a7ff
|
|
@ -370,11 +370,13 @@ void NetScope::add_signal(NetNet*net)
|
|||
net->sig_prev_->sig_next_ = net;
|
||||
}
|
||||
signals_ = net;
|
||||
signals_map_[net->name()]=net;
|
||||
}
|
||||
|
||||
void NetScope::rem_signal(NetNet*net)
|
||||
{
|
||||
assert(net->scope() == this);
|
||||
signals_map_.erase(net->name());
|
||||
if (signals_ == net)
|
||||
signals_ = net->sig_prev_;
|
||||
|
||||
|
|
@ -396,6 +398,11 @@ NetNet* NetScope::find_signal(perm_string key)
|
|||
if (signals_ == 0)
|
||||
return 0;
|
||||
|
||||
if (signals_map_.find(key)!=signals_map_.end())
|
||||
return signals_map_[key];
|
||||
else
|
||||
return 0;
|
||||
|
||||
NetNet*cur = signals_;
|
||||
do {
|
||||
if (cur->name() == key)
|
||||
|
|
|
|||
Loading…
Reference in New Issue