From 43b8dde923b8cf57a206526fd6e66ebf1c436010 Mon Sep 17 00:00:00 2001 From: gatecat Date: Tue, 1 Jun 2021 17:52:25 +0100 Subject: Use hashlib in placers Signed-off-by: gatecat --- common/placer1.cc | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'common/placer1.cc') diff --git a/common/placer1.cc b/common/placer1.cc index f9cef92f..e8c6aa64 100644 --- a/common/placer1.cc +++ b/common/placer1.cc @@ -87,7 +87,7 @@ class SAPlacer } diameter = std::max(max_x, max_y) + 1; - std::unordered_set cell_types_in_use; + pool cell_types_in_use; for (auto &cell : ctx->cells) { IdString cell_type = cell.second->type; cell_types_in_use.insert(cell_type); @@ -629,7 +629,7 @@ class SAPlacer bool try_swap_chain(CellInfo *cell, BelId newBase) { std::vector> cell_rel; - std::unordered_set cells; + pool cells; std::vector> moves_made; std::vector> dest_bels; double delta = 0; @@ -1065,7 +1065,7 @@ class SAPlacer mc.already_changed_arcs[pn->udata][i] = true; } } else if (port.second.type == PORT_IN) { - auto usr = fast_port_to_user.at(&port.second); + auto usr = fast_port_to_user.at(std::make_pair(cell->name, port.first)); if (!mc.already_changed_arcs[pn->udata][usr]) { mc.changed_arcs.emplace_back(std::make_pair(pn->udata, usr)); mc.already_changed_arcs[pn->udata][usr] = true; @@ -1122,7 +1122,7 @@ class SAPlacer NetInfo *ni = net.second.get(); for (size_t i = 0; i < ni->users.size(); i++) { auto &usr = ni->users.at(i); - fast_port_to_user[&(usr.cell->ports.at(usr.port))] = i; + fast_port_to_user[std::make_pair(usr.cell->name, usr.port)] = i; } } } @@ -1130,11 +1130,11 @@ class SAPlacer // Simple routeability driven placement const int large_cell_thresh = 50; int total_net_share = 0; - std::vector>> nets_by_tile; + std::vector>> nets_by_tile; void setup_nets_by_tile() { total_net_share = 0; - nets_by_tile.resize(max_x + 1, std::vector>(max_y + 1)); + nets_by_tile.resize(max_x + 1, std::vector>(max_y + 1)); for (auto &cell : ctx->cells) { CellInfo *ci = cell.second.get(); if (int(ci->ports.size()) > large_cell_thresh) @@ -1194,7 +1194,7 @@ class SAPlacer std::vector> net_arc_tcost; // Fast lookup for cell port to net user index - std::unordered_map fast_port_to_user; + dict, size_t> fast_port_to_user; // Wirelength and timing cost at last and current iteration wirelen_t last_wirelen_cost, curr_wirelen_cost; @@ -1207,10 +1207,10 @@ class SAPlacer bool improved = false; int n_move, n_accept; int diameter = 35, max_x = 1, max_y = 1; - std::unordered_map> bel_types; - std::unordered_map region_bounds; + dict> bel_types; + dict region_bounds; FastBels fast_bels; - std::unordered_set locked_bels; + pool locked_bels; std::vector net_by_udata; std::vector old_udata; bool require_legal = true; -- cgit v1.2.3