aboutsummaryrefslogtreecommitdiff
path: root/src/backends/reference/RefTensorHandleFactory.cpp
diff options
context:
space:
mode:
authorNarumol Prangnawarat <narumol.prangnawarat@arm.com>2020-06-26 11:00:21 +0100
committerNarumol Prangnawarat <narumol.prangnawarat@arm.com>2020-06-30 08:39:55 +0000
commit3b90af6bb79639d3813f21f3c3017503ee0c66af (patch)
treec5cccdb45ed268a47f5b4c8ac39a389fe037597c /src/backends/reference/RefTensorHandleFactory.cpp
parentc0761e9a82ec4d6bd4a81fda018d624659b629a7 (diff)
downloadarmnn-3b90af6bb79639d3813f21f3c3017503ee0c66af.tar.gz
IVGCVSW-5036 Do not allocate memory when import is enabled
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com> Change-Id: Ideaae5280702aae6c73f3b4e4cee9f71a8386fda
Diffstat (limited to 'src/backends/reference/RefTensorHandleFactory.cpp')
-rw-r--r--src/backends/reference/RefTensorHandleFactory.cpp32
1 files changed, 30 insertions, 2 deletions
diff --git a/src/backends/reference/RefTensorHandleFactory.cpp b/src/backends/reference/RefTensorHandleFactory.cpp
index d687c78b17..ade27dd733 100644
--- a/src/backends/reference/RefTensorHandleFactory.cpp
+++ b/src/backends/reference/RefTensorHandleFactory.cpp
@@ -29,14 +29,42 @@ std::unique_ptr<ITensorHandle> RefTensorHandleFactory::CreateSubTensorHandle(ITe
std::unique_ptr<ITensorHandle> RefTensorHandleFactory::CreateTensorHandle(const TensorInfo& tensorInfo) const
{
- return std::make_unique<RefTensorHandle>(tensorInfo, m_MemoryManager, m_ImportFlags);
+ return std::make_unique<RefTensorHandle>(tensorInfo, m_MemoryManager);
}
std::unique_ptr<ITensorHandle> RefTensorHandleFactory::CreateTensorHandle(const TensorInfo& tensorInfo,
DataLayout dataLayout) const
{
IgnoreUnused(dataLayout);
- return std::make_unique<RefTensorHandle>(tensorInfo, m_MemoryManager, m_ImportFlags);
+ return std::make_unique<RefTensorHandle>(tensorInfo, m_MemoryManager);
+}
+
+std::unique_ptr<ITensorHandle> RefTensorHandleFactory::CreateTensorHandle(const TensorInfo& tensorInfo,
+ const bool IsMemoryManaged) const
+{
+ if (IsMemoryManaged)
+ {
+ return std::make_unique<RefTensorHandle>(tensorInfo, m_MemoryManager);
+ }
+ else
+ {
+ return std::make_unique<RefTensorHandle>(tensorInfo, m_ImportFlags);
+ }
+}
+
+std::unique_ptr<ITensorHandle> RefTensorHandleFactory::CreateTensorHandle(const TensorInfo& tensorInfo,
+ DataLayout dataLayout,
+ const bool IsMemoryManaged) const
+{
+ IgnoreUnused(dataLayout);
+ if (IsMemoryManaged)
+ {
+ return std::make_unique<RefTensorHandle>(tensorInfo, m_MemoryManager);
+ }
+ else
+ {
+ return std::make_unique<RefTensorHandle>(tensorInfo, m_ImportFlags);
+ }
}
const FactoryId& RefTensorHandleFactory::GetId() const