From 26014cf4d0519aef280c8444c60ec34c4e37e3b6 Mon Sep 17 00:00:00 2001 From: Georgios Pinitas Date: Mon, 9 Sep 2019 19:00:57 +0100 Subject: COMPMID-2649: Generalize MemoryGroup. Avoids any upcasting. Change-Id: I2181c7c9df59a7fb8a78e11934fbd96058fd39c7 Signed-off-by: Georgios Pinitas Reviewed-on: https://review.mlplatform.org/c/1918 Comments-Addressed: Arm Jenkins Tested-by: Arm Jenkins Reviewed-by: Gian Marco Iodice --- arm_compute/runtime/TensorAllocator.h | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) (limited to 'arm_compute/runtime/TensorAllocator.h') diff --git a/arm_compute/runtime/TensorAllocator.h b/arm_compute/runtime/TensorAllocator.h index 28141134cb..b33a8f8785 100644 --- a/arm_compute/runtime/TensorAllocator.h +++ b/arm_compute/runtime/TensorAllocator.h @@ -23,9 +23,10 @@ */ #ifndef __ARM_COMPUTE_TENSORALLOCATOR_H__ #define __ARM_COMPUTE_TENSORALLOCATOR_H__ - #include "arm_compute/runtime/ITensorAllocator.h" + #include "arm_compute/runtime/Memory.h" +#include "arm_compute/runtime/MemoryGroup.h" #include #include @@ -33,12 +34,9 @@ namespace arm_compute { +// Forward declaration class Coordinates; class TensorInfo; -class Tensor; -template -class MemoryGroupBase; -using MemoryGroup = MemoryGroupBase; /** Basic implementation of a CPU memory tensor allocator. */ class TensorAllocator : public ITensorAllocator @@ -46,9 +44,9 @@ class TensorAllocator : public ITensorAllocator public: /** Default constructor. * - * @param[in] owner Owner of the tensor allocator. + * @param[in] owner Memory manageable owner */ - TensorAllocator(Tensor *owner = nullptr); + TensorAllocator(IMemoryManageable *owner); /** Default destructor */ ~TensorAllocator(); /** Prevent instances of this class from being copied (As this class contains pointers) */ @@ -111,7 +109,7 @@ public: * * @param[in] associated_memory_group Memory group to associate the tensor with */ - void set_associated_memory_group(MemoryGroup *associated_memory_group); + void set_associated_memory_group(IMemoryGroup *associated_memory_group); protected: /** No-op for CPU memory @@ -124,9 +122,9 @@ protected: void unlock() override; private: - MemoryGroup *_associated_memory_group; /**< Registered memory manager */ - Memory _memory; /**< CPU memory */ - Tensor *_owner; /**< Owner of the allocator */ + IMemoryManageable *_owner; /**< Memory manageable object that owns the allocator */ + IMemoryGroup *_associated_memory_group; /**< Registered memory manager */ + Memory _memory; /**< CPU memory */ }; -} +} // namespace arm_compute #endif /* __ARM_COMPUTE_TENSORALLOCATOR_H__ */ -- cgit v1.2.1