From: Clifford Wolf Date: Wed, 26 Jun 2019 15:54:17 +0000 (+0200) Subject: Improve opt_clean handling of unused public wires X-Git-Tag: yosys-0.9~39 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0b7d648c6a71594f8a17e78aef8f62b6f6448390;p=yosys.git Improve opt_clean handling of unused public wires Signed-off-by: Clifford Wolf --- diff --git a/passes/opt/opt_clean.cc b/passes/opt/opt_clean.cc index 5f75288e2..a8a8e0bc7 100644 --- a/passes/opt/opt_clean.cc +++ b/passes/opt/opt_clean.cc @@ -326,8 +326,8 @@ bool rmunused_module_signals(RTLIL::Module *module, bool purge_mode, bool verbos if (wire->port_id != 0 || wire->get_bool_attribute("\\keep") || !initval.is_fully_undef()) { // do not delete anything with "keep" or module ports or initialized wires } else - if (!purge_mode && check_public_name(wire->name)) { - // do not get rid of public names unless in purge mode + if (!purge_mode && check_public_name(wire->name) && (raw_used_signals.check_any(s1) || used_signals.check_any(s2) || s1 != s2)) { + // do not get rid of public names unless in purge mode or if the wire is entirely unused, not even aliased } else if (!raw_used_signals.check_any(s1)) { // delete wires that aren't used by anything directly