Skip to content

Commit 907565a

Browse files
committed
[libs][rr_graph] reserve capacity for node_bend_
1 parent 7544f77 commit 907565a

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

libs/librrgraph/src/base/rr_graph_storage.h

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -529,11 +529,21 @@ class t_rr_graph_storage {
529529
*/
530530
void make_room_for_node(RRNodeId elem_position) {
531531
make_room_in_vector(&node_storage_, size_t(elem_position));
532+
533+
// Reserve the capacity based on node_storage_. The capacity is determined in
534+
// make_room_in_vector(), which uses a power-of-two growth pattern to avoid
535+
// growing the vector one element at a time.
532536
node_ptc_.reserve(node_storage_.capacity());
533537
node_ptc_.resize(node_storage_.size());
538+
539+
node_layer_.reserve(node_storage_.capacity());
534540
node_layer_.resize(node_storage_.size());
541+
535542
if (is_tileable_) {
543+
node_bend_start_.reserve(node_storage_.capacity());
536544
node_bend_start_.resize(node_storage_.size());
545+
546+
node_bend_end_.reserve(node_storage_.capacity());
537547
node_bend_end_.resize(node_storage_.size());
538548
}
539549
}
@@ -558,8 +568,10 @@ class t_rr_graph_storage {
558568
node_storage_.resize(size);
559569
node_ptc_.resize(size);
560570
node_layer_.resize(size);
561-
node_bend_start_.resize(size);
562-
node_bend_end_.resize(size);
571+
if (is_tileable_) {
572+
node_bend_start_.resize(size);
573+
node_bend_end_.resize(size);
574+
}
563575
}
564576

565577
/** @brief Number of RR nodes that can be accessed. */

0 commit comments

Comments
 (0)