MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / FixRenamedNodes

Method FixRenamedNodes

tensorflow/core/grappler/utils/graph_view.cc:885–936  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

883}
884
885void MutableGraphView::FixRenamedNodes(
886 std::vector<RenamedOrOverwrittenNode>* renamed_nodes,
887 absl::flat_hash_map<string, NodeViewFanouts>* renamed_fanouts,
888 std::vector<bool>* overwritten_name_removed_nodes) {
889 // Extract all renamed node fanouts.
890 renamed_fanouts->reserve(renamed_nodes->size());
891 for (auto& renamed : *renamed_nodes) {
892 auto& diff = mutation_.updated_nodes_[renamed.renamed_update_index_];
893 // Remove node index by name from graph.
894 node_index_by_name_.erase(nodes_[diff.node_index].GetName());
895 MutableNodeView& renamed_node = nodes_[diff.node_index];
896 renamed_fanouts->try_emplace(
897 renamed_node.GetName(),
898 std::move(renamed_node.regular_fanouts_by_port_),
899 renamed_node.num_regular_fanouts_,
900 std::move(renamed_node.controlled_fanouts_));
901 }
902
903 // Replace renamed node fanouts with fanouts associated with updated name.
904 for (auto& renamed : *renamed_nodes) {
905 auto& diff = mutation_.updated_nodes_[renamed.renamed_update_index_];
906 MutableNodeView& renamed_node = nodes_[diff.node_index];
907 auto fanouts_it = renamed_fanouts->find(diff.name);
908 if (fanouts_it != renamed_fanouts->end()) {
909 // Another renamed node's fanout.
910 auto& fanouts = fanouts_it->second;
911 ReplaceNodeFanouts(&renamed_node, &fanouts);
912 renamed_fanouts->erase(fanouts_it);
913 // Node to be overwritten is being renamed, so it won't be overwritten.
914 renamed.overwritten_node_index_ = internal::kMissingIndex;
915 } else if (renamed.overwritten_node_index_ != internal::kMissingIndex) {
916 // Existing node in graph.
917 MutableNodeView& node_to_overwrite =
918 nodes_[renamed.overwritten_node_index_];
919 ReplaceNodeFanouts(&renamed_node, &node_to_overwrite);
920 node_index_by_name_.erase(node_to_overwrite.GetName());
921 if (mutation_.removed_nodes_[node_to_overwrite.node_index_]) {
922 (*overwritten_name_removed_nodes)[node_to_overwrite.node_index_] = true;
923 }
924 } else {
925 // No existing fanouts.
926 renamed_node.num_regular_fanouts_ = 0;
927 }
928
929 // Update node name.
930 renamed_node.node()->set_name(diff.name);
931 diff.update_name = false;
932 diff.name.clear();
933 // Rehash renamed nodes with updated name.
934 node_index_by_name_.emplace(renamed_node.GetName(), diff.node_index);
935 }
936}
937
938void MutableGraphView::AddNewNodes(
939 absl::flat_hash_map<string, NodeViewFanouts>* renamed_fanouts,

Callers

nothing calls this directly

Calls 10

reserveMethod · 0.45
sizeMethod · 0.45
eraseMethod · 0.45
GetNameMethod · 0.45
findMethod · 0.45
endMethod · 0.45
set_nameMethod · 0.45
nodeMethod · 0.45
clearMethod · 0.45
emplaceMethod · 0.45

Tested by

no test coverage detected