@@ -45,7 +45,7 @@ RRNodeId RRSpatialLookup::find_node(int layer,
45
45
std::swap (node_x, node_y);
46
46
}
47
47
48
- VTR_ASSERT_SAFE (4 == rr_node_indices_[( size_t ) type].ndims ());
48
+ VTR_ASSERT_SAFE (4 == rr_node_indices_[type].ndims ());
49
49
50
50
/* Sanity check to ensure the layer, x, y, side and ptc are in range
51
51
* - Return an valid id by searching in look-up when all the parameters are in range
@@ -55,27 +55,27 @@ RRNodeId RRSpatialLookup::find_node(int layer,
55
55
return RRNodeId::INVALID ();
56
56
}
57
57
58
- if (size_t (layer) >= rr_node_indices_[( size_t ) type].dim_size (0 )) {
58
+ if (size_t (layer) >= rr_node_indices_[type].dim_size (0 )) {
59
59
return RRNodeId::INVALID ();
60
60
}
61
61
62
- if (node_x >= rr_node_indices_[( size_t ) type].dim_size (1 )) {
62
+ if (node_x >= rr_node_indices_[type].dim_size (1 )) {
63
63
return RRNodeId::INVALID ();
64
64
}
65
65
66
- if (node_y >= rr_node_indices_[( size_t ) type].dim_size (2 )){
66
+ if (node_y >= rr_node_indices_[type].dim_size (2 )){
67
67
return RRNodeId::INVALID ();
68
68
}
69
69
70
- if (node_side >= rr_node_indices_[( size_t ) type].dim_size (3 )) {
70
+ if (node_side >= rr_node_indices_[type].dim_size (3 )) {
71
71
return RRNodeId::INVALID ();
72
72
}
73
73
74
- if (size_t (ptc) >= rr_node_indices_[( size_t ) type][layer][node_x][node_y][node_side].size ()) {
74
+ if (size_t (ptc) >= rr_node_indices_[type][layer][node_x][node_y][node_side].size ()) {
75
75
return RRNodeId::INVALID ();
76
76
}
77
77
78
- return rr_node_indices_[( size_t ) type][layer][node_x][node_y][node_side][ptc];
78
+ return rr_node_indices_[type][layer][node_x][node_y][node_side][ptc];
79
79
}
80
80
81
81
std::vector<RRNodeId> RRSpatialLookup::find_nodes_in_range (int layer,
@@ -126,7 +126,7 @@ std::vector<RRNodeId> RRSpatialLookup::find_nodes(int layer,
126
126
std::swap (node_x, node_y);
127
127
}
128
128
129
- VTR_ASSERT_SAFE (4 == rr_node_indices_[( size_t ) type].ndims ());
129
+ VTR_ASSERT_SAFE (4 == rr_node_indices_[type].ndims ());
130
130
131
131
/* Sanity check to ensure the x, y, side are in range
132
132
* - Return a list of valid ids by searching in look-up when all the parameters are in range
@@ -136,32 +136,32 @@ std::vector<RRNodeId> RRSpatialLookup::find_nodes(int layer,
136
136
return nodes;
137
137
}
138
138
139
- if (size_t (layer) >= rr_node_indices_[( size_t ) type].dim_size (0 )) {
139
+ if (size_t (layer) >= rr_node_indices_[type].dim_size (0 )) {
140
140
return nodes;
141
141
}
142
142
143
- if (node_x >= rr_node_indices_[( size_t ) type].dim_size (1 )) {
143
+ if (node_x >= rr_node_indices_[type].dim_size (1 )) {
144
144
return nodes;
145
145
}
146
146
147
- if (node_y >= rr_node_indices_[( size_t ) type].dim_size (2 )){
147
+ if (node_y >= rr_node_indices_[type].dim_size (2 )){
148
148
return nodes;
149
149
}
150
150
151
- if (side >= rr_node_indices_[( size_t ) type].dim_size (3 )) {
151
+ if (side >= rr_node_indices_[type].dim_size (3 )) {
152
152
return nodes;
153
153
}
154
154
155
155
/* Reserve space to avoid memory fragmentation */
156
156
size_t num_nodes = 0 ;
157
- for (const auto & node : rr_node_indices_[( size_t ) type][layer][node_x][node_y][side]) {
157
+ for (const auto & node : rr_node_indices_[type][layer][node_x][node_y][side]) {
158
158
if (node.is_valid ()) {
159
159
num_nodes++;
160
160
}
161
161
}
162
162
163
163
nodes.reserve (num_nodes);
164
- for (const auto & node : rr_node_indices_[( size_t ) type][layer][node_x][node_y][side]) {
164
+ for (const auto & node : rr_node_indices_[type][layer][node_x][node_y][side]) {
165
165
if (node.is_valid ()) {
166
166
nodes.emplace_back (node);
167
167
}
@@ -241,7 +241,7 @@ void RRSpatialLookup::reserve_nodes(int layer,
241
241
e_rr_type type,
242
242
int num_nodes,
243
243
e_side side) {
244
- VTR_ASSERT_SAFE (4 == rr_node_indices_[( size_t ) type].ndims ());
244
+ VTR_ASSERT_SAFE (4 == rr_node_indices_[type].ndims ());
245
245
246
246
/* For non-IPIN/OPIN nodes, the side should always be the TOP side which follows the convention in find_node() API! */
247
247
if (type != e_rr_type::IPIN && type != e_rr_type::OPIN) {
@@ -250,7 +250,7 @@ void RRSpatialLookup::reserve_nodes(int layer,
250
250
251
251
resize_nodes (layer, x, y, type, side);
252
252
253
- rr_node_indices_[( size_t ) type][layer][x][y][side].reserve (num_nodes);
253
+ rr_node_indices_[type][layer][x][y][side].reserve (num_nodes);
254
254
}
255
255
256
256
void RRSpatialLookup::add_node (RRNodeId node,
@@ -261,7 +261,7 @@ void RRSpatialLookup::add_node(RRNodeId node,
261
261
int ptc,
262
262
e_side side) {
263
263
VTR_ASSERT (node.is_valid ()); /* Must have a valid node id to be added */
264
- VTR_ASSERT_SAFE (4 == rr_node_indices_[( size_t ) type].ndims ());
264
+ VTR_ASSERT_SAFE (4 == rr_node_indices_[type].ndims ());
265
265
266
266
/* For non-IPIN/OPIN nodes, the side should always be the TOP side which follows the convention in find_node() API! */
267
267
if (type != e_rr_type::IPIN && type != e_rr_type::OPIN) {
@@ -270,13 +270,13 @@ void RRSpatialLookup::add_node(RRNodeId node,
270
270
271
271
resize_nodes (layer, x, y, type, side);
272
272
273
- if (size_t (ptc) >= rr_node_indices_[( size_t ) type][layer][x][y][side].size ()) {
273
+ if (size_t (ptc) >= rr_node_indices_[type][layer][x][y][side].size ()) {
274
274
/* Deposit invalid ids to newly allocated elements while original elements are untouched */
275
- rr_node_indices_[( size_t ) type][layer][x][y][side].resize (ptc + 1 , RRNodeId::INVALID ());
275
+ rr_node_indices_[type][layer][x][y][side].resize (ptc + 1 , RRNodeId::INVALID ());
276
276
}
277
277
278
278
/* Resize on demand finished; Register the node */
279
- rr_node_indices_[( size_t ) type][layer][x][y][side][ptc] = node;
279
+ rr_node_indices_[type][layer][x][y][side][ptc] = node;
280
280
}
281
281
282
282
bool RRSpatialLookup::remove_node (RRNodeId node,
@@ -287,7 +287,7 @@ bool RRSpatialLookup::remove_node(RRNodeId node,
287
287
int ptc,
288
288
e_side side) {
289
289
VTR_ASSERT (node.is_valid ());
290
- VTR_ASSERT_SAFE (4 == rr_node_indices_[( size_t ) type].ndims ());
290
+ VTR_ASSERT_SAFE (4 == rr_node_indices_[type].ndims ());
291
291
VTR_ASSERT_SAFE (layer >= 0 );
292
292
VTR_ASSERT_SAFE (x >= 0 );
293
293
VTR_ASSERT_SAFE (y >= 0 );
@@ -297,16 +297,16 @@ bool RRSpatialLookup::remove_node(RRNodeId node,
297
297
298
298
// Check if the node given is in the spatial lookup at the given indices
299
299
if ((size_t )type >= rr_node_indices_.size ()) return false ;
300
- if ((size_t )layer >= rr_node_indices_[( size_t ) type].dim_size (0 )) return false ;
301
- if ((size_t )x >= rr_node_indices_[( size_t ) type].dim_size (1 )) return false ;
302
- if ((size_t )y >= rr_node_indices_[( size_t ) type].dim_size (2 )) return false ;
303
- if (side >= rr_node_indices_[( size_t ) type].dim_size (3 )) return false ;
304
- if ((size_t )ptc >= rr_node_indices_[( size_t ) type][layer][x][y][side].size ()) return false ;
305
- if (rr_node_indices_[( size_t ) type][layer][x][y][side][ptc] != node) return false ;
300
+ if ((size_t )layer >= rr_node_indices_[type].dim_size (0 )) return false ;
301
+ if ((size_t )x >= rr_node_indices_[type].dim_size (1 )) return false ;
302
+ if ((size_t )y >= rr_node_indices_[type].dim_size (2 )) return false ;
303
+ if (side >= rr_node_indices_[type].dim_size (3 )) return false ;
304
+ if ((size_t )ptc >= rr_node_indices_[type][layer][x][y][side].size ()) return false ;
305
+ if (rr_node_indices_[type][layer][x][y][side][ptc] != node) return false ;
306
306
307
307
// The node was in the spatial lookup; remove it. -1 corresponds to an invalid node id,
308
308
// and so is treated as absent in the spatial lookup
309
- rr_node_indices_[( size_t ) type][layer][x][y][side][ptc] = RRNodeId::INVALID ();
309
+ rr_node_indices_[type][layer][x][y][side][ptc] = RRNodeId::INVALID ();
310
310
return true ;
311
311
}
312
312
@@ -317,7 +317,7 @@ void RRSpatialLookup::mirror_nodes(const int layer,
317
317
e_side side) {
318
318
VTR_ASSERT (e_rr_type::SOURCE == type);
319
319
resize_nodes (layer, des_coord.x (), des_coord.y (), type, side);
320
- rr_node_indices_[( size_t ) type][layer][des_coord.x ()][des_coord.y ()][side] = rr_node_indices_[( size_t ) type][layer][src_coord.x ()][src_coord.y ()][side];
320
+ rr_node_indices_[type][layer][des_coord.x ()][des_coord.y ()][side] = rr_node_indices_[type][layer][src_coord.x ()][src_coord.y ()][side];
321
321
}
322
322
323
323
void RRSpatialLookup::resize_nodes (int layer,
@@ -334,14 +334,14 @@ void RRSpatialLookup::resize_nodes(int layer,
334
334
VTR_ASSERT (y >= 0 );
335
335
VTR_ASSERT (layer >= 0 );
336
336
337
- if ((layer >= int (rr_node_indices_[( size_t ) type].dim_size (0 )))
338
- || (x >= int (rr_node_indices_[( size_t ) type].dim_size (1 )))
339
- || (y >= int (rr_node_indices_[( size_t ) type].dim_size (2 )))
340
- || (size_t (side) >= rr_node_indices_[( size_t ) type].dim_size (3 ))) {
341
- rr_node_indices_[( size_t ) type].resize ({std::max (rr_node_indices_[( size_t ) type].dim_size (0 ),size_t (layer)+1 ),
342
- std::max (rr_node_indices_[( size_t ) type].dim_size (1 ), size_t (x) + 1 ),
343
- std::max (rr_node_indices_[( size_t ) type].dim_size (2 ), size_t (y) + 1 ),
344
- std::max (rr_node_indices_[( size_t ) type].dim_size (3 ), size_t (side) + 1 )});
337
+ if ((layer >= int (rr_node_indices_[type].dim_size (0 )))
338
+ || (x >= int (rr_node_indices_[type].dim_size (1 )))
339
+ || (y >= int (rr_node_indices_[type].dim_size (2 )))
340
+ || (size_t (side) >= rr_node_indices_[type].dim_size (3 ))) {
341
+ rr_node_indices_[type].resize ({std::max (rr_node_indices_[type].dim_size (0 ),size_t (layer)+1 ),
342
+ std::max (rr_node_indices_[type].dim_size (1 ), size_t (x) + 1 ),
343
+ std::max (rr_node_indices_[type].dim_size (2 ), size_t (y) + 1 ),
344
+ std::max (rr_node_indices_[type].dim_size (3 ), size_t (side) + 1 )});
345
345
}
346
346
}
347
347
0 commit comments