diff options
Diffstat (limited to 'thirdparty/embree-aarch64/kernels/common/vector.h')
-rw-r--r-- | thirdparty/embree-aarch64/kernels/common/vector.h | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/thirdparty/embree-aarch64/kernels/common/vector.h b/thirdparty/embree-aarch64/kernels/common/vector.h deleted file mode 100644 index b478762240..0000000000 --- a/thirdparty/embree-aarch64/kernels/common/vector.h +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2009-2020 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 - -#include "default.h" - -namespace embree -{ - /*! invokes the memory monitor callback */ - struct MemoryMonitorInterface { - virtual void memoryMonitor(ssize_t bytes, bool post) = 0; - }; - - /*! allocator that performs aligned monitored allocations */ - template<typename T, size_t alignment = 64> - struct aligned_monitored_allocator - { - typedef T value_type; - typedef T* pointer; - typedef const T* const_pointer; - typedef T& reference; - typedef const T& const_reference; - typedef std::size_t size_type; - typedef std::ptrdiff_t difference_type; - - __forceinline aligned_monitored_allocator(MemoryMonitorInterface* device) - : device(device), hugepages(false) {} - - __forceinline pointer allocate( size_type n ) - { - if (n) { - assert(device); - device->memoryMonitor(n*sizeof(T),false); - } - if (n*sizeof(value_type) >= 14 * PAGE_SIZE_2M) - { - pointer p = (pointer) os_malloc(n*sizeof(value_type),hugepages); - assert(p); - return p; - } - return (pointer) alignedMalloc(n*sizeof(value_type),alignment); - } - - __forceinline void deallocate( pointer p, size_type n ) - { - if (p) - { - if (n*sizeof(value_type) >= 14 * PAGE_SIZE_2M) - os_free(p,n*sizeof(value_type),hugepages); - else - alignedFree(p); - } - else assert(n == 0); - - if (n) { - assert(device); - device->memoryMonitor(-ssize_t(n)*sizeof(T),true); - } - } - - __forceinline void construct( pointer p, const_reference val ) { - new (p) T(val); - } - - __forceinline void destroy( pointer p ) { - p->~T(); - } - - private: - MemoryMonitorInterface* device; - bool hugepages; - }; - - /*! monitored vector */ - template<typename T> - using mvector = vector_t<T,aligned_monitored_allocator<T,std::alignment_of<T>::value> >; -} |