@@ -155,7 +155,7 @@ static std::tuple<int, int, int, int, int> get_pin_index_for_inst(t_physical_til
155155 logical_block_idx = -1 ;
156156 pb_type_idx = 0 ;
157157 } else {
158- auto logical_block = get_logical_block_from_pin_physical_num (type, pin_physical_num);
158+ t_logical_block_type_ptr logical_block = get_logical_block_from_pin_physical_num (type, pin_physical_num);
159159 auto pb_type = get_pb_pin_from_pin_physical_num (type, pin_physical_num)->parent_node ->pb_type ;
160160 VTR_ASSERT (logical_block != nullptr );
161161 logical_block_idx = logical_block->index ;
@@ -236,10 +236,9 @@ static int get_logical_block_physical_pin_num_offset(t_physical_tile_type_ptr ph
236236 const t_sub_tile* curr_sub_tile,
237237 t_logical_block_type_ptr curr_logical_block,
238238 const int curr_relative_cap) {
239- int offset;
240- offset = get_sub_tile_inst_physical_pin_num_offset (physical_tile, curr_sub_tile, curr_relative_cap);
239+ int offset = get_sub_tile_inst_physical_pin_num_offset (physical_tile, curr_sub_tile, curr_relative_cap);
241240
242- for (auto eq_site : curr_sub_tile->equivalent_sites ) {
241+ for (t_logical_block_type_ptr eq_site : curr_sub_tile->equivalent_sites ) {
243242 if (eq_site == curr_logical_block)
244243 break ;
245244 offset += (int )eq_site->pin_logical_num_to_pb_pin_mapping .size ();
@@ -255,13 +254,11 @@ static int get_pin_logical_num_from_pin_physical_num(t_physical_tile_type_ptr ph
255254 VTR_ASSERT (sub_tile_cap != -1 );
256255 auto logical_block = get_logical_block_from_pin_physical_num (physical_tile, physical_num);
257256
258- int pin_logical_num;
259-
260257 int offset = get_logical_block_physical_pin_num_offset (physical_tile,
261258 sub_tile,
262259 logical_block,
263260 sub_tile_cap);
264- pin_logical_num = physical_num - offset;
261+ int pin_logical_num = physical_num - offset;
265262
266263 return pin_logical_num;
267264}
@@ -273,7 +270,6 @@ static std::vector<int> get_pb_pin_src_pins(t_physical_tile_type_ptr physical_ty
273270 const t_pb_graph_pin* pin) {
274271 std::vector<int > driving_pins;
275272 const auto & edges = pin->input_edges ;
276- t_pb_graph_pin** connected_pins_ptr;
277273 int num_edges = pin->num_input_edges ;
278274 int num_pins = 0 ;
279275
@@ -285,7 +281,7 @@ static std::vector<int> get_pb_pin_src_pins(t_physical_tile_type_ptr physical_ty
285281
286282 for (int edge_idx = 0 ; edge_idx < num_edges; edge_idx++) {
287283 const t_pb_graph_edge* pb_graph_edge = edges[edge_idx];
288- connected_pins_ptr = pb_graph_edge->input_pins ;
284+ t_pb_graph_pin** connected_pins_ptr = pb_graph_edge->input_pins ;
289285 num_pins = pb_graph_edge->num_input_pins ;
290286
291287 for (int pin_idx = 0 ; pin_idx < num_pins; pin_idx++) {
@@ -315,7 +311,6 @@ static std::vector<int> get_pb_pin_sink_pins(t_physical_tile_type_ptr physical_t
315311 const t_pb_graph_pin* pin) {
316312 std::vector<int > sink_pins;
317313 const auto & edges = pin->output_edges ;
318- t_pb_graph_pin** connected_pins_ptr;
319314 int num_edges = pin->num_output_edges ;
320315 int num_pins = 0 ;
321316
@@ -327,7 +322,7 @@ static std::vector<int> get_pb_pin_sink_pins(t_physical_tile_type_ptr physical_t
327322
328323 for (int edge_idx = 0 ; edge_idx < num_edges; edge_idx++) {
329324 const t_pb_graph_edge* pb_graph_edge = edges[edge_idx];
330- connected_pins_ptr = pb_graph_edge->output_pins ;
325+ t_pb_graph_pin** connected_pins_ptr = pb_graph_edge->output_pins ;
331326 num_pins = pb_graph_edge->num_output_pins ;
332327
333328 for (int pin_idx = 0 ; pin_idx < num_pins; pin_idx++) {
@@ -392,12 +387,12 @@ static int get_num_reachable_sinks(t_physical_tile_type_ptr physical_tile,
392387 const auto & connected_sinks = pb_pin->connected_sinks_ptc ;
393388
394389 // If ref_sink_num is not reachable by pin_physical_num return 0
395- if (connected_sinks.find (ref_sink_num) == connected_sinks. end ( )) {
390+ if (! connected_sinks.contains (ref_sink_num)) {
396391 return 0 ;
397392 }
398393
399394 for (auto sink_num : sink_grp) {
400- if (connected_sinks.find (sink_num) != connected_sinks. end ( )) {
395+ if (connected_sinks.contains (sink_num)) {
401396 num_reachable_sinks++;
402397 }
403398 }
@@ -431,7 +426,7 @@ int get_logical_block_physical_sub_tile_index(t_physical_tile_type_ptr physical_
431426 int sub_tile_index = ARCH_FPGA_UNDEFINED_VAL;
432427 for (const auto & sub_tile : physical_tile->sub_tiles ) {
433428 auto eq_sites = sub_tile.equivalent_sites ;
434- auto it = std::find (eq_sites. begin (), eq_sites. end () , logical_block);
429+ auto it = std::ranges:: find (eq_sites, logical_block);
435430 if (it != eq_sites.end ()) {
436431 sub_tile_index = sub_tile.index ;
437432 }
@@ -467,7 +462,7 @@ int get_logical_block_physical_sub_tile_index(t_physical_tile_type_ptr physical_
467462 int sub_tile_index = ARCH_FPGA_UNDEFINED_VAL;
468463 for (const auto & sub_tile : physical_tile->sub_tiles ) {
469464 auto eq_sites = sub_tile.equivalent_sites ;
470- auto it = std::find (eq_sites. begin (), eq_sites. end () , logical_block);
465+ auto it = std::ranges:: find (eq_sites, logical_block);
471466 if (it != eq_sites.end ()
472467 && (sub_tile.capacity .is_in_range (sub_tile_capacity))) {
473468 sub_tile_index = sub_tile.index ;
@@ -497,13 +492,13 @@ t_logical_block_type_ptr pick_logical_type(t_physical_tile_type_ptr physical_til
497492
498493bool is_tile_compatible (t_physical_tile_type_ptr physical_tile, t_logical_block_type_ptr logical_block) {
499494 const auto & equivalent_tiles = logical_block->equivalent_tiles ;
500- return std::find (equivalent_tiles. begin (), equivalent_tiles. end () , physical_tile) != equivalent_tiles.end ();
495+ return std::ranges:: find (equivalent_tiles, physical_tile) != equivalent_tiles.end ();
501496}
502497
503498bool is_sub_tile_compatible (t_physical_tile_type_ptr physical_tile, t_logical_block_type_ptr logical_block, int sub_tile_loc) {
504499 bool capacity_compatible = false ;
505- for (auto & sub_tile : physical_tile->sub_tiles ) {
506- auto result = std::find (sub_tile.equivalent_sites . begin (), sub_tile. equivalent_sites . end () , logical_block);
500+ for (const t_sub_tile & sub_tile : physical_tile->sub_tiles ) {
501+ auto result = std::ranges:: find (sub_tile.equivalent_sites , logical_block);
507502
508503 if (sub_tile.capacity .is_in_range (sub_tile_loc) && result != sub_tile.equivalent_sites .end ()) {
509504 capacity_compatible = true ;
@@ -687,18 +682,16 @@ std::vector<std::string> block_type_class_index_to_pin_names(t_physical_tile_typ
687682 pin_info.push_back (block_type_pin_index_to_pin_inst (type, pin_physical_num, is_flat));
688683 }
689684
690- auto cmp = [](const t_pin_inst_port& lhs, const t_pin_inst_port& rhs) {
685+ // Ensure all the pins are in order
686+ std::ranges::sort (pin_info, [](const t_pin_inst_port& lhs, const t_pin_inst_port& rhs) noexcept {
691687 return lhs.pin_physical_num < rhs.pin_physical_num ;
692- };
688+ }) ;
693689
694- // Ensure all the pins are in order
695- std::sort (pin_info.begin (), pin_info.end (), cmp);
696-
697- // Determine ranges for each capacity instance and port pair
690+ // Determine ranges for each capacity instance and port pair
698691 std::map<std::tuple<int , int , int , int , int >, std::array<int , 4 >> pin_ranges;
699- for (const auto & pin_inf : pin_info) {
692+ for (const t_pin_inst_port & pin_inf : pin_info) {
700693 auto key = std::make_tuple (pin_inf.sub_tile_index , pin_inf.capacity_instance , pin_inf.logical_block_index , pin_inf.pb_type_idx , pin_inf.port_index );
701- if (!pin_ranges.count (key)) {
694+ if (!pin_ranges.contains (key)) {
702695 pin_ranges[key][0 ] = pin_inf.pin_index_in_port ;
703696 pin_ranges[key][1 ] = pin_inf.pin_index_in_port ;
704697 pin_ranges[key][2 ] = pin_inf.pin_physical_num ;
@@ -783,7 +776,7 @@ std::tuple<const t_sub_tile*, int> get_sub_tile_from_class_physical_num(t_physic
783776 int num_seen_class = (is_on_tile) ? 0 : (int )physical_tile->class_inf .size ();
784777 int class_num_offset = num_seen_class;
785778
786- for (auto & sub_tile : physical_tile->sub_tiles ) {
779+ for (const t_sub_tile & sub_tile : physical_tile->sub_tiles ) {
787780 int sub_tile_num_class = is_on_tile ? sub_tile.class_range .total_num () : get_sub_tile_num_internal_classes (&sub_tile);
788781 num_seen_class += sub_tile_num_class;
789782
@@ -801,8 +794,8 @@ std::tuple<const t_sub_tile*, int> get_sub_tile_from_class_physical_num(t_physic
801794
802795t_logical_block_type_ptr get_logical_block_from_class_physical_num (t_physical_tile_type_ptr physical_tile,
803796 int class_physical_num) {
804- auto pin_list = get_pin_list_from_class_physical_num (physical_tile, class_physical_num);
805- VTR_ASSERT (( int ) pin_list.size () != 0 );
797+ std::vector< int > pin_list = get_pin_list_from_class_physical_num (physical_tile, class_physical_num);
798+ VTR_ASSERT (! pin_list.empty () );
806799 return get_logical_block_from_pin_physical_num (physical_tile, pin_list[0 ]);
807800}
808801
@@ -895,7 +888,7 @@ std::tuple<const t_sub_tile*, int> get_sub_tile_from_pin_physical_num(t_physical
895888 int total_pin_counts = pin_on_tile ? 0 : physical_tile->num_pins ;
896889 int pin_offset = total_pin_counts;
897890
898- for (auto & sub_tile : physical_tile->sub_tiles ) {
891+ for (const t_sub_tile & sub_tile : physical_tile->sub_tiles ) {
899892 int sub_tile_num_pins = pin_on_tile ? sub_tile.num_phy_pins : sub_tile.total_num_internal_pins ();
900893 total_pin_counts += sub_tile_num_pins;
901894
@@ -1269,9 +1262,7 @@ bool intra_tile_nodes_connected(t_physical_tile_type_ptr physical_type,
12691262 } else {
12701263 const t_pb_graph_pin* from_pb_graph_pin = get_pb_pin_from_pin_physical_num (physical_type, pin_physical_num);
12711264
1272- auto res = from_pb_graph_pin->connected_sinks_ptc .find (sink_physical_num);
1273-
1274- if (res == from_pb_graph_pin->connected_sinks_ptc .end ()) {
1265+ if (!from_pb_graph_pin->connected_sinks_ptc .contains (sink_physical_num)) {
12751266 return false ;
12761267 } else {
12771268 return true ;
@@ -1304,8 +1295,7 @@ float get_pin_primitive_comb_delay(t_physical_tile_type_ptr physical_type,
13041295 pin_physical_num);
13051296 VTR_ASSERT (pb_pin->is_primitive_pin ());
13061297
1307- auto it = std::max_element (pb_pin->pin_timing_del_max .begin (), pb_pin->pin_timing_del_max .end ());
1308-
1298+ auto it = std::ranges::max_element (pb_pin->pin_timing_del_max );
13091299 if (it == pb_pin->pin_timing_del_max .end ()) {
13101300 return 0 .;
13111301 } else {
@@ -1323,9 +1313,9 @@ bool classes_in_same_block(t_physical_tile_type_ptr physical_tile,
13231313 }
13241314
13251315 // Two functions are considered to be in the same group if share at least two level of blocks
1326- const int NUM_SIMILAR_PB_NODE_THRESHOLD = 2 ;
1327- auto first_class_pin_list = get_pin_list_from_class_physical_num (physical_tile, first_class_ptc_num);
1328- auto second_class_pin_list = get_pin_list_from_class_physical_num (physical_tile, second_class_ptc_num);
1316+ constexpr int NUM_SIMILAR_PB_NODE_THRESHOLD = 2 ;
1317+ std::vector< int > first_class_pin_list = get_pin_list_from_class_physical_num (physical_tile, first_class_ptc_num);
1318+ std::vector< int > second_class_pin_list = get_pin_list_from_class_physical_num (physical_tile, second_class_ptc_num);
13291319
13301320 auto first_pb_graph_pin = get_pb_pin_from_pin_physical_num (physical_tile, first_class_pin_list[0 ]);
13311321 auto second_pb_graph_pin = get_pb_pin_from_pin_physical_num (physical_tile, second_class_pin_list[0 ]);
@@ -1340,7 +1330,7 @@ bool classes_in_same_block(t_physical_tile_type_ptr physical_tile,
13401330 int num_shared_pb_graph_node = 0 ;
13411331 curr_pb_graph_node = second_pb_graph_pin->parent_node ;
13421332 while (curr_pb_graph_node != nullptr ) {
1343- auto find_res = std::find (first_pb_graph_node_chain. begin (), first_pb_graph_node_chain. end () , curr_pb_graph_node);
1333+ auto find_res = std::ranges:: find (first_pb_graph_node_chain, curr_pb_graph_node);
13441334 if (find_res != first_pb_graph_node_chain.end ()) {
13451335 num_shared_pb_graph_node++;
13461336 if (num_shared_pb_graph_node >= NUM_SIMILAR_PB_NODE_THRESHOLD)
0 commit comments