[all-commits] [llvm/llvm-project] c90801: [libc++] Refactor deque::iterator algorithm optimi...

philnik777 via All-commits all-commits at lists.llvm.org
Thu Jan 19 11:11:56 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c90801457f7cbbaee97821a06a893f4146ab1b2e
      https://github.com/llvm/llvm-project/commit/c90801457f7cbbaee97821a06a893f4146ab1b2e
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2023-01-19 (Thu, 19 Jan 2023)

  Changed paths:
    M libcxx/benchmarks/CMakeLists.txt
    A libcxx/benchmarks/deque_iterator.bench.cpp
    M libcxx/docs/ReleaseNotes.rst
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__algorithm/copy.h
    M libcxx/include/__algorithm/copy_backward.h
    M libcxx/include/__algorithm/move.h
    M libcxx/include/__algorithm/move_backward.h
    M libcxx/include/__iterator/reverse_iterator.h
    A libcxx/include/__iterator/segmented_iterator.h
    M libcxx/include/deque
    M libcxx/include/module.modulemap.in
    M libcxx/test/libcxx/algorithms/specialized.algorithms/special.mem.concepts/nothrow_forward_iterator.compile.pass.cpp
    M libcxx/test/libcxx/algorithms/specialized.algorithms/special.mem.concepts/nothrow_forward_range.compile.pass.cpp
    M libcxx/test/libcxx/private_headers.verify.cpp
    M libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy.pass.cpp
    A libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy.segmented.pass.cpp
    M libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy_backward.pass.cpp
    M libcxx/test/std/algorithms/alg.modifying.operations/alg.move/ranges.move.pass.cpp
    M libcxx/test/std/algorithms/alg.modifying.operations/alg.move/ranges.move_backward.pass.cpp
    M libcxx/test/support/test_iterators.h

  Log Message:
  -----------
  [libc++] Refactor deque::iterator algorithm optimizations

This has multiple benefits:
- The optimizations are also performed for the `ranges::` versions of the algorithms
- Code duplication is reduced
- it is simpler to add this optimization for other segmented iterators,
  like `ranges::join_view::iterator`
- Algorithm code is removed from `<deque>`

Reviewed By: ldionne, huixie90, #libc

Spies: mstorsjo, sstefan1, EricWF, libcxx-commits, mgorny

Differential Revision: https://reviews.llvm.org/D132505




More information about the All-commits mailing list