From adf34bb08e958d1351a74c02006095ca44364c68 Mon Sep 17 00:00:00 2001 From: Robert O'Callahan Date: Thu, 9 Oct 2025 02:02:28 +0000 Subject: [PATCH] Make modtools use `SigSpecConstIterator` instead of `SigSpec::operator[] const` --- kernel/modtools.h | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/kernel/modtools.h b/kernel/modtools.h index 27ba98d7d..3893db942 100644 --- a/kernel/modtools.h +++ b/kernel/modtools.h @@ -83,19 +83,23 @@ struct ModIndex : public RTLIL::Monitor void port_add(RTLIL::Cell *cell, RTLIL::IdString port, const RTLIL::SigSpec &sig) { - for (int i = 0; i < GetSize(sig); i++) { - RTLIL::SigBit bit = sigmap(sig[i]); + int i = 0; + for (auto &sig_bit : sig) { + RTLIL::SigBit bit = sigmap(sig_bit); if (bit.wire) database[bit].ports.insert(PortInfo(cell, port, i)); + ++i; } } void port_del(RTLIL::Cell *cell, RTLIL::IdString port, const RTLIL::SigSpec &sig) { - for (int i = 0; i < GetSize(sig); i++) { - RTLIL::SigBit bit = sigmap(sig[i]); + int i = 0; + for (auto &sig_bit : sig) { + RTLIL::SigBit bit = sigmap(sig_bit); if (bit.wire) database[bit].ports.erase(PortInfo(cell, port, i)); + ++i; } } @@ -179,10 +183,11 @@ struct ModIndex : public RTLIL::Monitor if (auto_reload_module) return; - for (int i = 0; i < GetSize(sigsig.first); i++) + RTLIL::SigSpecConstIterator second_it = sigsig.second.begin(); + for (auto &first_bit : sigsig.first) { - RTLIL::SigBit lhs = sigmap(sigsig.first[i]); - RTLIL::SigBit rhs = sigmap(sigsig.second[i]); + RTLIL::SigBit lhs = sigmap(first_bit); + RTLIL::SigBit rhs = sigmap(*second_it++); bool has_lhs = database.count(lhs) != 0; bool has_rhs = database.count(rhs) != 0;