IVGCVSW-7418 Allow working copy SubgraphView to get Original Slots
* API to remove need for workaround so backend users can get slots
* OutputSlots outside the SubgraphView needed to obtain TensorInfo
* Fix a few Copyright headers
* Add shared_ptr back to original subgraph view using
std::enable_shared_from_this
Signed-off-by: Francis Murtagh <francis.murtagh@arm.com>
Change-Id: I033a00d6fc4020619d406ac06a156b7e380a426a
diff --git a/src/backends/backendsCommon/test/OptimizationViewsTests.cpp b/src/backends/backendsCommon/test/OptimizationViewsTests.cpp
index ff84eea..ff32179 100644
--- a/src/backends/backendsCommon/test/OptimizationViewsTests.cpp
+++ b/src/backends/backendsCommon/test/OptimizationViewsTests.cpp
@@ -1,5 +1,5 @@
//
-// Copyright © 2017, 2019-2022 Arm Ltd and Contributors. All rights reserved.
+// Copyright © 2017, 2019-2023 Arm Ltd and Contributors. All rights reserved.
// SPDX-License-Identifier: MIT
//
@@ -78,17 +78,17 @@
convLayer2->GetOutputSlot(0).Connect(outputLayer->GetInputSlot(0));
// Subgraph for a failed layer
- SubgraphViewSelector::SubgraphViewPtr failedSubgraph =
+ SubgraphView::SubgraphViewPtr failedSubgraph =
CreateSubgraphViewFrom(CreateInputsFrom(convLayer1),
CreateOutputsFrom({convLayer1}),
{convLayer1});
// Subgraph for an untouched layer
- SubgraphViewSelector::SubgraphViewPtr untouchedSubgraph =
+ SubgraphView::SubgraphViewPtr untouchedSubgraph =
CreateSubgraphViewFrom(CreateInputsFrom(convLayer2),
CreateOutputsFrom({convLayer2}),
{convLayer2});
// Subgraph for a substitutable layer
- SubgraphViewSelector::SubgraphViewPtr substitutableSubgraph =
+ SubgraphView::SubgraphViewPtr substitutableSubgraph =
CreateSubgraphViewFrom(CreateInputsFrom(convLayer1),
CreateOutputsFrom({convLayer2}),
{substitutableCompiledLayer});
@@ -98,7 +98,7 @@
substitutableGraph.AddLayer<PreCompiledLayer>(substitutionLayerDescriptor, "pre-compiled");
// Subgraph for a substitution layer
- SubgraphViewSelector::SubgraphViewPtr substitutionSubgraph =
+ SubgraphView::SubgraphViewPtr substitutionSubgraph =
CreateSubgraphViewFrom(CreateInputsFrom(substitutionpreCompiledLayer),
CreateOutputsFrom({substitutionpreCompiledLayer}),
{substitutionpreCompiledLayer});
@@ -109,14 +109,14 @@
view.AddFailedSubgraph(SubgraphView(*failedSubgraph));
view.AddUntouchedSubgraph(SubgraphView(*untouchedSubgraph));
- SubgraphViewSelector::SubgraphViewPtr baseSubgraph =
+ SubgraphView::SubgraphViewPtr baseSubgraph =
CreateSubgraphViewFrom(CreateInputsFrom(convLayer1),
CreateOutputsFrom({convLayer2}),
{substitutionpreCompiledLayer});
view.AddSubstitution({*baseSubgraph, *substitutionSubgraph});
// Construct original subgraph to compare against
- SubgraphViewSelector::SubgraphViewPtr originalSubgraph =
+ SubgraphView::SubgraphViewPtr originalSubgraph =
CreateSubgraphViewFrom(CreateInputsFrom(convLayer1),
CreateOutputsFrom({convLayer2}),
{convLayer1, convLayer2, substitutionpreCompiledLayer});
@@ -151,11 +151,11 @@
convLayer2->GetOutputSlot(0).Connect(outputLayer->GetInputSlot(0));
// Subgraph for a failed layer
- SubgraphViewSelector::SubgraphViewPtr failedSubgraph = CreateSubgraphViewFrom(CreateInputsFrom(convLayer1),
+ SubgraphView::SubgraphViewPtr failedSubgraph = CreateSubgraphViewFrom(CreateInputsFrom(convLayer1),
CreateOutputsFrom({convLayer1}),
{convLayer1});
// Subgraph for an untouched layer
- SubgraphViewSelector::SubgraphViewPtr untouchedSubgraph = CreateSubgraphViewFrom(CreateInputsFrom(convLayer2),
+ SubgraphView::SubgraphViewPtr untouchedSubgraph = CreateSubgraphViewFrom(CreateInputsFrom(convLayer2),
CreateOutputsFrom({convLayer2}),
{convLayer2});
@@ -165,7 +165,7 @@
net.AddPrecompiledLayer(substitutionLayerDescriptor, std::move(blobPtr), backend));
// Subgraph for a substitution layer
- SubgraphViewSelector::SubgraphViewPtr substitutionSubgraph =
+ SubgraphView::SubgraphViewPtr substitutionSubgraph =
CreateSubgraphViewFrom(CreateInputsFrom(substitutionpreCompiledLayer),
CreateOutputsFrom({substitutionpreCompiledLayer}),
{substitutionpreCompiledLayer});
@@ -173,13 +173,13 @@
view.AddFailedSubgraph(SubgraphView(*failedSubgraph));
view.AddUntouchedSubgraph(SubgraphView(*untouchedSubgraph));
- SubgraphViewSelector::SubgraphViewPtr baseSubgraph = CreateSubgraphViewFrom(CreateInputsFrom(convLayer1),
+ SubgraphView::SubgraphViewPtr baseSubgraph = CreateSubgraphViewFrom(CreateInputsFrom(convLayer1),
CreateOutputsFrom({convLayer2}),
{substitutionpreCompiledLayer});
view.AddSubstitution({*baseSubgraph, *substitutionSubgraph});
// Construct original subgraph to compare against
- SubgraphViewSelector::SubgraphViewPtr originalSubgraph =
+ SubgraphView::SubgraphViewPtr originalSubgraph =
CreateSubgraphViewFrom(CreateInputsFrom(convLayer1),
CreateOutputsFrom({convLayer2}),
{convLayer1, convLayer2, substitutionpreCompiledLayer});
@@ -214,12 +214,12 @@
convLayer2->GetOutputSlot(0).Connect(outputLayer->GetInputSlot(0));
// Subgraph for an untouched layer
- SubgraphViewSelector::SubgraphViewPtr untouchedSubgraph =
+ SubgraphView::SubgraphViewPtr untouchedSubgraph =
CreateSubgraphViewFrom(CreateInputsFrom(convLayer2),
CreateOutputsFrom({convLayer2}),
{convLayer2});
// Subgraph for a substitutable layer
- SubgraphViewSelector::SubgraphViewPtr substitutableSubgraph =
+ SubgraphView::SubgraphViewPtr substitutableSubgraph =
CreateSubgraphViewFrom(CreateInputsFrom(convLayer1),
CreateOutputsFrom({convLayer2}),
{substitutableCompiledLayer});
@@ -229,7 +229,7 @@
substitutableGraph.AddLayer<PreCompiledLayer>(substitutionLayerDescriptor, "pre-compiled");
// Subgraph for a substitution layer
- SubgraphViewSelector::SubgraphViewPtr substitutionSubgraph =
+ SubgraphView::SubgraphViewPtr substitutionSubgraph =
CreateSubgraphViewFrom(CreateInputsFrom(substitutionpreCompiledLayer),
CreateOutputsFrom({substitutionpreCompiledLayer}),
{substitutionpreCompiledLayer});
@@ -239,14 +239,14 @@
view.AddUntouchedSubgraph(SubgraphView(*untouchedSubgraph));
- SubgraphViewSelector::SubgraphViewPtr baseSubgraph =
+ SubgraphView::SubgraphViewPtr baseSubgraph =
CreateSubgraphViewFrom(CreateInputsFrom(convLayer1),
CreateOutputsFrom({convLayer2}),
{substitutionpreCompiledLayer});
view.AddSubstitution({*baseSubgraph, *substitutionSubgraph});
// Construct original subgraph to compare against
- SubgraphViewSelector::SubgraphViewPtr originalSubgraph =
+ SubgraphView::SubgraphViewPtr originalSubgraph =
CreateSubgraphViewFrom(CreateInputsFrom(convLayer1),
CreateOutputsFrom({convLayer2}),
{convLayer1, convLayer2, substitutionpreCompiledLayer});
@@ -299,4 +299,4 @@
}
-}
\ No newline at end of file
+}
diff --git a/src/backends/backendsCommon/test/OptimizeSubgraphViewTests.cpp b/src/backends/backendsCommon/test/OptimizeSubgraphViewTests.cpp
index 997fe98..f5a6c42 100644
--- a/src/backends/backendsCommon/test/OptimizeSubgraphViewTests.cpp
+++ b/src/backends/backendsCommon/test/OptimizeSubgraphViewTests.cpp
@@ -1,5 +1,5 @@
//
-// Copyright © 2017,2022 Arm Ltd and Contributors. All rights reserved.
+// Copyright © 2017, 2022-2023 Arm Ltd and Contributors. All rights reserved.
// SPDX-License-Identifier: MIT
//
@@ -935,7 +935,7 @@
LayerNameToLayerMap layersInGraph;
// Create a fully optimizable subgraph
- SubgraphViewSelector::SubgraphViewPtr subgraphPtr = BuildFullyOptimizableSubgraph1(graph, layersInGraph);
+ SubgraphView::SubgraphViewPtr subgraphPtr = BuildFullyOptimizableSubgraph1(graph, layersInGraph);
CHECK((subgraphPtr != nullptr));
const SubgraphView::IInputSlots& subgraphInputSlots = subgraphPtr->GetIInputSlots();
@@ -1002,7 +1002,7 @@
LayerNameToLayerMap layersInGraph;
// Create a fully optimizable subgraph
- SubgraphViewSelector::SubgraphViewPtr subgraphPtr = BuildFullyOptimizableSubgraph2(graph, layersInGraph);
+ SubgraphView::SubgraphViewPtr subgraphPtr = BuildFullyOptimizableSubgraph2(graph, layersInGraph);
CHECK((subgraphPtr != nullptr));
const SubgraphView::IInputSlots& subgraphInputSlots = subgraphPtr->GetIInputSlots();
@@ -1110,7 +1110,7 @@
LayerNameToLayerMap layersInGraph;
// Create a fully optimizable subgraph
- SubgraphViewSelector::SubgraphViewPtr subgraphPtr = BuildPartiallySupportedSubgraph(graph, layersInGraph);
+ SubgraphView::SubgraphViewPtr subgraphPtr = BuildPartiallySupportedSubgraph(graph, layersInGraph);
CHECK((subgraphPtr != nullptr));
const SubgraphView::IInputSlots& subgraphInputSlots = subgraphPtr->GetIInputSlots();
@@ -1254,7 +1254,7 @@
LayerNameToLayerMap layersInGraph;
// Create a fully optimizable subgraph
- SubgraphViewSelector::SubgraphViewPtr subgraphPtr = BuildFullyUnoptimizableSubgraph1(graph, layersInGraph);
+ SubgraphView::SubgraphViewPtr subgraphPtr = BuildFullyUnoptimizableSubgraph1(graph, layersInGraph);
CHECK((subgraphPtr != nullptr));
const SubgraphView::IInputSlots& subgraphInputSlots = subgraphPtr->GetIInputSlots();
@@ -1318,7 +1318,7 @@
LayerNameToLayerMap layersInGraph;
// Create a fully optimizable subgraph
- SubgraphViewSelector::SubgraphViewPtr subgraphPtr = BuildPartiallyOptimizableSubgraph1(graph, layersInGraph);
+ SubgraphView::SubgraphViewPtr subgraphPtr = BuildPartiallyOptimizableSubgraph1(graph, layersInGraph);
CHECK((subgraphPtr != nullptr));
const SubgraphView::IInputSlots& subgraphInputSlots = subgraphPtr->GetIInputSlots();
@@ -1470,7 +1470,7 @@
LayerNameToLayerMap layersInGraph;
// Create a partially optimizable subgraph
- SubgraphViewSelector::SubgraphViewPtr subgraphPtr = BuildPartiallyOptimizableSubgraph2(graph, layersInGraph);
+ SubgraphView::SubgraphViewPtr subgraphPtr = BuildPartiallyOptimizableSubgraph2(graph, layersInGraph);
CHECK((subgraphPtr != nullptr));
const SubgraphView::IInputSlots& subgraphInputSlots = subgraphPtr->GetIInputSlots();