summaryrefslogtreecommitdiff
path: root/passes/opt
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2013-11-05 15:52:29 +0100
committerClifford Wolf <clifford@clifford.at>2013-11-05 15:52:29 +0100
commit1d34fd7608d4bb9929b9e6ce6eb5038e3d8b3a0a (patch)
tree40df3df37aa20b06ea948a4eb1a5793def05c2cd /passes/opt
parent27fec4e77c8d116deb90398400f5f2a1eb5cf785 (diff)
Added support for "keep" attributes on wires
Diffstat (limited to 'passes/opt')
-rw-r--r--passes/opt/opt_clean.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/passes/opt/opt_clean.cc b/passes/opt/opt_clean.cc
index 3d75b640..8e3691b3 100644
--- a/passes/opt/opt_clean.cc
+++ b/passes/opt/opt_clean.cc
@@ -190,6 +190,11 @@ static void rmunused_module_signals(RTLIL::Module *module, bool purge_mode, bool
if (!wire->port_input)
used_signals_nodrivers.add(sig);
}
+ if (wire->get_bool_attribute("\\keep")) {
+ RTLIL::SigSpec sig = RTLIL::SigSpec(wire);
+ assign_map.apply(sig);
+ used_signals.add(sig);
+ }
}
std::vector<RTLIL::Wire*> del_wires;