60 lines
2.4 KiB
C++
60 lines
2.4 KiB
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 _LIBCPP___ALGORITHM_PSTL_BACKENDS_CPU_BACKEND_H
|
|
#define _LIBCPP___ALGORITHM_PSTL_BACKENDS_CPU_BACKEND_H
|
|
|
|
#include <__config>
|
|
|
|
/*
|
|
|
|
// _Functor takes a subrange for [__first, __last) that should be executed in serial
|
|
template <class _RandomAccessIterator, class _Functor>
|
|
void __parallel_for(_RandomAccessIterator __first, _RandomAccessIterator __last, _Functor __func);
|
|
|
|
template <class _Iterator, class _UnaryOp, class _Tp, class _BinaryOp, class _Reduction>
|
|
_Tp __parallel_transform_reduce(_Iterator __first, _Iterator __last, _UnaryOp, _Tp __init, _BinaryOp, _Reduction);
|
|
|
|
// Cancel the execution of other jobs - they aren't needed anymore
|
|
void __cancel_execution();
|
|
|
|
template <class _RandomAccessIterator1,
|
|
class _RandomAccessIterator2,
|
|
class _RandomAccessIterator3,
|
|
class _Compare,
|
|
class _LeafMerge>
|
|
void __parallel_merge(
|
|
_RandomAccessIterator1 __first1,
|
|
_RandomAccessIterator1 __last1,
|
|
_RandomAccessIterator2 __first2,
|
|
_RandomAccessIterator2 __last2,
|
|
_RandomAccessIterator3 __outit,
|
|
_Compare __comp,
|
|
_LeafMerge __leaf_merge);
|
|
|
|
template <class _RandomAccessIterator, class _Comp, class _LeafSort>
|
|
void __parallel_stable_sort(_RandomAccessIterator __first,
|
|
_RandomAccessIterator __last,
|
|
_Comp __comp,
|
|
_LeafSort __leaf_sort);
|
|
|
|
TODO: Document the parallel backend
|
|
*/
|
|
|
|
#include <__algorithm/pstl_backends/cpu_backends/any_of.h>
|
|
#include <__algorithm/pstl_backends/cpu_backends/backend.h>
|
|
#include <__algorithm/pstl_backends/cpu_backends/fill.h>
|
|
#include <__algorithm/pstl_backends/cpu_backends/find_if.h>
|
|
#include <__algorithm/pstl_backends/cpu_backends/for_each.h>
|
|
#include <__algorithm/pstl_backends/cpu_backends/merge.h>
|
|
#include <__algorithm/pstl_backends/cpu_backends/stable_sort.h>
|
|
#include <__algorithm/pstl_backends/cpu_backends/transform.h>
|
|
#include <__algorithm/pstl_backends/cpu_backends/transform_reduce.h>
|
|
|
|
#endif // _LIBCPP___ALGORITHM_PSTL_BACKENDS_CPU_BACKEND_H
|