Updates following execution of Includewhatyouuse on armnn/include.

This tool forces explicit includes of all dependencies and
highlights unused dependencies.

Signed-off-by: Colm Donelan <colm.donelan@arm.com>
Change-Id: I92e449245246452a0227cbd13f9c082e2088bf8c
diff --git a/include/armnn/BackendHelper.hpp b/include/armnn/BackendHelper.hpp
index 2f8eabd..cf60b01 100644
--- a/include/armnn/BackendHelper.hpp
+++ b/include/armnn/BackendHelper.hpp
@@ -1,5 +1,5 @@
 //
-// Copyright © 2017 Arm Ltd. All rights reserved.
+// Copyright © 2017,2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
@@ -7,11 +7,20 @@
 
 #include <armnn/BackendId.hpp>
 #include <armnn/BackendOptions.hpp>
-#include <armnn/backends/ILayerSupport.hpp>
-#include <armnn/Types.hpp>
+#include <armnn/Descriptors.hpp>
+#include <armnn/Optional.hpp>
+#include <functional>
+#include <memory>
+#include <string>
+#include <utility>
+#include <vector>
 
 namespace armnn
 {
+class ILayerSupport;
+class TensorInfo;
+struct LstmInputParamsInfo;
+struct QuantizedLstmInputParamsInfo;
 
 // This handle calls its own IsXXXLayerSupported() functions which then call the polymorphic
 // ILayerSupport::IsXXXLayerSupported() at the framework level so there is no risk of VTable misalignment.
diff --git a/include/armnn/BackendRegistry.hpp b/include/armnn/BackendRegistry.hpp
index 40a117e..ea23091 100644
--- a/include/armnn/BackendRegistry.hpp
+++ b/include/armnn/BackendRegistry.hpp
@@ -1,19 +1,16 @@
 //
-// Copyright © 2017 Arm Ltd. All rights reserved.
+// Copyright © 2017,2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 #pragma once
 
-#include <armnn/Types.hpp>
 #include <armnn/BackendId.hpp>
 #include <armnn/Optional.hpp>
-#include <armnn/backends/ICustomAllocator.hpp>
-#include <armnn/backends/IMemoryOptimizerStrategy.hpp>
-
-#include <algorithm>
 #include <memory>
 #include <unordered_map>
 #include <functional>
+#include <stddef.h>
+#include <string>
 
 namespace arm
 {
@@ -29,6 +26,9 @@
 {
 
 class IBackendInternal;
+class ICustomAllocator;
+class IMemoryOptimizerStrategy;
+
 using IBackendInternalUniquePtr = std::unique_ptr<IBackendInternal>;
 using MemoryOptimizerStrategiesMapRef = std::unordered_map<BackendId, std::shared_ptr<IMemoryOptimizerStrategy>>;
 
diff --git a/include/armnn/Descriptors.hpp b/include/armnn/Descriptors.hpp
index 1cc403c..7c6942c 100644
--- a/include/armnn/Descriptors.hpp
+++ b/include/armnn/Descriptors.hpp
@@ -5,15 +5,15 @@
 #pragma once
 
 #include "Deprecated.hpp"
-#include "DescriptorsFwd.hpp"
-
-#include <cstdint>
-#include <initializer_list>
-#include <iostream>
-#include <sstream>
-
+#include "DescriptorsFwd.hpp" // Required for class equivalence declarations.
 #include "Tensor.hpp"
 #include "Types.hpp"
+#include <armnn/Exceptions.hpp>
+
+#include <cstdint>
+#include <iterator>
+#include <utility>
+#include <vector>
 
 namespace armnn
 {
diff --git a/include/armnn/Logging.hpp b/include/armnn/Logging.hpp
index 6336e96..ca52b5c 100644
--- a/include/armnn/Logging.hpp
+++ b/include/armnn/Logging.hpp
@@ -1,13 +1,20 @@
 //
-// Copyright © 2019 Arm Ltd and Contributors. All rights reserved.
+// Copyright © 2019,2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
 #pragma once
 
 #include <armnn/Utils.hpp>
+#include <ctype.h>
 #include <iostream>
 #include <algorithm>
+#include <memory>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include <armnn/Exceptions.hpp>
 
 namespace armnn
 {
diff --git a/include/armnn/Tensor.hpp b/include/armnn/Tensor.hpp
index 8dbc912..46859c4 100644
--- a/include/armnn/Tensor.hpp
+++ b/include/armnn/Tensor.hpp
@@ -1,18 +1,18 @@
 //
-// Copyright © 2017 Arm Ltd. All rights reserved.
+// Copyright © 2017,2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 #pragma once
 
-#include "TensorFwd.hpp"
-
 #include "Exceptions.hpp"
 #include "Optional.hpp"
 #include "Types.hpp"
 
+#include <stdint.h>
 #include <array>
 #include <initializer_list>
 #include <vector>
+#include <utility>
 
 namespace armnn
 {
diff --git a/include/armnn/Threadpool.hpp b/include/armnn/Threadpool.hpp
index 672f8b8..98a907d 100644
--- a/include/armnn/Threadpool.hpp
+++ b/include/armnn/Threadpool.hpp
@@ -1,27 +1,32 @@
 //
-// Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
+// Copyright © 2021-2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 #if !defined(ARMNN_DISABLE_THREADS)
 
 #pragma once
 
+#include "IRuntime.hpp"
 #include <armnn/Tensor.hpp>
 #include <armnn/Types.hpp>
-
-#include "INetwork.hpp"
-#include "IRuntime.hpp"
-
+#include <stdint.h>
 #include <thread>
 #include <mutex>
 #include <condition_variable>
 #include <unordered_map>
 #include <queue>
+#include <iosfwd>
+#include <memory>
+#include <tuple>
+#include <vector>
 
 namespace armnn
 {
 namespace experimental
 {
+class IAsyncExecutionCallback;
+class IWorkingMemHandle;
+
 class Threadpool
 {
 public:
diff --git a/include/armnn/TypesUtils.hpp b/include/armnn/TypesUtils.hpp
index ca7e7c5..4dd5360 100644
--- a/include/armnn/TypesUtils.hpp
+++ b/include/armnn/TypesUtils.hpp
@@ -1,15 +1,19 @@
 //
-// Copyright © 2017 Arm Ltd. All rights reserved.
+// Copyright © 2017,2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 #pragma once
 
+#include <armnn/BackendId.hpp>
+#include <armnn/Exceptions.hpp>
 #include <armnn/Tensor.hpp>
 #include <armnn/Types.hpp>
 
+#include <stdint.h>
 #include <cmath>
 #include <ostream>
 #include <set>
+#include <type_traits>
 
 namespace armnn
 {
diff --git a/include/armnn/Utils.hpp b/include/armnn/Utils.hpp
index 7d442ba..7c1f096 100644
--- a/include/armnn/Utils.hpp
+++ b/include/armnn/Utils.hpp
@@ -1,12 +1,10 @@
 //
-// Copyright © 2017 Arm Ltd. All rights reserved.
+// Copyright © 2017,2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 #pragma once
 
-#include <armnn/TypesUtils.hpp>
-
-#include <iostream>
+#include <string>
 
 namespace armnn
 {
diff --git a/include/armnn/backends/DynamicBackend.hpp b/include/armnn/backends/DynamicBackend.hpp
index f888b1e..fd121bf 100644
--- a/include/armnn/backends/DynamicBackend.hpp
+++ b/include/armnn/backends/DynamicBackend.hpp
@@ -1,16 +1,18 @@
 //
-// Copyright © 2017 Arm Ltd. All rights reserved.
+// Copyright © 2017,2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
 #pragma once
 
 #include "IBackendInternal.hpp"
-
 #include <armnn/BackendRegistry.hpp>
+#include <armnn/BackendId.hpp>
 
+#include <stdint.h>
 #include <functional>
 #include <memory>
+#include <string>
 
 namespace armnn
 {
diff --git a/include/armnn/backends/ITensorHandleFactory.hpp b/include/armnn/backends/ITensorHandleFactory.hpp
index 501d97b..b10ff66 100644
--- a/include/armnn/backends/ITensorHandleFactory.hpp
+++ b/include/armnn/backends/ITensorHandleFactory.hpp
@@ -1,19 +1,23 @@
 //
-// Copyright © 2017 Arm Ltd. All rights reserved.
+// Copyright © 2017,2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
 #pragma once
 
 #include "ITensorHandle.hpp"
-
-#include <armnn/IRuntime.hpp>
 #include <armnn/MemorySources.hpp>
+#include <armnn/Tensor.hpp>
 #include <armnn/Types.hpp>
 #include <armnn/utility/IgnoreUnused.hpp>
 
+#include <memory>
+#include <string>
+#include <vector>
+
 namespace armnn
 {
+class IConnectableLayer;
 
 /// Capability class to calculate in the GetCapabilities function
 /// so that only the capability in the scope can be choose to calculate
diff --git a/include/armnn/backends/OptimizationViews.hpp b/include/armnn/backends/OptimizationViews.hpp
index 110c5f7..0357ada 100644
--- a/include/armnn/backends/OptimizationViews.hpp
+++ b/include/armnn/backends/OptimizationViews.hpp
@@ -5,7 +5,12 @@
 
 #pragma once
 
+#include <armnn/BackendOptions.hpp>
+#include <armnn/Deprecated.hpp>
+#include <armnn/INetwork.hpp>
 #include <armnn/backends/SubgraphView.hpp>
+#include <vector>
+#include "Graph.hpp"
 
 namespace armnn
 {
diff --git a/include/armnn/backends/SubgraphView.hpp b/include/armnn/backends/SubgraphView.hpp
index 63a9f57..7773117 100644
--- a/include/armnn/backends/SubgraphView.hpp
+++ b/include/armnn/backends/SubgraphView.hpp
@@ -1,18 +1,26 @@
 //
-// Copyright © 2017 Arm Ltd. All rights reserved.
+// Copyright © 2017,2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
 #pragma once
 
-#include <Layer.hpp>
-#include <Graph.hpp>
+#include <armnn/Deprecated.hpp>
 
 #include <vector>
 #include <list>
+#include <iterator>
+#include <memory>
 
 namespace armnn
 {
+class Graph;
+class IConnectableLayer;
+class IInputSlot;
+class IOutputSlot;
+class InputSlot;
+class Layer;
+class OutputSlot;
 
 ///
 /// The SubgraphView class represents a subgraph of a Graph.
diff --git a/include/armnnTestUtils/MockBackend.hpp b/include/armnnTestUtils/MockBackend.hpp
index 398ba91..e5378bf 100644
--- a/include/armnnTestUtils/MockBackend.hpp
+++ b/include/armnnTestUtils/MockBackend.hpp
@@ -4,15 +4,48 @@
 //
 #pragma once
 
-#include <atomic>
-
+#include <armnn/Deprecated.hpp>
+#include <armnn/Descriptors.hpp>
+#include <armnn/Exceptions.hpp>
+#include <armnn/IRuntime.hpp>
+#include <armnn/Optional.hpp>
+#include <armnn/Tensor.hpp>
+#include <armnn/Types.hpp>
 #include <armnn/backends/IBackendInternal.hpp>
 #include <armnn/backends/MemCopyWorkload.hpp>
+#include <armnn/backends/ITensorHandle.hpp>
+#include <armnn/backends/IWorkload.hpp>
+#include <armnn/backends/OptimizationViews.hpp>
+#include <armnn/backends/SubgraphView.hpp>
+#include <armnn/backends/WorkloadData.hpp>
+#include <armnn/backends/WorkloadFactory.hpp>
+#include <armnn/backends/WorkloadInfo.hpp>
+#include <armnn/utility/IgnoreUnused.hpp>
+#include <armnn/utility/PolymorphicDowncast.hpp>
 #include <armnnTestUtils/MockTensorHandle.hpp>
 #include <backendsCommon/LayerSupportBase.hpp>
 
+#include <client/include/CounterValue.hpp>
+#include <client/include/ISendTimelinePacket.hpp>
+#include <client/include/Timestamp.hpp>
+#include <client/include/backends/IBackendProfiling.hpp>
+#include <client/include/backends/IBackendProfilingContext.hpp>
+#include <common/include/Optional.hpp>
+
+#include <atomic>
+#include <cstdint>
+#include <memory>
+#include <string>
+#include <utility>
+#include <vector>
+
 namespace armnn
 {
+class BackendId;
+class ICustomAllocator;
+class MockMemoryManager;
+struct LstmInputParamsInfo;
+struct QuantizedLstmInputParamsInfo;
 
 // A bare bones Mock backend to enable unit testing of simple tensor manipulation features.
 class MockBackend : public IBackendInternal
diff --git a/include/armnnTestUtils/MockTensorHandle.hpp b/include/armnnTestUtils/MockTensorHandle.hpp
index 9a7518b..bc2f7d7 100644
--- a/include/armnnTestUtils/MockTensorHandle.hpp
+++ b/include/armnnTestUtils/MockTensorHandle.hpp
@@ -5,7 +5,13 @@
 #pragma once
 
 #include "MockMemoryManager.hpp"
+
 #include <armnn/backends/TensorHandle.hpp>
+#include <armnn/MemorySources.hpp>
+#include <armnn/Tensor.hpp>
+#include <armnn/Types.hpp>
+#include <armnn/backends/ITensorHandle.hpp>
+#include <memory>
 
 namespace armnn
 {
diff --git a/include/armnnTestUtils/TensorCopyUtils.hpp b/include/armnnTestUtils/TensorCopyUtils.hpp
index ae6072e..cc73e9c 100644
--- a/include/armnnTestUtils/TensorCopyUtils.hpp
+++ b/include/armnnTestUtils/TensorCopyUtils.hpp
@@ -1,12 +1,13 @@
 //
-// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
+// Copyright © 2017,2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 #pragma once
 
-#include <armnn/Tensor.hpp>
-
-#include <armnn/backends/ITensorHandle.hpp>
+namespace armnn
+{
+class ITensorHandle;
+}  // namespace armnn
 
 void CopyDataToITensorHandle(armnn::ITensorHandle* tensorHandle, const void* memory);
 
diff --git a/include/armnnUtils/Filesystem.hpp b/include/armnnUtils/Filesystem.hpp
index 00da50f..0b97af4 100644
--- a/include/armnnUtils/Filesystem.hpp
+++ b/include/armnnUtils/Filesystem.hpp
@@ -1,5 +1,5 @@
 //
-// Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
+// Copyright © 2020,2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
@@ -12,6 +12,8 @@
 #include <common/include/WindowsWrapper.hpp>
 #endif
 #include <ghc/filesystem.hpp>
+#include <string>
+
 namespace fs = ghc::filesystem;
 
 namespace armnnUtils
diff --git a/include/armnnUtils/Permute.hpp b/include/armnnUtils/Permute.hpp
index 1e4166d..9381467 100644
--- a/include/armnnUtils/Permute.hpp
+++ b/include/armnnUtils/Permute.hpp
@@ -1,5 +1,5 @@
 //
-// Copyright © 2019 Arm Ltd. All rights reserved.
+// Copyright © 2019,2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
@@ -8,6 +8,8 @@
 #include <armnn/TensorFwd.hpp>
 #include <armnn/Types.hpp>
 
+#include <stddef.h>
+
 namespace armnnUtils
 {
 
diff --git a/include/armnnUtils/TensorUtils.hpp b/include/armnnUtils/TensorUtils.hpp
index fc2f510..f7f20bd 100644
--- a/include/armnnUtils/TensorUtils.hpp
+++ b/include/armnnUtils/TensorUtils.hpp
@@ -1,11 +1,20 @@
 //
-// Copyright © 2019 Arm Ltd. All rights reserved.
+// Copyright © 2019,2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
 #pragma once
 
 #include <armnn/TypesUtils.hpp>
+#include <armnn/Tensor.hpp>
+#include <armnn/Types.hpp>
+#include <utility>
+#include <vector>
+
+namespace armnn
+{
+class ITensorHandle;
+}  // namespace armnn
 
 namespace armnnUtils
 {
diff --git a/include/armnnUtils/Transpose.hpp b/include/armnnUtils/Transpose.hpp
index 39ea5c5..b0c1f08 100644
--- a/include/armnnUtils/Transpose.hpp
+++ b/include/armnnUtils/Transpose.hpp
@@ -1,5 +1,5 @@
 //
-// Copyright © 2020 Arm Ltd. All rights reserved.
+// Copyright © 2020,2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
@@ -7,6 +7,7 @@
 
 #include <armnn/TensorFwd.hpp>
 #include <armnn/Types.hpp>
+#include <stddef.h>
 
 namespace armnnUtils
 {
diff --git a/profiling/common/include/ICounterRegistry.hpp b/profiling/common/include/ICounterRegistry.hpp
index 5c34e7a..f7e9d38 100644
--- a/profiling/common/include/ICounterRegistry.hpp
+++ b/profiling/common/include/ICounterRegistry.hpp
@@ -1,5 +1,5 @@
 //
-// Copyright © 2020 Arm Ltd. All rights reserved.
+// Copyright © 2020,2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
@@ -13,6 +13,11 @@
 namespace pipe
 {
 
+class Category;
+class Device;
+class CounterSet;
+class Counter;
+
 class ICounterRegistry
 {
 public:
diff --git a/src/armnn/BackendHelper.cpp b/src/armnn/BackendHelper.cpp
index d2048df..af38ce8 100644
--- a/src/armnn/BackendHelper.cpp
+++ b/src/armnn/BackendHelper.cpp
@@ -1,14 +1,21 @@
 //
-// Copyright © 2017 Arm Ltd. All rights reserved.
+// Copyright © 2017,2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
 #include <armnn/BackendHelper.hpp>
+#include <armnn/BackendId.hpp>
+#include <armnn/BackendOptions.hpp>
 #include <armnn/BackendRegistry.hpp>
-#include <armnn/Logging.hpp>
-
+#include <armnn/LstmParams.hpp>
+#include <armnn/QuantizedLstmParams.hpp>
+#include <armnn/Tensor.hpp>
+#include <armnn/Types.hpp>
+#include <armnn/backends/ILayerSupport.hpp>
 #include <armnn/backends/IBackendInternal.hpp>
 
+#include <stddef.h>
+
 namespace armnn
 {
 
diff --git a/src/armnnTestUtils/TensorCopyUtils.cpp b/src/armnnTestUtils/TensorCopyUtils.cpp
index 14c6d5c..50f2642 100644
--- a/src/armnnTestUtils/TensorCopyUtils.cpp
+++ b/src/armnnTestUtils/TensorCopyUtils.cpp
@@ -1,8 +1,9 @@
 //
-// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
+// Copyright © 2017,2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
+#include <armnn/backends/ITensorHandle.hpp>
 #include <armnnTestUtils/TensorCopyUtils.hpp>
 #include <Half.hpp>
 
diff --git a/src/backends/backendsCommon/OptimizationViews.cpp b/src/backends/backendsCommon/OptimizationViews.cpp
index e81a691..d887cbc 100644
--- a/src/backends/backendsCommon/OptimizationViews.cpp
+++ b/src/backends/backendsCommon/OptimizationViews.cpp
@@ -1,5 +1,5 @@
 //
-// Copyright © 2017 Arm Ltd. All rights reserved.
+// Copyright © 2017,2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
diff --git a/src/backends/backendsCommon/TensorHandleFactoryRegistry.hpp b/src/backends/backendsCommon/TensorHandleFactoryRegistry.hpp
index 2a7c6f3..434b64f 100644
--- a/src/backends/backendsCommon/TensorHandleFactoryRegistry.hpp
+++ b/src/backends/backendsCommon/TensorHandleFactoryRegistry.hpp
@@ -1,12 +1,13 @@
 //
-// Copyright © 2017 Arm Ltd. All rights reserved.
+// Copyright © 2017,2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
 #pragma once
 
+#include <armnn/Types.hpp>
 #include <armnn/backends/ITensorHandleFactory.hpp>
-
+#include <map>
 #include <memory>
 #include <vector>
 
diff --git a/src/backends/reference/test/RefOptimizedNetworkTests.cpp b/src/backends/reference/test/RefOptimizedNetworkTests.cpp
index 5b128a1..7ca1e0e 100644
--- a/src/backends/reference/test/RefOptimizedNetworkTests.cpp
+++ b/src/backends/reference/test/RefOptimizedNetworkTests.cpp
@@ -1,15 +1,20 @@
 //
-// Copyright © 2017 Arm Ltd. All rights reserved.
+// Copyright © 2017,2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
-#include <Graph.hpp>
-#include <Network.hpp>
-
-#include <reference/RefWorkloadFactory.hpp>
-#include <GraphUtils.hpp>
-
 #include <doctest/doctest.h>
+#include <Graph.hpp>
+#include <armnn/BackendId.hpp>
+#include <armnn/Descriptors.hpp>
+#include <armnn/INetwork.hpp>
+#include <armnn/IRuntime.hpp>
+#include <armnn/Tensor.hpp>
+#include <armnn/Types.hpp>
+#include <GraphUtils.hpp>
+#include <reference/RefWorkloadFactory.hpp>
+#include <memory>
+#include <vector>
 
 TEST_SUITE("RefOptimizedNetwork")
 {
diff --git a/src/backends/reference/test/RefTensorHandleTests.cpp b/src/backends/reference/test/RefTensorHandleTests.cpp
index 3504f53..6f608e8 100644
--- a/src/backends/reference/test/RefTensorHandleTests.cpp
+++ b/src/backends/reference/test/RefTensorHandleTests.cpp
@@ -1,11 +1,29 @@
 //
-// Copyright © 2017 Arm Ltd. All rights reserved.
+// Copyright © 2017,2022 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
-#include <reference/RefTensorHandle.hpp>
-#include <reference/RefTensorHandleFactory.hpp>
+
 
 #include <doctest/doctest.h>
+#include <armnn/BackendId.hpp>
+#include <armnn/INetwork.hpp>
+#include <armnn/Tensor.hpp>
+#include <armnn/Types.hpp>
+#include <armnn/backends/ITensorHandle.hpp>
+#include <armnn/backends/ITensorHandleFactory.hpp>
+#include <armnn/backends/TensorHandle.hpp>
+#include <armnn/utility/Assert.hpp>
+#include <reference/RefTensorHandle.hpp>
+#include <reference/RefTensorHandleFactory.hpp>
+#include <reference/RefMemoryManager.hpp>
+#include <memory>
+#include <vector>
+
+namespace armnn 
+{
+class Exception;
+class NullPointerException;
+}
 
 TEST_SUITE("RefTensorHandleTests")
 {
diff --git a/tests/NetworkExecutionUtils/NetworkExecutionUtils.hpp b/tests/NetworkExecutionUtils/NetworkExecutionUtils.hpp
index acdef0f..8c97238 100644
--- a/tests/NetworkExecutionUtils/NetworkExecutionUtils.hpp
+++ b/tests/NetworkExecutionUtils/NetworkExecutionUtils.hpp
@@ -5,15 +5,29 @@
 
 #pragma once
 
-#include <armnn/Logging.hpp>
-#include <armnn/utility/StringUtils.hpp>
-#include <armnn/utility/NumericCast.hpp>
-#include <armnn/BackendRegistry.hpp>
-
-#include <iostream>
+#include <armnn/BackendRegistry.hpp>      // for BackendRegistryInstance
+#include <armnn/Logging.hpp>              // for ScopedRecord, ARMNN_LOG
+#include <armnn/utility/NumericCast.hpp>  // for numeric_cast
+#include <armnn/utility/StringUtils.hpp>  // for StringTokenizer
+#include <armnn/BackendId.hpp>            // for BackendId, BackendIdSet
+#include <armnn/Optional.hpp>             // for Optional, EmptyOptional
+#include <armnn/Tensor.hpp>               // for Tensor, TensorInfo
+#include <armnn/TypesUtils.hpp>           // for Dequantize
+#include <chrono>                         // for duration
+#include <functional>                     // for function
 #include <fstream>
 #include <iomanip>
-#include <iterator>
+#include <iostream>                       // for ofstream, basic_istream
+#include <ratio>                          // for milli
+#include <string>                         // for string, getline, basic_string
+#include <type_traits>                    // for enable_if_t, is_floating_point
+#include <unordered_set>                  // for operator!=, operator==, _No...
+#include <vector>                         // for vector
+#include <math.h>                         // for pow, sqrt
+#include <stdint.h>                       // for int32_t
+#include <stdio.h>                        // for printf, size_t
+#include <stdlib.h>                       // for abs
+#include <algorithm>                      // for find, for_each
 
 /**
  * Given a measured duration and a threshold time tell the user whether we succeeded or not.