diff options
Diffstat (limited to 'contrib/llvm-project/libcxx/include/__pstl/internal/memory_impl.h')
| -rw-r--r-- | contrib/llvm-project/libcxx/include/__pstl/internal/memory_impl.h | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/contrib/llvm-project/libcxx/include/__pstl/internal/memory_impl.h b/contrib/llvm-project/libcxx/include/__pstl/internal/memory_impl.h deleted file mode 100644 index 5315ccd9a344..000000000000 --- a/contrib/llvm-project/libcxx/include/__pstl/internal/memory_impl.h +++ /dev/null @@ -1,106 +0,0 @@ -// -*- C++ -*- -//===----------------------------------------------------------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#ifndef _PSTL_MEMORY_IMPL_H -#define _PSTL_MEMORY_IMPL_H - -#include <__config> -#include <iterator> - -#include "unseq_backend_simd.h" - -namespace __pstl { -namespace __internal { - -//------------------------------------------------------------------------ -// uninitialized_move -//------------------------------------------------------------------------ - -template <typename _ForwardIterator, typename _OutputIterator> -_OutputIterator __brick_uninitialized_move( - _ForwardIterator __first, - _ForwardIterator __last, - _OutputIterator __result, - /*vector=*/std::false_type) noexcept { - using _ValueType = typename std::iterator_traits<_OutputIterator>::value_type; - for (; __first != __last; ++__first, ++__result) { - ::new (std::addressof(*__result)) _ValueType(std::move(*__first)); - } - return __result; -} - -template <typename _RandomAccessIterator, typename _OutputIterator> -_OutputIterator __brick_uninitialized_move( - _RandomAccessIterator __first, - _RandomAccessIterator __last, - _OutputIterator __result, - /*vector=*/std::true_type) noexcept { - using __ValueType = typename std::iterator_traits<_OutputIterator>::value_type; - using _ReferenceType1 = typename std::iterator_traits<_RandomAccessIterator>::reference; - using _ReferenceType2 = typename std::iterator_traits<_OutputIterator>::reference; - - return __unseq_backend::__simd_walk_2( - __first, __last - __first, __result, [](_ReferenceType1 __x, _ReferenceType2 __y) { - ::new (std::addressof(__y)) __ValueType(std::move(__x)); - }); -} - -template <typename _Iterator> -void __brick_destroy(_Iterator __first, _Iterator __last, /*vector*/ std::false_type) noexcept { - using _ValueType = typename std::iterator_traits<_Iterator>::value_type; - - for (; __first != __last; ++__first) - __first->~_ValueType(); -} - -template <typename _RandomAccessIterator> -void __brick_destroy(_RandomAccessIterator __first, _RandomAccessIterator __last, /*vector*/ std::true_type) noexcept { - using _ValueType = typename std::iterator_traits<_RandomAccessIterator>::value_type; - using _ReferenceType = typename std::iterator_traits<_RandomAccessIterator>::reference; - - __unseq_backend::__simd_walk_1(__first, __last - __first, [](_ReferenceType __x) { __x.~_ValueType(); }); -} - -//------------------------------------------------------------------------ -// uninitialized copy -//------------------------------------------------------------------------ - -template <typename _ForwardIterator, typename _OutputIterator> -_OutputIterator __brick_uninitialized_copy( - _ForwardIterator __first, - _ForwardIterator __last, - _OutputIterator __result, - /*vector=*/std::false_type) noexcept { - using _ValueType = typename std::iterator_traits<_OutputIterator>::value_type; - for (; __first != __last; ++__first, ++__result) { - ::new (std::addressof(*__result)) _ValueType(*__first); - } - return __result; -} - -template <typename _RandomAccessIterator, typename _OutputIterator> -_OutputIterator __brick_uninitialized_copy( - _RandomAccessIterator __first, - _RandomAccessIterator __last, - _OutputIterator __result, - /*vector=*/std::true_type) noexcept { - using __ValueType = typename std::iterator_traits<_OutputIterator>::value_type; - using _ReferenceType1 = typename std::iterator_traits<_RandomAccessIterator>::reference; - using _ReferenceType2 = typename std::iterator_traits<_OutputIterator>::reference; - - return __unseq_backend::__simd_walk_2( - __first, __last - __first, __result, [](_ReferenceType1 __x, _ReferenceType2 __y) { - ::new (std::addressof(__y)) __ValueType(__x); - }); -} - -} // namespace __internal -} // namespace __pstl - -#endif /* _PSTL_MEMORY_IMPL_H */ |
