From 8c62a616a2c84516618e12fe7cc10a3b1b5b5464 Mon Sep 17 00:00:00 2001 From: sdashmiz Date: Thu, 16 Mar 2023 16:44:54 -0400 Subject: [PATCH] SWDEV-388937 - fix removing a node - before removing node from graph all edges should be removed and rest of graph updated Signed-off-by: sdashmiz Change-Id: Ide0afcc964f87f13cf407c971e22497433e3b1ed --- hipamd/src/hip_graph.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/hipamd/src/hip_graph.cpp b/hipamd/src/hip_graph.cpp index 151c5c78d7..d788073f59 100644 --- a/hipamd/src/hip_graph.cpp +++ b/hipamd/src/hip_graph.cpp @@ -1829,6 +1829,16 @@ hipError_t hipGraphDestroyNode(hipGraphNode_t node) { if (!hipGraphNode::isNodeValid(node)) { HIP_RETURN(hipErrorInvalidValue); } + // First remove all the edges both incoming and outgoing from node. + for(auto& edge : node->GetEdges()) { + node->RemoveUpdateEdge(edge); + } + const std::vector& dependencies = node->GetDependencies(); + for(auto& parent: dependencies) { + parent->RemoveEdge(node); + parent->SetOutDegree(parent->GetOutDegree() - 1); + } + // Remove the node from graph. node->GetParentGraph()->RemoveNode(node); HIP_RETURN(hipSuccess); }