[libc++][pstl] Implement tag dispatching mechanism for Parallel STL
authorRuslan Arutyunyan <ruslan.arutyunyan@intel.com>
Fri, 28 Jan 2022 00:54:27 +0000 (03:54 +0300)
committerRuslan Arutyunyan <ruslan.arutyunyan@intel.com>
Fri, 28 Jan 2022 01:09:51 +0000 (04:09 +0300)
commit843c12d6a0cdfd64c5a92e24eb58ba9ee17ca1ee
tree1e3aec358c639ae1ef1ea69ed5b50253a6c89087
parent912f1c8ce355339aaab281f5908e349453b76eca
[libc++][pstl] Implement tag dispatching mechanism for Parallel STL

Implement the mechanism that simplifies the execution policy/iterator
category dispatching and allows to implement customizations for
the parallel algorithms with adding custom tags

Reviewed By: rodgert, MikeDvorskiy

Differential Revision: https://reviews.llvm.org/D104492
23 files changed:
pstl/include/pstl/internal/algorithm_fwd.h
pstl/include/pstl/internal/algorithm_impl.h
pstl/include/pstl/internal/execution_defs.h
pstl/include/pstl/internal/execution_impl.h
pstl/include/pstl/internal/glue_algorithm_impl.h
pstl/include/pstl/internal/glue_memory_impl.h
pstl/include/pstl/internal/glue_numeric_impl.h
pstl/include/pstl/internal/numeric_fwd.h
pstl/include/pstl/internal/numeric_impl.h
pstl/include/pstl/internal/omp/parallel_for.h
pstl/include/pstl/internal/omp/parallel_invoke.h
pstl/include/pstl/internal/omp/parallel_merge.h
pstl/include/pstl/internal/omp/parallel_reduce.h
pstl/include/pstl/internal/omp/parallel_scan.h
pstl/include/pstl/internal/omp/parallel_stable_partial_sort.h
pstl/include/pstl/internal/omp/parallel_stable_sort.h
pstl/include/pstl/internal/omp/parallel_transform_reduce.h
pstl/include/pstl/internal/omp/parallel_transform_scan.h
pstl/include/pstl/internal/parallel_backend_serial.h
pstl/include/pstl/internal/parallel_backend_tbb.h
pstl/include/pstl/internal/parallel_impl.h
pstl/test/std/numerics/numeric.ops/scan.fail.cpp
pstl/test/support/utils.h