[all-commits] [llvm/llvm-project] 672843: [libc++][pstl] Implementation of parallel std::min...

Michael G. Kazakov via All-commits all-commits at lists.llvm.org
Thu Sep 10 01:03:57 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 672843a3f2ee2aaaed0463ec9064b6ccea2a5d4d
      https://github.com/llvm/llvm-project/commit/672843a3f2ee2aaaed0463ec9064b6ccea2a5d4d
  Author: Michael G. Kazakov <mike.kazakov at gmail.com>
  Date:   2026-09-10 (Thu, 10 Sep 2026)

  Changed paths:
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__algorithm/pstl.h
    M libcxx/include/__pstl/backend_fwd.h
    M libcxx/include/__pstl/backends/default.h
    M libcxx/include/__pstl/backends/libdispatch.h
    M libcxx/include/__pstl/backends/serial.h
    M libcxx/include/__pstl/backends/std_thread.h
    A libcxx/include/__pstl/cpu_algos/minmax_element.h
    M libcxx/include/module.modulemap.in
    M libcxx/test/libcxx/algorithms/pstl.iterator-requirements.verify.cpp
    M libcxx/test/libcxx/algorithms/pstl.nodiscard.verify.cpp
    A libcxx/test/std/algorithms/alg.sorting/alg.min.max/pstl.minmax_element.pass.cpp
    A libcxx/test/std/algorithms/alg.sorting/alg.min.max/pstl.minmax_element_comp.pass.cpp
    M libcxx/test/std/algorithms/pstl.exception_handling.pass.cpp

  Log Message:
  -----------
  [libc++][pstl] Implementation of parallel std::minmax_element() based on parallel reduce (#221572)

This PR adds an implementation of parallel `std::minmax_element()` based
on parallel reduce.

The implementation formulates `minmax_element` as a reduction of
iterators over the input range.
The iterators are first transformed into a min-max iterator pair.
The reduction is provided in two forms: 2-element reduction that makes
an iterator pair pointing to a smaller and a greater value, and a
range-based reduction with init value.
The latter delegates the heavy-lifting to the serial implementation of
`std::minmax_element()`.

Part of #99938.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list