@@ -707,8 +707,8 @@ void t_rr_graph_storage::remove_nodes(const std::vector<RRNodeId>& nodes) {
707707 // Iterate over the nodes to be removed and adjust the IDs of nodes
708708 // that fall between them.
709709 for (size_t i = 0 ; i < sorted_nodes.size (); ++i) {
710- size_t start_rr_node_index = sorted_nodes[i]+ 1 ;
711- size_t end_rr_node_index = (i == sorted_nodes.size () - 1 ) ? sorted_nodes.size () : sorted_nodes[i + 1 ];
710+ size_t start_rr_node_index = size_t ( sorted_nodes[i]) + 1 ;
711+ size_t end_rr_node_index = (i == sorted_nodes.size () - 1 ) ? sorted_nodes.size () : size_t ( sorted_nodes[i + 1 ]) ;
712712 for (size_t j = start_rr_node_index; j < end_rr_node_index; ++j) {
713713 RRNodeId old_node = RRNodeId (j);
714714 // New node index is equal to the old nodex index minus the number of nodes being removed before it.
@@ -722,6 +722,7 @@ void t_rr_graph_storage::remove_nodes(const std::vector<RRNodeId>& nodes) {
722722 if (is_tileable_) {
723723 node_bend_start_[new_node] = node_bend_start_[old_node];
724724 node_bend_end_[new_node] = node_bend_end_[old_node];
725+ node_tilable_track_nums_[new_node] = node_tilable_track_nums_[old_node];
725726 }
726727 }
727728 }
@@ -734,14 +735,18 @@ void t_rr_graph_storage::remove_nodes(const std::vector<RRNodeId>& nodes) {
734735 node_first_edge_.erase (node_first_edge_.end ()-num_nodes_to_remove, node_first_edge_.end ());
735736 node_fan_in_.erase (node_fan_in_.end ()-num_nodes_to_remove, node_fan_in_.end ());
736737 node_layer_.erase (node_layer_.end ()-num_nodes_to_remove, node_layer_.end ());
737- node_name_.erase (node_name_.end ()-num_nodes_to_remove, node_name_.end ());
738+ for (size_t node_index = node_name_.size ()-num_nodes_to_remove; node_index < node_name_.size (); ++node_index) {
739+ RRNodeId node = RRNodeId (node_index);
740+ node_name_.erase (node);
741+ }
738742 if (is_tileable_) {
739743 node_bend_start_.erase (node_bend_start_.end ()-num_nodes_to_remove, node_bend_start_.end ());
740744 node_bend_end_.erase (node_bend_end_.end ()-num_nodes_to_remove, node_bend_end_.end ());
745+ node_tilable_track_nums_.erase (node_tilable_track_nums_.end ()-num_nodes_to_remove, node_tilable_track_nums_.end ());
741746 }
742747
743748 std::vector<RREdgeId> removed_edges;
744- auto adjust_edges = [&](std ::vector<RRNodeId>& edge_nodes) {
749+ auto adjust_edges = [&](vtr ::vector<RREdgeId, RRNodeId>& edge_nodes) {
745750 for (size_t edge_index = 0 ; edge_index < edge_nodes.size (); ++edge_index) {
746751 RREdgeId edge_id = RREdgeId (edge_index);
747752 RRNodeId node = edge_nodes[edge_id];
0 commit comments