Skip to content

Commit 2aa56e2

Browse files
committed
[lib][rr_graph] remove data structures related to partioning edges from remove nodes
1 parent e264986 commit 2aa56e2

File tree

2 files changed

+3
-5
lines changed

2 files changed

+3
-5
lines changed

libs/librrgraph/src/base/rr_graph_storage.cpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -700,6 +700,7 @@ void t_rr_graph_storage::set_virtual_clock_network_root_idx(RRNodeId virtual_clo
700700
}
701701

702702
void t_rr_graph_storage::remove_nodes(const std::vector<RRNodeId>& nodes) {
703+
VTR_ASSERT(!edges_read_);
703704
// To remove the nodes, we first sort them in ascending order. This makes it easy
704705
// to calculate the offset by which other node IDs need to be adjusted.
705706
// For example, after sorting the nodes to be removed, if a node ID falls between
@@ -720,8 +721,6 @@ void t_rr_graph_storage::remove_nodes(const std::vector<RRNodeId>& nodes) {
720721
RRNodeId new_node = RRNodeId(j-(i+1));
721722
node_storage_[new_node] = node_storage_[old_node];
722723
node_ptc_[new_node] = node_ptc_[old_node];
723-
node_first_edge_[new_node] = node_first_edge_[old_node];
724-
node_fan_in_[new_node] = node_fan_in_[old_node];
725724
node_layer_[new_node] = node_layer_[old_node];
726725
node_name_[new_node] = node_name_[old_node];
727726
if (is_tileable_) {
@@ -737,8 +736,6 @@ void t_rr_graph_storage::remove_nodes(const std::vector<RRNodeId>& nodes) {
737736
VTR_ASSERT(num_nodes_to_remove <= node_storage_.size());
738737
node_storage_.erase(node_storage_.end()-num_nodes_to_remove, node_storage_.end());
739738
node_ptc_.erase(node_ptc_.end()-num_nodes_to_remove, node_ptc_.end());
740-
node_first_edge_.erase(node_first_edge_.end()-num_nodes_to_remove, node_first_edge_.end());
741-
node_fan_in_.erase(node_fan_in_.end()-num_nodes_to_remove, node_fan_in_.end());
742739
node_layer_.erase(node_layer_.end()-num_nodes_to_remove, node_layer_.end());
743740
for (size_t node_index = node_name_.size()-num_nodes_to_remove; node_index < node_name_.size(); ++node_index) {
744741
RRNodeId node = RRNodeId(node_index);

libs/librrgraph/src/base/rr_graph_storage.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -739,7 +739,8 @@ class t_rr_graph_storage {
739739

740740
/**
741741
* @brief Removes a given list of RRNodes from the RR Graph
742-
* This method should be called after partition_edges has been called.
742+
* This method should be called before partition_edges has been called.
743+
* If init_fan_in has been called, you need to call it again after removing the nodes.
743744
* @note This a very expensive method, so should be called only when necessary. It is better
744745
* to not add nodes in the first place, instead of relying on this method to remove nodes.
745746
*

0 commit comments

Comments
 (0)