@@ -400,14 +400,14 @@ struct PlacementContext : public Context {
400
400
401
401
public:
402
402
403
- const vtr::vector_map<ClusterBlockId, t_block_loc>& block_locs () const { VTR_ASSERT (loc_vars_are_accessible_); return place_loc_vars_.block_locs (); }
404
- vtr::vector_map<ClusterBlockId, t_block_loc>& mutable_block_locs () { VTR_ASSERT (loc_vars_are_accessible_); return place_loc_vars_.mutable_block_locs (); }
405
- const GridBlock& get_grid_blocks () const { VTR_ASSERT (loc_vars_are_accessible_); return place_loc_vars_.grid_blocks (); }
406
- GridBlock& get_mutable_grid_blocks () { VTR_ASSERT (loc_vars_are_accessible_); return place_loc_vars_.mutable_grid_blocks (); }
407
- vtr::vector_map<ClusterPinId, int >& mutable_physical_pins () { VTR_ASSERT (loc_vars_are_accessible_); return place_loc_vars_.mutable_physical_pins (); }
408
- const vtr::vector_map<ClusterPinId, int >& physical_pins () const { VTR_ASSERT (loc_vars_are_accessible_); return place_loc_vars_.physical_pins (); }
409
- PlaceLocVars& mutable_place_loc_vars () { VTR_ASSERT (loc_vars_are_accessible_); return place_loc_vars_; }
410
- const PlaceLocVars& place_loc_vars () const { VTR_ASSERT (loc_vars_are_accessible_); return place_loc_vars_; }
403
+ const vtr::vector_map<ClusterBlockId, t_block_loc>& block_locs () const { VTR_ASSERT_SAFE (loc_vars_are_accessible_); return place_loc_vars_.block_locs (); }
404
+ vtr::vector_map<ClusterBlockId, t_block_loc>& mutable_block_locs () { VTR_ASSERT_SAFE (loc_vars_are_accessible_); return place_loc_vars_.mutable_block_locs (); }
405
+ const GridBlock& get_grid_blocks () const { VTR_ASSERT_SAFE (loc_vars_are_accessible_); return place_loc_vars_.grid_blocks (); }
406
+ GridBlock& get_mutable_grid_blocks () { VTR_ASSERT_SAFE (loc_vars_are_accessible_); return place_loc_vars_.mutable_grid_blocks (); }
407
+ vtr::vector_map<ClusterPinId, int >& mutable_physical_pins () { VTR_ASSERT_SAFE (loc_vars_are_accessible_); return place_loc_vars_.mutable_physical_pins (); }
408
+ const vtr::vector_map<ClusterPinId, int >& physical_pins () const { VTR_ASSERT_SAFE (loc_vars_are_accessible_); return place_loc_vars_.physical_pins (); }
409
+ PlaceLocVars& mutable_place_loc_vars () { VTR_ASSERT_SAFE (loc_vars_are_accessible_); return place_loc_vars_; }
410
+ const PlaceLocVars& place_loc_vars () const { VTR_ASSERT_SAFE (loc_vars_are_accessible_); return place_loc_vars_; }
411
411
412
412
/* *
413
413
* @brief Makes place_loc_vars_ inaccessible through the getter methods.
@@ -416,15 +416,15 @@ struct PlacementContext : public Context {
416
416
* guarantee that the placement stage code does not access block location variables
417
417
* stored in the global state.
418
418
*/
419
- void lock_loc_vars () { loc_vars_are_accessible_ = false ; }
419
+ void lock_loc_vars () { VTR_ASSERT_SAFE (loc_vars_are_accessible_); loc_vars_are_accessible_ = false ; }
420
420
421
421
/* *
422
422
* @brief Makes place_loc_vars_ accessible through the getter methods.
423
423
*
424
424
* This method should be called at the end of the placement stage to
425
425
* make the block location information accessible for subsequent stages.
426
426
*/
427
- void unlock_loc_vars () { loc_vars_are_accessible_ = true ; }
427
+ void unlock_loc_vars () { VTR_ASSERT_SAFE (!loc_vars_are_accessible_); loc_vars_are_accessible_ = true ; }
428
428
429
429
// /@brief The pl_macros array stores all the placement macros (usually carry chains).
430
430
std::vector<t_pl_macro> pl_macros;
0 commit comments