diff options
Diffstat (limited to 'passes')
-rw-r--r-- | passes/cmds/rename.cc | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/passes/cmds/rename.cc b/passes/cmds/rename.cc index 8c5450a67..afc23b0a1 100644 --- a/passes/cmds/rename.cc +++ b/passes/cmds/rename.cc @@ -258,22 +258,18 @@ struct RenamePass : public Pass { for (auto wire : module->selected_wires()) if (wire->name[0] == '$') { - std::ostringstream buf; - do { - buf.str(""); - buf << "\\" << pattern_prefix << counter++ << pattern_suffix; - } while (module->count_id(buf.str()) > 0); - new_wire_names[wire] = buf.str(); + RTLIL::IdString buf; + do buf = stringf("\\%s%d%s", pattern_prefix.c_str(), counter++, pattern_suffix.c_str()); + while (module->wire(buf) != nullptr); + new_wire_names[wire] = buf; } for (auto cell : module->selected_cells()) if (cell->name[0] == '$') { - std::ostringstream buf; - do { - buf.str(""); - buf << "\\" << pattern_prefix << counter++ << pattern_suffix; - } while (module->count_id(buf.str()) > 0); - new_cell_names[cell] = buf.str(); + RTLIL::IdString buf; + do buf = stringf("\\%s%d%s", pattern_prefix.c_str(), counter++, pattern_suffix.c_str()); + while (module->cell(buf) != nullptr); + new_cell_names[cell] = buf; } for (auto &it : new_wire_names) |