aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Kelly <mike.kelly@arm.com>2019-06-14 12:35:24 +0100
committermike.kelly <mike.kelly@arm.com>2019-06-14 14:27:23 +0000
commitdb48288f54ad441f34108cf270ed3089d3a465ea (patch)
tree08372fd4ef909dc161212f09c90a010adaf398a4
parent24d7321ad7897e8836d4a38039a73a0ec419cf43 (diff)
downloadarmnn-db48288f54ad441f34108cf270ed3089d3a465ea.tar.gz
MLCE-121 Github: Build error on GCC 9
* Fixed an error encountered when building on GCC 9 error: moving a local object in a return statement prevents copy elision * Fixed failures in unit tests due to std::initializer_list handling in GCC 9 Change-Id: I4bfdd2113dfedcecd29479ee556e4ae22278755d Signed-off-by: Mike Kelly <mike.kelly@arm.com>
-rw-r--r--src/armnn/test/CreateWorkload.hpp4
-rw-r--r--src/backends/cl/test/ClCreateWorkloadTests.cpp64
-rw-r--r--src/backends/neon/test/NeonCreateWorkloadTests.cpp10
-rw-r--r--src/backends/reference/test/RefCreateWorkloadTests.cpp19
4 files changed, 45 insertions, 52 deletions
diff --git a/src/armnn/test/CreateWorkload.hpp b/src/armnn/test/CreateWorkload.hpp
index c4b191a29f..8863fecce3 100644
--- a/src/armnn/test/CreateWorkload.hpp
+++ b/src/armnn/test/CreateWorkload.hpp
@@ -1119,7 +1119,7 @@ std::unique_ptr<ConcatWorkload> CreateConcatWorkloadTest(armnn::IWorkloadFactory
auto workloadConcat = MakeAndCheckWorkload<ConcatWorkload>(*concat, graph, factory);
BOOST_TEST_CHECKPOINT("created concat workload");
- return std::move(workloadConcat);
+ return workloadConcat;
}
template <typename PreCompiledWorkload, armnn::DataType dataType>
@@ -1277,7 +1277,7 @@ std::unique_ptr<ConstantWorkload> CreateConstantWorkloadTest(armnn::IWorkloadFac
auto workloadConstant = MakeAndCheckWorkload<ConstantWorkload>(*constant, graph, factory);
BOOST_TEST_CHECKPOINT("created Constant workload");
- return std::move(workloadConstant);
+ return workloadConstant;
}
}
diff --git a/src/backends/cl/test/ClCreateWorkloadTests.cpp b/src/backends/cl/test/ClCreateWorkloadTests.cpp
index dc884e01b1..d401701dda 100644
--- a/src/backends/cl/test/ClCreateWorkloadTests.cpp
+++ b/src/backends/cl/test/ClCreateWorkloadTests.cpp
@@ -243,17 +243,17 @@ static void ClConvolution2dWorkloadTest(DataLayout dataLayout)
graph,
dataLayout);
- std::initializer_list<unsigned int> inputShape = (dataLayout == DataLayout::NCHW) ?
- std::initializer_list<unsigned int>({2, 3, 8, 16}) : std::initializer_list<unsigned int>({2, 8, 16, 3});
- std::initializer_list<unsigned int> outputShape = (dataLayout == DataLayout::NCHW) ?
- std::initializer_list<unsigned int>({2, 2, 2, 10}) : std::initializer_list<unsigned int>({2, 2, 10, 2});
+ TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({2, 3, 8, 16})
+ : std::initializer_list<unsigned int>({2, 8, 16, 3});
+ TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({2, 2, 2, 10})
+ : std::initializer_list<unsigned int>({2, 2, 10, 2});
// Checks that outputs and inputs are as we expect them (see definition of CreateConvolution2dWorkloadTest).
Convolution2dQueueDescriptor queueDescriptor = workload->GetData();
auto inputHandle = boost::polymorphic_downcast<IClTensorHandle*>(queueDescriptor.m_Inputs[0]);
auto outputHandle = boost::polymorphic_downcast<IClTensorHandle*>(queueDescriptor.m_Outputs[0]);
- BOOST_TEST(CompareIClTensorHandleShape(inputHandle, inputShape));
- BOOST_TEST(CompareIClTensorHandleShape(outputHandle, outputShape));
+ BOOST_TEST((inputHandle->GetShape() == inputShape));
+ BOOST_TEST((outputHandle->GetShape() == outputShape));
}
BOOST_AUTO_TEST_CASE(CreateConvolution2dFloatNchwWorkload)
@@ -291,15 +291,13 @@ static void ClDepthwiseConvolutionWorkloadTest(DataLayout dataLayout)
auto inputHandle = boost::polymorphic_downcast<IClTensorHandle*>(queueDescriptor.m_Inputs[0]);
auto outputHandle = boost::polymorphic_downcast<IClTensorHandle*>(queueDescriptor.m_Outputs[0]);
- std::initializer_list<unsigned int> inputShape = (dataLayout == DataLayout::NCHW)
- ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 })
- : std::initializer_list<unsigned int>({ 2, 5, 5, 2 });
- std::initializer_list<unsigned int> outputShape = (dataLayout == DataLayout::NCHW)
- ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 })
- : std::initializer_list<unsigned int>({ 2, 5, 5, 2 });
+ TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 })
+ : std::initializer_list<unsigned int>({ 2, 5, 5, 2 });
+ TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 })
+ : std::initializer_list<unsigned int>({ 2, 5, 5, 2 });
- BOOST_TEST(CompareIClTensorHandleShape(inputHandle, inputShape));
- BOOST_TEST(CompareIClTensorHandleShape(outputHandle, outputShape));
+ BOOST_TEST((inputHandle->GetShape() == inputShape));
+ BOOST_TEST((outputHandle->GetShape() == outputShape));
}
BOOST_AUTO_TEST_CASE(CreateDepthwiseConvolutionFloat32NhwcWorkload)
@@ -382,13 +380,13 @@ static void ClNormalizationWorkloadTest(DataLayout dataLayout)
auto inputHandle = boost::polymorphic_downcast<IClTensorHandle*>(queueDescriptor.m_Inputs[0]);
auto outputHandle = boost::polymorphic_downcast<IClTensorHandle*>(queueDescriptor.m_Outputs[0]);
- std::initializer_list<unsigned int> inputShape = (dataLayout == DataLayout::NCHW) ?
- std::initializer_list<unsigned int>({3, 5, 5, 1}) : std::initializer_list<unsigned int>({3, 1, 5, 5});
- std::initializer_list<unsigned int> outputShape = (dataLayout == DataLayout::NCHW) ?
- std::initializer_list<unsigned int>({3, 5, 5, 1}) : std::initializer_list<unsigned int>({3, 1, 5, 5});
+ TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({3, 5, 5, 1})
+ : std::initializer_list<unsigned int>({3, 1, 5, 5});
+ TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({3, 5, 5, 1})
+ : std::initializer_list<unsigned int>({3, 1, 5, 5});
- BOOST_TEST(CompareIClTensorHandleShape(inputHandle, inputShape));
- BOOST_TEST(CompareIClTensorHandleShape(outputHandle, outputShape));
+ BOOST_TEST((inputHandle->GetShape() == inputShape));
+ BOOST_TEST((outputHandle->GetShape() == outputShape));
}
BOOST_AUTO_TEST_CASE(CreateNormalizationFloat32NchwWorkload)
@@ -420,18 +418,18 @@ static void ClPooling2dWorkloadTest(DataLayout dataLayout)
auto workload = CreatePooling2dWorkloadTest<ClPooling2dWorkload, DataType>(factory, graph, dataLayout);
- std::initializer_list<unsigned int> inputShape = (dataLayout == DataLayout::NCHW) ?
- std::initializer_list<unsigned int>({3, 2, 5, 5}) : std::initializer_list<unsigned int>({3, 5, 5, 2});
- std::initializer_list<unsigned int> outputShape = (dataLayout == DataLayout::NCHW) ?
- std::initializer_list<unsigned int>({3, 2, 2, 4}) : std::initializer_list<unsigned int>({3, 2, 4, 2});
+ TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({3, 2, 5, 5})
+ : std::initializer_list<unsigned int>({3, 5, 5, 2});
+ TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({3, 2, 2, 4})
+ : std::initializer_list<unsigned int>({3, 2, 4, 2});
// Check that inputs/outputs are as we expect them (see definition of CreatePooling2dWorkloadTest).
Pooling2dQueueDescriptor queueDescriptor = workload->GetData();
auto inputHandle = boost::polymorphic_downcast<IClTensorHandle*>(queueDescriptor.m_Inputs[0]);
auto outputHandle = boost::polymorphic_downcast<IClTensorHandle*>(queueDescriptor.m_Outputs[0]);
- BOOST_TEST(CompareIClTensorHandleShape(inputHandle, inputShape));
- BOOST_TEST(CompareIClTensorHandleShape(outputHandle, outputShape));
+ BOOST_TEST((inputHandle->GetShape() == inputShape));
+ BOOST_TEST((outputHandle->GetShape() == outputShape));
}
BOOST_AUTO_TEST_CASE(CreatePooling2dFloatNchwWorkload)
@@ -668,15 +666,13 @@ static void ClL2NormalizationWorkloadTest(DataLayout dataLayout)
auto inputHandle = boost::polymorphic_downcast<IClTensorHandle*>(queueDescriptor.m_Inputs[0]);
auto outputHandle = boost::polymorphic_downcast<IClTensorHandle*>(queueDescriptor.m_Outputs[0]);
- std::initializer_list<unsigned int> inputShape = (dataLayout == DataLayout::NCHW)
- ? std::initializer_list<unsigned int>({ 5, 20, 50, 67 })
- : std::initializer_list<unsigned int>({ 5, 50, 67, 20 });
- std::initializer_list<unsigned int> outputShape = (dataLayout == DataLayout::NCHW)
- ? std::initializer_list<unsigned int>({ 5, 20, 50, 67 })
- : std::initializer_list<unsigned int>({ 5, 50, 67, 20 });
+ TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({ 5, 20, 50, 67 })
+ : std::initializer_list<unsigned int>({ 5, 50, 67, 20 });
+ TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({ 5, 20, 50, 67 })
+ : std::initializer_list<unsigned int>({ 5, 50, 67, 20 });
- BOOST_TEST(CompareIClTensorHandleShape(inputHandle, inputShape));
- BOOST_TEST(CompareIClTensorHandleShape(outputHandle, outputShape));
+ BOOST_TEST((inputHandle->GetShape() == inputShape));
+ BOOST_TEST((outputHandle->GetShape() == outputShape));
}
BOOST_AUTO_TEST_CASE(CreateL2NormalizationFloatNchwWorkload)
diff --git a/src/backends/neon/test/NeonCreateWorkloadTests.cpp b/src/backends/neon/test/NeonCreateWorkloadTests.cpp
index 83823659b0..523588c50a 100644
--- a/src/backends/neon/test/NeonCreateWorkloadTests.cpp
+++ b/src/backends/neon/test/NeonCreateWorkloadTests.cpp
@@ -275,12 +275,10 @@ static void NeonCreateDepthWiseConvolutionWorkloadTest(DataLayout dataLayout)
auto inputHandle = boost::polymorphic_downcast<INeonTensorHandle*>(queueDescriptor.m_Inputs[0]);
auto outputHandle = boost::polymorphic_downcast<INeonTensorHandle*>(queueDescriptor.m_Outputs[0]);
- std::initializer_list<unsigned int> inputShape = (dataLayout == DataLayout::NCHW)
- ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 })
- : std::initializer_list<unsigned int>({ 2, 5, 5, 2 });
- std::initializer_list<unsigned int> outputShape = (dataLayout == DataLayout::NCHW)
- ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 })
- : std::initializer_list<unsigned int>({ 2, 5, 5, 2 });
+ TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 })
+ : std::initializer_list<unsigned int>({ 2, 5, 5, 2 });
+ TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 })
+ : std::initializer_list<unsigned int>({ 2, 5, 5, 2 });
BOOST_TEST(TestNeonTensorHandleInfo(inputHandle, TensorInfo(inputShape, DataType)));
BOOST_TEST(TestNeonTensorHandleInfo(outputHandle, TensorInfo(outputShape, DataType)));
diff --git a/src/backends/reference/test/RefCreateWorkloadTests.cpp b/src/backends/reference/test/RefCreateWorkloadTests.cpp
index a0fc7286a9..ef8ff9e6a0 100644
--- a/src/backends/reference/test/RefCreateWorkloadTests.cpp
+++ b/src/backends/reference/test/RefCreateWorkloadTests.cpp
@@ -270,10 +270,10 @@ static void RefCreateConvolution2dWorkloadTest(DataLayout dataLayout = DataLayou
auto workload = CreateConvolution2dWorkloadTest<RefConvolution2dWorkload, DataType::Float32>
(factory, graph, dataLayout);
- std::initializer_list<unsigned int> inputShape = (dataLayout == DataLayout::NCHW) ?
- std::initializer_list<unsigned int>({2, 3, 8, 16}) : std::initializer_list<unsigned int>({2, 8, 16, 3});
- std::initializer_list<unsigned int> outputShape = (dataLayout == DataLayout::NCHW) ?
- std::initializer_list<unsigned int>({2, 2, 2, 10}) : std::initializer_list<unsigned int>({2, 2, 10, 2});
+ TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({2, 3, 8, 16})
+ : std::initializer_list<unsigned int>({2, 8, 16, 3});
+ TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({2, 2, 2, 10})
+ : std::initializer_list<unsigned int>({2, 2, 10, 2});
// Checks that outputs and inputs are as we expect them (see definition of CreateConvolution2dWorkloadTest).
CheckInputOutput(std::move(workload),
@@ -298,12 +298,11 @@ static void RefCreateDepthwiseConvolutionWorkloadTest(DataLayout dataLayout)
auto workload = CreateDepthwiseConvolution2dWorkloadTest<RefDepthwiseConvolution2dWorkload, DataType::Float32>
(factory, graph, dataLayout);
- std::initializer_list<unsigned int> inputShape = (dataLayout == DataLayout::NCHW)
- ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 })
- : std::initializer_list<unsigned int>({ 2, 5, 5, 2 });
- std::initializer_list<unsigned int> outputShape = (dataLayout == DataLayout::NCHW)
- ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 })
- : std::initializer_list<unsigned int>({ 2, 5, 5, 2 });
+ TensorShape inputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 })
+ : std::initializer_list<unsigned int>({ 2, 5, 5, 2 });
+ TensorShape outputShape = (dataLayout == DataLayout::NCHW) ? std::initializer_list<unsigned int>({ 2, 2, 5, 5 })
+ : std::initializer_list<unsigned int>({ 2, 5, 5, 2 });
+
// Checks that inputs/outputs are as we expect them (see definition of CreateDepthwiseConvolution2dWorkloadTest).
CheckInputOutput(std::move(workload),
TensorInfo(inputShape, DataType::Float32),