Skip to content

Commit f7d53a4

Browse files
Merge pull request #3796 from verilog-to-routing/fix_full_legalizer_reserve_resize
Fix reserve/resize bug in full legalizer
2 parents 66f6efe + 0b49e1f commit f7d53a4

1 file changed

Lines changed: 6 additions & 6 deletions

File tree

vpr/src/analytical_place/full_legalization/full_legalizer.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ class APClusterPlacer {
160160
const char* constraints_file)
161161
: place_macros_(place_macros) {
162162
// Initialize the block loc registry.
163-
auto& blk_loc_registry = g_vpr_ctx.mutable_placement().mutable_blk_loc_registry();
163+
BlkLocRegistry& blk_loc_registry = g_vpr_ctx.mutable_placement().mutable_blk_loc_registry();
164164
blk_loc_registry.init();
165165

166166
// Place the fixed blocks and mark them as fixed.
@@ -188,7 +188,7 @@ class APClusterPlacer {
188188
const FloorplanningContext& floorplanning_ctx = g_vpr_ctx.floorplanning();
189189
const ClusteringContext& cluster_ctx = g_vpr_ctx.clustering();
190190
const auto& block_locs = g_vpr_ctx.placement().block_locs();
191-
auto& blk_loc_registry = g_vpr_ctx.mutable_placement().mutable_blk_loc_registry();
191+
BlkLocRegistry& blk_loc_registry = g_vpr_ctx.mutable_placement().mutable_blk_loc_registry();
192192
// If this block has already been placed, just return true.
193193
// TODO: This should be investigated further. What I think is happening
194194
// is that a macro is being placed which contains another cluster.
@@ -232,7 +232,7 @@ class APClusterPlacer {
232232
// centroid, then random, then exhaustive.
233233
bool exhaustively_place_cluster(ClusterBlockId clb_blk_id) {
234234
const auto& block_locs = g_vpr_ctx.placement().block_locs();
235-
auto& blk_loc_registry = g_vpr_ctx.mutable_placement().mutable_blk_loc_registry();
235+
BlkLocRegistry& blk_loc_registry = g_vpr_ctx.mutable_placement().mutable_blk_loc_registry();
236236
// If this block has already been placed, just return true.
237237
// TODO: See similar comment above.
238238
if (is_block_placed(clb_blk_id, block_locs))
@@ -343,7 +343,7 @@ FlatRecon::sort_and_group_blocks_by_tile(const PartialPlacement& p_placement) {
343343
for (APBlockId blk_id : ap_netlist_.blocks()) {
344344
t_physical_tile_loc tile_loc = p_placement.get_containing_tile_loc(blk_id);
345345
for (PackMoleculeId mol_id : ap_netlist_.block_molecules(blk_id)) {
346-
const auto& mol = prepacker_.get_molecule(mol_id);
346+
const t_pack_molecule& mol = prepacker_.get_molecule(mol_id);
347347

348348
int num_ext_inputs = prepacker_.calc_molecule_stats(mol_id, atom_netlist_, arch_.models).num_used_ext_inputs;
349349
bool long_chain = mol.is_chain() && prepacker_.get_molecule_chain_info(mol.chain_id).is_long_chain;
@@ -374,7 +374,7 @@ FlatRecon::sort_and_group_blocks_by_tile(const PartialPlacement& p_placement) {
374374
// Group the molecules by root tile. Any non-zero offset gets
375375
// pulled back to its root.
376376
std::unordered_map<t_physical_tile_loc, std::vector<PackMoleculeId>> tile_blocks;
377-
mol_desired_physical_tile_loc.reserve(prepacker_.molecules().size());
377+
mol_desired_physical_tile_loc.resize(prepacker_.molecules().size());
378378
for (const auto& [mol_id, ext_pins, is_long_chain, tile_loc] : sorted_blocks) {
379379
int width_offset = device_grid_.get_width_offset(tile_loc);
380380
int height_offset = device_grid_.get_height_offset(tile_loc);
@@ -1367,7 +1367,7 @@ void FullLegalizer::update_drawing_data_structures() {
13671367
}
13681368

13691369
void FullLegalizer::recreate_device_if_needed() {
1370-
const auto& device_ctx = g_vpr_ctx.device();
1370+
const DeviceContext& device_ctx = g_vpr_ctx.device();
13711371
// Capture before grid recreation: vpr_create_device_grid only writes
13721372
// device_ctx.grid and does not touch the RR graph, so this flag remains
13731373
// valid after the call.

0 commit comments

Comments
 (0)