@@ -105,7 +105,7 @@ static void build_bidir_rr_opins(const int i,
105
105
const int j,
106
106
const e_side side,
107
107
const t_rr_node_indices& L_rr_node_indices,
108
- const std::vector<t_rr_node> & rr_nodes,
108
+ const t_rr_node_storage & rr_nodes,
109
109
const t_pin_to_track_lookup& opin_to_track_map,
110
110
const std::vector<vtr::Matrix<int >>& Fc_out,
111
111
t_rr_edge_info_set& created_rr_edges,
@@ -130,7 +130,7 @@ static void build_unidir_rr_opins(const int i,
130
130
t_rr_edge_info_set& created_rr_edges,
131
131
bool * Fc_clipped,
132
132
const t_rr_node_indices& L_rr_node_indices,
133
- const std::vector<t_rr_node> & rr_nodes,
133
+ const t_rr_node_storage & rr_nodes,
134
134
const t_direct_inf* directs,
135
135
const int num_directs,
136
136
const t_clb_to_clb_directs* clb_to_clb_directs,
@@ -143,12 +143,12 @@ static int get_opin_direct_connecions(int x,
143
143
int from_rr_node,
144
144
t_rr_edge_info_set& rr_edges_to_create,
145
145
const t_rr_node_indices& L_rr_node_indices,
146
- const std::vector<t_rr_node> & rr_nodes,
146
+ const t_rr_node_storage & rr_nodes,
147
147
const t_direct_inf* directs,
148
148
const int num_directs,
149
149
const t_clb_to_clb_directs* clb_to_clb_directs);
150
150
151
- static std::function<void (t_chan_width*)> alloc_and_load_rr_graph (std::vector<t_rr_node> & L_rr_node,
151
+ static std::function<void (t_chan_width*)> alloc_and_load_rr_graph (t_rr_node_storage & L_rr_node,
152
152
const int num_seg_types,
153
153
const t_chan_details& chan_details_x,
154
154
const t_chan_details& chan_details_y,
@@ -209,7 +209,7 @@ static std::vector<std::vector<bool>> alloc_and_load_perturb_ipins(const int L_n
209
209
210
210
static void build_rr_sinks_sources (const int i,
211
211
const int j,
212
- std::vector<t_rr_node> & L_rr_node,
212
+ t_rr_node_storage & L_rr_node,
213
213
t_rr_edge_info_set& rr_edges_to_create,
214
214
const t_rr_node_indices& L_rr_node_indices,
215
215
const int delayless_switch,
@@ -231,13 +231,13 @@ static void build_rr_chan(const int i,
231
231
const t_chan_details& chan_details_y,
232
232
const t_rr_node_indices& L_rr_node_indices,
233
233
t_rr_edge_info_set& created_rr_edges,
234
- std::vector<t_rr_node> & L_rr_node,
234
+ t_rr_node_storage & L_rr_node,
235
235
const int wire_to_ipin_switch,
236
236
const enum e_directionality directionality);
237
237
238
238
void uniquify_edges (t_rr_edge_info_set& rr_edges_to_create);
239
239
240
- void alloc_and_load_edges (std::vector<t_rr_node> & L_rr_node,
240
+ void alloc_and_load_edges (t_rr_node_storage & L_rr_node,
241
241
const t_rr_edge_info_set& rr_edges_to_create);
242
242
243
243
static void alloc_and_load_rr_switch_inf (const int num_arch_switches,
@@ -275,7 +275,7 @@ static std::vector<vtr::Matrix<int>> alloc_and_load_actual_fc(const std::vector<
275
275
const enum e_directionality directionality,
276
276
bool * Fc_clipped);
277
277
278
- static int pick_best_direct_connect_target_rr_node (const std::vector<t_rr_node> & rr_nodes,
278
+ static int pick_best_direct_connect_target_rr_node (const t_rr_node_storage & rr_nodes,
279
279
int from_rr,
280
280
const std::vector<int >& candidate_rr_nodes);
281
281
@@ -1185,7 +1185,7 @@ static void free_type_track_to_pin_map(t_track_to_pin_lookup& track_to_pin_map,
1185
1185
1186
1186
/* Does the actual work of allocating the rr_graph and filling all the *
1187
1187
* appropriate values. Everything up to this was just a prelude! */
1188
- static std::function<void (t_chan_width*)> alloc_and_load_rr_graph (std::vector<t_rr_node> & L_rr_node,
1188
+ static std::function<void (t_chan_width*)> alloc_and_load_rr_graph (t_rr_node_storage & L_rr_node,
1189
1189
const int num_seg_types,
1190
1190
const t_chan_details& chan_details_x,
1191
1191
const t_chan_details& chan_details_y,
@@ -1333,7 +1333,7 @@ static void build_bidir_rr_opins(const int i,
1333
1333
const int j,
1334
1334
const e_side side,
1335
1335
const t_rr_node_indices& L_rr_node_indices,
1336
- const std::vector<t_rr_node> & rr_nodes,
1336
+ const t_rr_node_storage & rr_nodes,
1337
1337
const t_pin_to_track_lookup& opin_to_track_map,
1338
1338
const std::vector<vtr::Matrix<int >>& Fc_out,
1339
1339
t_rr_edge_info_set& rr_edges_to_create,
@@ -1426,7 +1426,7 @@ void free_rr_graph() {
1426
1426
1427
1427
static void build_rr_sinks_sources (const int i,
1428
1428
const int j,
1429
- std::vector<t_rr_node> & L_rr_node,
1429
+ t_rr_node_storage & L_rr_node,
1430
1430
t_rr_edge_info_set& rr_edges_to_create,
1431
1431
const t_rr_node_indices& L_rr_node_indices,
1432
1432
const int delayless_switch,
@@ -1555,7 +1555,7 @@ static void build_rr_sinks_sources(const int i,
1555
1555
// Create the actual edges
1556
1556
}
1557
1557
1558
- void init_fan_in (std::vector<t_rr_node> & L_rr_node, const int num_rr_nodes) {
1558
+ void init_fan_in (t_rr_node_storage & L_rr_node, const int num_rr_nodes) {
1559
1559
// Loads fan-ins for all nodes
1560
1560
1561
1561
// Reset all fan-ins to zero
@@ -1591,7 +1591,7 @@ static void build_rr_chan(const int x_coord,
1591
1591
const t_chan_details& chan_details_y,
1592
1592
const t_rr_node_indices& L_rr_node_indices,
1593
1593
t_rr_edge_info_set& rr_edges_to_create,
1594
- std::vector<t_rr_node> & L_rr_node,
1594
+ t_rr_node_storage & L_rr_node,
1595
1595
const int wire_to_ipin_switch,
1596
1596
const enum e_directionality directionality) {
1597
1597
/* this function builds both x and y-directed channel segments, so set up our
@@ -1754,7 +1754,7 @@ void uniquify_edges(t_rr_edge_info_set& rr_edges_to_create) {
1754
1754
rr_edges_to_create.erase (std::unique (rr_edges_to_create.begin (), rr_edges_to_create.end ()), rr_edges_to_create.end ());
1755
1755
}
1756
1756
1757
- void alloc_and_load_edges (std::vector<t_rr_node> & L_rr_node,
1757
+ void alloc_and_load_edges (t_rr_node_storage & L_rr_node,
1758
1758
const t_rr_edge_info_set& rr_edges_to_create) {
1759
1759
/* Sets up all the edge related information for rr_node */
1760
1760
@@ -2590,7 +2590,7 @@ std::string describe_rr_node(int inode) {
2590
2590
2591
2591
return msg;
2592
2592
}
2593
- static void build_unidir_rr_opins (const int i, const int j, const e_side side, const DeviceGrid& grid, const std::vector<vtr::Matrix<int >>& Fc_out, const int max_chan_width, const t_chan_details& chan_details_x, const t_chan_details& chan_details_y, vtr::NdMatrix<int , 3 >& Fc_xofs, vtr::NdMatrix<int , 3 >& Fc_yofs, t_rr_edge_info_set& rr_edges_to_create, bool * Fc_clipped, const t_rr_node_indices& L_rr_node_indices, const std::vector<t_rr_node> & rr_nodes, const t_direct_inf* directs, const int num_directs, const t_clb_to_clb_directs* clb_to_clb_directs, const int num_seg_types) {
2593
+ static void build_unidir_rr_opins (const int i, const int j, const e_side side, const DeviceGrid& grid, const std::vector<vtr::Matrix<int >>& Fc_out, const int max_chan_width, const t_chan_details& chan_details_x, const t_chan_details& chan_details_y, vtr::NdMatrix<int , 3 >& Fc_xofs, vtr::NdMatrix<int , 3 >& Fc_yofs, t_rr_edge_info_set& rr_edges_to_create, bool * Fc_clipped, const t_rr_node_indices& L_rr_node_indices, const t_rr_node_storage & rr_nodes, const t_direct_inf* directs, const int num_directs, const t_clb_to_clb_directs* clb_to_clb_directs, const int num_seg_types) {
2594
2594
/*
2595
2595
* This routine adds the edges from opins to channels at the specified
2596
2596
* grid location (i,j) and grid tile side
@@ -2825,7 +2825,7 @@ static int get_opin_direct_connecions(int x,
2825
2825
int from_rr_node,
2826
2826
t_rr_edge_info_set& rr_edges_to_create,
2827
2827
const t_rr_node_indices& L_rr_node_indices,
2828
- const std::vector<t_rr_node> & rr_nodes,
2828
+ const t_rr_node_storage & rr_nodes,
2829
2829
const t_direct_inf* directs,
2830
2830
const int num_directs,
2831
2831
const t_clb_to_clb_directs* clb_to_clb_directs) {
@@ -3037,7 +3037,7 @@ static std::vector<bool> alloc_and_load_perturb_opins(const t_physical_tile_type
3037
3037
return perturb_opins;
3038
3038
}
3039
3039
3040
- static int pick_best_direct_connect_target_rr_node (const std::vector<t_rr_node> & rr_nodes,
3040
+ static int pick_best_direct_connect_target_rr_node (const t_rr_node_storage & rr_nodes,
3041
3041
int from_rr,
3042
3042
const std::vector<int >& candidate_rr_nodes) {
3043
3043
// With physically equivalent pins there may be multiple candidate rr nodes (which are equivalent)
0 commit comments