aboutsummaryrefslogtreecommitdiff
path: root/src/armnn/layers
diff options
context:
space:
mode:
authorMike Kelly <mike.kelly@arm.com>2021-06-27 22:39:21 +0100
committermike.kelly <mike.kelly@arm.com>2021-06-30 10:38:30 +0000
commit0d677db72eb7945e304fc49cedf744f0c34ed330 (patch)
treeee85b7f50e4ad9d5e568b46df46777513a2197cd /src/armnn/layers
parent6f24b1aac9cbf5dfb3918cb59a7e903ddcec420e (diff)
downloadarmnn-0d677db72eb7945e304fc49cedf744f0c34ed330.tar.gz
IVGCVSW-6114 Create multiple LoadedNetworks from one OptimizedNetwork
* Added IOptimizedNetwork constructor that takes another IOptimizedNetwork and a ModelOptions. * Changed PreCompiledLayer to use shared_ptr rather than unique_ptr to store the PreCompiledObject (no interface changes). * Added unit tests to ensure that PreCompiledLayer::Clone() clones the pointer to the PreCompiledObject correctly. Signed-off-by: Mike Kelly <mike.kelly@arm.com> Change-Id: I3ef56055e0d189ffce9e651882d34da16c70a240
Diffstat (limited to 'src/armnn/layers')
-rw-r--r--src/armnn/layers/PreCompiledLayer.cpp4
-rw-r--r--src/armnn/layers/PreCompiledLayer.hpp2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/armnn/layers/PreCompiledLayer.cpp b/src/armnn/layers/PreCompiledLayer.cpp
index 75c1e46a84..0cc9c5a75a 100644
--- a/src/armnn/layers/PreCompiledLayer.cpp
+++ b/src/armnn/layers/PreCompiledLayer.cpp
@@ -24,7 +24,7 @@ PreCompiledLayer::~PreCompiledLayer()
PreCompiledLayer* PreCompiledLayer::Clone(Graph& graph) const
{
PreCompiledLayer* clone = CloneBase<PreCompiledLayer>(graph, m_Param, GetName());
- clone->m_PreCompiledObject.reset(const_cast<PreCompiledLayer*>(this)->m_PreCompiledObject.release());
+ clone->m_PreCompiledObject = const_cast<PreCompiledLayer*>(this)->m_PreCompiledObject;
return clone;
}
@@ -46,7 +46,7 @@ void PreCompiledLayer::ValidateTensorShapesFromInputs()
void PreCompiledLayer::SetPreCompiledObject(PreCompiledObjectPtr preCompiledObject)
{
- m_PreCompiledObject = std::move(preCompiledObject);
+ m_PreCompiledObject = std::make_shared<const void*>(preCompiledObject.release());
}
void PreCompiledLayer::Accept(ILayerVisitor& visitor) const
diff --git a/src/armnn/layers/PreCompiledLayer.hpp b/src/armnn/layers/PreCompiledLayer.hpp
index 2ed87578a4..6a8ac683ac 100644
--- a/src/armnn/layers/PreCompiledLayer.hpp
+++ b/src/armnn/layers/PreCompiledLayer.hpp
@@ -41,7 +41,7 @@ private:
PreCompiledLayer(const PreCompiledLayer& other) = delete;
PreCompiledLayer& operator=(const PreCompiledLayer& other) = delete;
- PreCompiledObjectPtr m_PreCompiledObject;
+ std::shared_ptr<const void*> m_PreCompiledObject;
};
} // namespace armnn