aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/Graph.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/armnn/Graph.cpp')
-rw-r--r--src/armnn/Graph.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/armnn/Graph.cpp b/src/armnn/Graph.cpp
index 8c2b232ead..31ca55cb9d 100644
--- a/src/armnn/Graph.cpp
+++ b/src/armnn/Graph.cpp
@@ -308,6 +308,17 @@ void Graph::SubstituteSubgraph(SubgraphView& subgraph, IConnectableLayer* substi
void Graph::SubstituteSubgraph(SubgraphView& subgraph, const SubgraphView& substituteSubgraph)
{
+ // Look through each layer in the new subgraph and add any that are not already a member of this graph
+ substituteSubgraph.ForEachLayer([this](Layer* layer)
+ {
+ if (std::find(std::begin(m_Layers), std::end(m_Layers), layer) == std::end(m_Layers))
+ {
+ layer->Reparent(*this, m_Layers.end());
+ m_LayersInOrder = false;
+ }
+ });
+
+ TopologicalSort();
ReplaceSubgraphConnections(subgraph, substituteSubgraph);
EraseSubgraphLayers(subgraph);
}