From c658d9d59d98063fec463e17978a3e2f449f38de Mon Sep 17 00:00:00 2001 From: Alberto Gonzalez Date: Mon, 20 Apr 2020 05:10:08 +0000 Subject: [PATCH] Build constant bits directly rather than constructing an object and copying its bits. --- passes/techmap/techmap.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/passes/techmap/techmap.cc b/passes/techmap/techmap.cc index ab719cbaa..da53e8448 100644 --- a/passes/techmap/techmap.cc +++ b/passes/techmap/techmap.cc @@ -767,8 +767,11 @@ struct TechmapWorker if (tpl->avail_parameters.count(stringf("\\_TECHMAP_CONNMAP_%s_", log_id(conn.first))) != 0) { RTLIL::Const value; for (auto &bit : sigmap(conn.second)) { - RTLIL::Const chunk(unique_bit_id.at(bit), bits); - value.bits.insert(value.bits.end(), chunk.bits.begin(), chunk.bits.end()); + int val = unique_bit_id.at(bit); + for (int i = 0; i < bits; i++) { + value.bits.push_back((val & 1) != 0 ? State::S1 : State::S0); + val = val >> 1; + } } parameters[stringf("\\_TECHMAP_CONNMAP_%s_", log_id(conn.first))] = value; } -- 2.30.2