@@ -187,6 +187,7 @@ class t_rr_graph_storage {
187
187
short node_bend_start (RRNodeId id) const {
188
188
return node_bend_start_[id];
189
189
}
190
+
190
191
short node_bend_end (RRNodeId id) const {
191
192
return node_bend_end_[id];
192
193
}
@@ -228,7 +229,7 @@ class t_rr_graph_storage {
228
229
int node_pin_num (RRNodeId id) const ; // Same as ptc_num() but checks that type() is consistent
229
230
int node_track_num (RRNodeId id) const ; // Same as ptc_num() but checks that type() is consistent
230
231
int node_class_num (RRNodeId id) const ; // Same as ptc_num() but checks that type() is consistent
231
- int node_mux_num (RRNodeId id) const ; // Same as ptc_num() but checks that type() is consistent
232
+ int node_mux_num (RRNodeId id) const ; // Same as ptc_num() but checks that type() is consistent
232
233
233
234
/* * @brief Retrieve fan_in for RRNodeId, init_fan_in must have been called first. */
234
235
t_edge_size fan_in (RRNodeId id) const {
@@ -337,18 +338,18 @@ class t_rr_graph_storage {
337
338
*
338
339
* Only call these methods after partition_edges has been invoked.
339
340
*/
340
- edge_idx_range edges (const RRNodeId& id) const {
341
+ edge_idx_range edges (const RRNodeId id) const {
341
342
return vtr::make_range (edge_idx_iterator (0 ), edge_idx_iterator (num_edges (id)));
342
343
}
343
344
344
- edge_idx_range configurable_edges (const RRNodeId& id, const vtr::vector<RRSwitchId, t_rr_switch_inf>& rr_switches) const {
345
+ edge_idx_range configurable_edges (const RRNodeId id, const vtr::vector<RRSwitchId, t_rr_switch_inf>& rr_switches) const {
345
346
return vtr::make_range (edge_idx_iterator (0 ), edge_idx_iterator (num_edges (id) - num_non_configurable_edges (id, rr_switches)));
346
347
}
347
- edge_idx_range non_configurable_edges (const RRNodeId& id, const vtr::vector<RRSwitchId, t_rr_switch_inf>& rr_switches) const {
348
+ edge_idx_range non_configurable_edges (const RRNodeId id, const vtr::vector<RRSwitchId, t_rr_switch_inf>& rr_switches) const {
348
349
return vtr::make_range (edge_idx_iterator (num_edges (id) - num_non_configurable_edges (id, rr_switches)), edge_idx_iterator (num_edges (id)));
349
350
}
350
351
351
- t_edge_size num_edges (const RRNodeId& id) const {
352
+ t_edge_size num_edges (const RRNodeId id) const {
352
353
return size_t (last_edge (id)) - size_t (first_edge (id));
353
354
}
354
355
bool edge_is_configurable (RREdgeId edge, const vtr::vector<RRSwitchId, t_rr_switch_inf>& rr_switches) const ;
@@ -363,7 +364,7 @@ class t_rr_graph_storage {
363
364
*
364
365
* If first_edge == last_edge, then a RRNodeId has no edges.
365
366
*/
366
- RREdgeId first_edge (const RRNodeId& id) const {
367
+ RREdgeId first_edge (const RRNodeId id) const {
367
368
return node_first_edge_[id];
368
369
}
369
370
@@ -372,7 +373,7 @@ class t_rr_graph_storage {
372
373
* we always allocate that dummy node. We also assume that the edges have
373
374
* been sorted by rr_node, which is true after partition_edges().
374
375
*/
375
- RREdgeId last_edge (const RRNodeId& id) const {
376
+ RREdgeId last_edge (const RRNodeId id) const {
376
377
return (&node_first_edge_[id])[1 ];
377
378
}
378
379
@@ -411,19 +412,19 @@ class t_rr_graph_storage {
411
412
}
412
413
413
414
/* * @brief Get the source node for the specified edge. */
414
- RRNodeId edge_src_node (const RREdgeId& edge) const {
415
+ RRNodeId edge_src_node (const RREdgeId edge) const {
415
416
VTR_ASSERT_DEBUG (edge.is_valid ());
416
417
return edge_src_node_[edge];
417
418
}
418
419
419
420
/* * @brief Get the destination node for the specified edge. */
420
- RRNodeId edge_sink_node (const RREdgeId& edge) const {
421
+ RRNodeId edge_sink_node (const RREdgeId edge) const {
421
422
VTR_ASSERT_DEBUG (edge.is_valid ());
422
423
return edge_dest_node_[edge];
423
424
}
424
425
425
426
// Get the source node for the specified edge.
426
- RRNodeId edge_source_node (const RREdgeId& edge) const {
427
+ RRNodeId edge_source_node (const RREdgeId edge) const {
427
428
return edge_src_node_[edge];
428
429
}
429
430
@@ -440,17 +441,17 @@ class t_rr_graph_storage {
440
441
* This method should generally not be used, and instead first_edge and
441
442
* last_edge should be used.
442
443
*/
443
- RRNodeId edge_sink_node (const RRNodeId& id, t_edge_size iedge) const {
444
+ RRNodeId edge_sink_node (const RRNodeId id, t_edge_size iedge) const {
444
445
return edge_sink_node (edge_id (id, iedge));
445
446
}
446
447
447
448
// Get the source node for the iedge'th edge from specified RRNodeId.
448
- RRNodeId edge_source_node (const RRNodeId& id, t_edge_size iedge) const {
449
+ RRNodeId edge_source_node (const RRNodeId id, t_edge_size iedge) const {
449
450
return edge_source_node (edge_id (id, iedge));
450
451
}
451
452
452
453
/* * @brief Get the switch used for the specified edge. */
453
- short edge_switch (const RREdgeId& edge) const {
454
+ short edge_switch (const RREdgeId edge) const {
454
455
return edge_switch_[edge];
455
456
}
456
457
@@ -459,7 +460,7 @@ class t_rr_graph_storage {
459
460
* This method should generally not be used, and instead first_edge and
460
461
* last_edge should be used.
461
462
*/
462
- short edge_switch (const RRNodeId& id, t_edge_size iedge) const {
463
+ short edge_switch (const RRNodeId id, t_edge_size iedge) const {
463
464
return edge_switch (edge_id (id, iedge));
464
465
}
465
466
@@ -791,8 +792,8 @@ class t_rr_graph_storage {
791
792
*/
792
793
static inline bool is_node_on_specific_side (
793
794
vtr::array_view_id<RRNodeId, const t_rr_node_data> node_storage,
794
- const RRNodeId& id,
795
- const e_side& side) {
795
+ const RRNodeId id,
796
+ const e_side side) {
796
797
auto & node_data = node_storage[id];
797
798
if (node_data.type_ != e_rr_type::IPIN && node_data.type_ != e_rr_type::OPIN) {
798
799
VTR_LOG_ERROR (" Attempted to access RR node 'side' for non-IPIN/OPIN type '%s'" ,
@@ -1035,7 +1036,7 @@ class t_rr_graph_view {
1035
1036
int node_pin_num (RRNodeId id) const ; // Same as ptc_num() but checks that type() is consistent
1036
1037
int node_track_num (RRNodeId id) const ; // Same as ptc_num() but checks that type() is consistent
1037
1038
int node_class_num (RRNodeId id) const ; // Same as ptc_num() but checks that type() is consistent
1038
- int node_mux_num (RRNodeId id) const ; // Same as ptc_num() but checks that type() is consistent
1039
+ int node_mux_num (RRNodeId id) const ; // Same as ptc_num() but checks that type() is consistent
1039
1040
1040
1041
/* *
1041
1042
* @brief Retrieve the fan-in for a given RRNodeId.
0 commit comments