diff --git a/include/sta/ConcreteNetwork.hh b/include/sta/ConcreteNetwork.hh index ad182ada..d9915e62 100644 --- a/include/sta/ConcreteNetwork.hh +++ b/include/sta/ConcreteNetwork.hh @@ -267,7 +267,7 @@ protected: void clearConstantNets(); void visitConnectedPins(const Net *net, PinVisitor &visitor, - NetSet &visited_nets) const override; + UnorderedSet &visited_nets) const override; Instance *makeConcreteInstance(ConcreteCell *cell, const char *name, Instance *parent); diff --git a/include/sta/Network.hh b/include/sta/Network.hh index 113ffe20..6ff808c8 100644 --- a/include/sta/Network.hh +++ b/include/sta/Network.hh @@ -32,6 +32,7 @@ #include "VertexId.hh" #include "NetworkClass.hh" #include "StaState.hh" +#include "UnorderedSet.hh" namespace sta { @@ -470,7 +471,7 @@ protected: int hierarchyLevel(const Net *net) const; virtual void visitConnectedPins(const Net *net, PinVisitor &visitor, - NetSet &visited_nets) const; + UnorderedSet &visited_nets) const; // Default implementation uses linear search. virtual void findInstPinsMatching(const Instance *instance, const PatternMatch *pattern, diff --git a/network/ConcreteNetwork.cc b/network/ConcreteNetwork.cc index ed9c5d6c..f104dfbc 100644 --- a/network/ConcreteNetwork.cc +++ b/network/ConcreteNetwork.cc @@ -1549,7 +1549,7 @@ ConcreteNetwork::constantPinIterator() void ConcreteNetwork::visitConnectedPins(const Net *net, PinVisitor &visitor, - NetSet &visited_nets) const + UnorderedSet &visited_nets) const { if (!visited_nets.hasKey(net)) { visited_nets.insert(net); diff --git a/network/Network.cc b/network/Network.cc index d80b21ef..3f066cad 100644 --- a/network/Network.cc +++ b/network/Network.cc @@ -1307,7 +1307,7 @@ void Network::visitConnectedPins(const Pin *pin, PinVisitor &visitor) const { - NetSet visited_nets(network_); + UnorderedSet visited_nets; Net *pin_net = net(pin); Term *pin_term = term(pin); if (pin_net) @@ -1328,14 +1328,14 @@ void Network::visitConnectedPins(const Net *net, PinVisitor &visitor) const { - NetSet visited_nets(this); + UnorderedSet visited_nets; visitConnectedPins(net, visitor, visited_nets); } void Network::visitConnectedPins(const Net *net, PinVisitor &visitor, - NetSet &visited_nets) const + UnorderedSet &visited_nets) const { if (!visited_nets.hasKey(net)) { visited_nets.insert(net);