Fixed keep attribute on wires in opt_clean
authorClifford Wolf <clifford@clifford.at>
Fri, 8 Nov 2013 04:20:15 +0000 (05:20 +0100)
committerClifford Wolf <clifford@clifford.at>
Fri, 8 Nov 2013 04:20:15 +0000 (05:20 +0100)
passes/opt/opt_clean.cc

index 8e3691b34a1a5df22775f675a5cd720b2ce7a7bf..2921c92d86b6d423fb38f56b6fb3dd0d763f47f2 100644 (file)
@@ -54,7 +54,7 @@ static void rmunused_module_cells(RTLIL::Module *module, bool verbose)
 
        for (auto &it : module->wires) {
                RTLIL::Wire *wire = it.second;
-               if (wire->port_output) {
+               if (wire->port_output || wire->get_bool_attribute("\\keep")) {
                        std::set<RTLIL::Cell*> cell_list;
                        RTLIL::SigSpec sig = RTLIL::SigSpec(wire);
                        assign_map.apply(sig);