From: Catherine Date: Wed, 15 Dec 2021 08:48:49 +0000 (+0000) Subject: cxxrtl: demote wires not inlinable only in debug_eval to locals. X-Git-Tag: yosys-0.13~23^2 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7f2ea7d222f159842e391d080a1b5bdc6c5a7006;p=yosys.git cxxrtl: demote wires not inlinable only in debug_eval to locals. Fixes #3112. Co-authored-by: Irides --- diff --git a/backends/cxxrtl/cxxrtl_backend.cc b/backends/cxxrtl/cxxrtl_backend.cc index 6623e025e..ba11179c6 100644 --- a/backends/cxxrtl/cxxrtl_backend.cc +++ b/backends/cxxrtl/cxxrtl_backend.cc @@ -2888,15 +2888,16 @@ struct CxxrtlWorker { debug_wire_type = {WireType::INLINE, node->cell}; // wire replaced with cell break; case FlowGraph::Node::Type::CONNECT: - debug_wire_type = {WireType::INLINE, node->connect.second}; // wire replaced with sig + debug_wire_type = {WireType::INLINE, node->connect.second}; // wire replaced with sig break; default: continue; } debug_live_nodes.erase(node); - } else if (wire_type.is_member() || wire_type.is_local()) { + } else if (wire_type.is_member() || wire_type.type == WireType::LOCAL) { debug_wire_type = wire_type; // wire not inlinable } else { - log_assert(wire_type.type == WireType::UNUSED); + log_assert(wire_type.type == WireType::INLINE || + wire_type.type == WireType::UNUSED); if (flow.wire_comb_defs[wire].size() == 0) { if (wire_init.count(wire)) { // wire never modified debug_wire_type = {WireType::CONST, wire_init.at(wire)};