diff --git a/kernel/modtools.h b/kernel/modtools.h index cf68693bc..c97e0acd7 100644 --- a/kernel/modtools.h +++ b/kernel/modtools.h @@ -297,6 +297,13 @@ struct ModIndex : public RTLIL::Monitor return info->ports; } + void check_db() + { + for (auto &it : database) { + log_assert(database.find(it.first) != database.end()); + } + } + void dump_db() { log("--- ModIndex Dump ---\n"); diff --git a/passes/opt/wreduce.cc b/passes/opt/wreduce.cc index 359c76d42..27492540c 100644 --- a/passes/opt/wreduce.cc +++ b/passes/opt/wreduce.cc @@ -489,6 +489,7 @@ struct WreduceWorker for (auto w : module->wires()) complete_wires.insert(mi.sigmap(w)); + mi.dump_db(); for (auto w : module->selected_wires()) { int unused_top_bits = 0; @@ -496,6 +497,8 @@ struct WreduceWorker if (w->port_id > 0 || count_nontrivial_wire_attrs(w) > 0) continue; + log_debug("wire %s\n", w->name); + mi.check_db(); for (int i = GetSize(w)-1; i >= 0; i--) { SigBit bit(w, i); auto info = mi.query(bit);