RTLIL::Design *design;
RTLIL::Module *module;
SigMap sigmap;
- pool<SigBit> outputs;
bool copy_mode;
bool hidden_mode;
for (auto &it : bit_flags)
{
- const RTLIL::SigBit &bit = it.first;
+ const RTLIL::SigBit &bit = sigmap(it.first);
RTLIL::Wire *wire = bit.wire;
bit_flags_t &flags = it.second;
if (wire->port_input)
flags.is_ext_driven = true;
- if (outputs.count(bit))
+ if (wire->port_output)
flags.is_ext_used = true;
bool new_wire_port_input = false;
for (auto port : module->ports) {
auto wire = module->wire(port);
- if (!wire->port_output)
- continue;
- for (auto b : sigmap(wire))
- if (b.wire)
- outputs.insert(b);
+ if (wire->port_output)
+ sigmap.add(wire);
}
if (opt_name.empty())