From: Alberto Gonzalez Date: Mon, 20 Apr 2020 05:10:08 +0000 (+0000) Subject: Build constant bits directly rather than constructing an object and copying its bits. X-Git-Tag: working-ls180~517^2~10 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c658d9d59d98063fec463e17978a3e2f449f38de;p=yosys.git Build constant bits directly rather than constructing an object and copying its bits. --- 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; }