From 963dcd33aff3c38fae275e3b4833fbb5bb09628b Mon Sep 17 00:00:00 2001 From: Akash Levy Date: Wed, 12 Nov 2025 09:46:07 -0800 Subject: [PATCH] Fix bus_rebuild --- passes/silimate/bus_rebuild.cc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/passes/silimate/bus_rebuild.cc b/passes/silimate/bus_rebuild.cc index bee057d74..a84703509 100644 --- a/passes/silimate/bus_rebuild.cc +++ b/passes/silimate/bus_rebuild.cc @@ -203,14 +203,17 @@ struct bus_rebuild : public ScriptPass { for (auto &conn : newConnections) { RTLIL::SigSpec lhs = conn.first; RTLIL::SigSpec rhs = conn.second; - auto lit = lhs.chunks().rbegin(); - if (lit == lhs.chunks().rend()) + auto lhs_chunks = lhs.chunks(); + auto rhs_chunks = rhs.chunks(); + + auto lit = lhs_chunks.rbegin(); + if (lit == lhs_chunks.rend()) continue; - auto rit = rhs.chunks().rbegin(); - if (rit == rhs.chunks().rend()) + auto rit = rhs_chunks.rbegin(); + if (rit == rhs_chunks.rend()) continue; RTLIL::SigChunk sub_rhs = *rit; - while (lit != lhs.chunks().rend()) { + while (lit != lhs_chunks.rend()) { RTLIL::SigChunk sub_lhs = *lit; std::string conn_lhs_s = sub_lhs.wire ? sub_lhs.wire->name.c_str() : ""; std::string conn_rhs_s = sub_rhs.wire ? sub_rhs.wire->name.c_str() : "";