| #
7a3b528e |
| 06-Jun-2023 |
Nikolas Klauser <n_klauser@apple.com> |
[libc++][PSTL] Implement std::count{,_if}
Reviewed By: ldionne, #libc
Spies: libcxx-commits
Differential Revision: https://reviews.llvm.org/D150128
|
|
Revision tags: llvmorg-16.0.5 |
|
| #
d51a84b4 |
| 01-Jun-2023 |
Nikolas Klauser <nikolasklauser@berlin.de> |
[libc++][PSTL] Implement std::stable_sort
Reviewed By: #libc, ldionne
Spies: ldionne, libcxx-commits
Differential Revision: https://reviews.llvm.org/D151573
|
| #
bf63b15b |
| 30-May-2023 |
Nikolas Klauser <nikolasklauser@berlin.de> |
[libc++][PSTL] Implement std::merge
Reviewed By: ldionne, #libc
Spies: pcwang-thead, libcxx-commits
Differential Revision: https://reviews.llvm.org/D151375
|
|
Revision tags: llvmorg-16.0.4 |
|
| #
7ace54e6 |
| 15-May-2023 |
Nikolas Klauser <nikolasklauser@berlin.de> |
[libc++][PSTL] Implement std::copy{,_n}
Reviewed By: ldionne, #libc
Spies: jloser, libcxx-commits
Differential Revision: https://reviews.llvm.org/D149706
|
| #
20517557 |
| 08-May-2023 |
zijunzhao <zijunzhao@google.com> |
[libc++] Implement ranges::starts_with
|
| #
61d5671c |
| 15-May-2023 |
Nikolas Klauser <nikolasklauser@berlin.de> |
Revert "[libc++][PSTL] Implement std::copy{,_n}"
This reverts commit b049fc0481bc387f57fd61da7239f85ef91096c1.
The wrong patch was landed.
|
| #
b049fc04 |
| 05-May-2023 |
Nikolas Klauser <n_klauser@apple.com> |
[libc++][PSTL] Implement std::copy{,_n}
Reviewed By: ldionne, #libc
Spies: jloser, libcxx-commits
Differential Revision: https://reviews.llvm.org/D149706
|
| #
6851d078 |
| 15-May-2023 |
Nikolas Klauser <nikolasklauser@berlin.de> |
[libc++][PSTL] Implement std::transform
Reviewed By: ldionne, #libc
Spies: libcxx-commits
Differential Revision: https://reviews.llvm.org/D149615
|
| #
627e6efa |
| 15-May-2023 |
Nikolas Klauser <nikolasklauser@berlin.de> |
Revert "[libc++][PSTL] Implement std::transform"
This reverts commit cbd9e5454741ebe6b39521fe1a8ed4eed5c2c801.
The wrong patch was landed.
|
| #
cbd9e545 |
| 05-May-2023 |
Nikolas Klauser <n_klauser@apple.com> |
[libc++][PSTL] Implement std::transform
Reviewed By: ldionne, #libc
Spies: libcxx-commits
Differential Revision: https://reviews.llvm.org/D149615
|
| #
e7e37118 |
| 05-May-2023 |
Nikolas Klauser <n_klauser@apple.com> |
[libc++][PSTL] Make the PSTL available by default under -fexperimental-library
This removes the need for a custom libc++ build to have a basic set of PSTL algorithms.
Reviewed By: ldionne, #libc
S
[libc++][PSTL] Make the PSTL available by default under -fexperimental-library
This removes the need for a custom libc++ build to have a basic set of PSTL algorithms.
Reviewed By: ldionne, #libc
Spies: miyuki, libcxx-commits, arichardson
Differential Revision: https://reviews.llvm.org/D149624
show more ...
|
|
Revision tags: llvmorg-16.0.3 |
|
| #
ade9c3bd |
| 28-Apr-2023 |
Nikolas Klauser <n_klauser@apple.com> |
[libc++][PSTL] Implement std::fill{,_n}
Reviewed By: ldionne, #libc
Spies: libcxx-commits
Differential Revision: https://reviews.llvm.org/D149540
|
| #
82439169 |
| 27-Apr-2023 |
Nikolas Klauser <n_klauser@apple.com> |
[libc++][PSTL] Implement std::find{,_if,_if_not}
Reviewed By: ldionne, #libc
Spies: libcxx-commits
Differential Revision: https://reviews.llvm.org/D149539
|
|
Revision tags: llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init |
|
| #
68ee014b |
| 19-Jan-2023 |
Nikolas Klauser <nikolasklauser@berlin.de> |
[libc++][PSTL] Implement std::for_each{, _n}
Reviewed By: ldionne, #libc
Spies: libcxx-commits
Differential Revision: https://reviews.llvm.org/D149381
|
| #
8af259e8 |
| 14-Jan-2023 |
Nikolas Klauser <nikolasklauser@berlin.de> |
[libc++][PSTL] Implement std::{any, all, none}_of
Reviewed By: ldionne, #libc
Spies: arichardson, libcxx-commits, miyuki
Differential Revision: https://reviews.llvm.org/D143161
|
| #
1eb74f7e |
| 15-Apr-2023 |
Ian Anderson <iana@apple.com> |
[libc++] Remove the chrono include from algorithm
algorithm's include of chrono causes include cycles:
``` algorithm -> chrono -> __chrono/convert_to_tm.h -> __chrono/statically_widen.h -> __format
[libc++] Remove the chrono include from algorithm
algorithm's include of chrono causes include cycles:
``` algorithm -> chrono -> __chrono/convert_to_tm.h -> __chrono/statically_widen.h -> __format/concepts.h -> __format/format_parse_context.h -> string_view -> algorithm
algorithm -> chrono -> __chrono/convert_to_tm.h -> __chrono/statically_widen.h -> __format/concepts.h -> __format/format_parse_context.h -> string_view -> functional -> __functional/boyer_moore_searcher.h -> array -> algorithm
algorithm -> chrono -> __chrono/convert_to_tm.h -> __chrono/statically_widen.h -> __format/concepts.h -> __format/format_parse_context.h -> string_view -> functional -> __functional/boyer_moore_searcher.h -> unordered_map -> algorithm
algorithm -> chrono -> __chrono/convert_to_tm.h -> __chrono/statically_widen.h -> __format/concepts.h -> __format/format_parse_context.h -> string_view -> functional -> __functional/boyer_moore_searcher.h -> vector -> algorithm ```
This is a problem for clang modules after the std mega module is broken up, because it becomes a module cycle which is a hard error.
All of the includes in the `__chrono` and `__format` headers are being used and so can't be removed. algorithm's include of chrono is already removed in C++20, whereas the array, string_view, unordered_map, vector includes of algorithm aren't removed until C++23 (and it's 4x the includes that would need removing). Unconditionally remove the chrono include from algorithm in all versions, so that the module breakup can happen (the module has to apply to all C++ versions).
Reviewed By: Mordante, #libc
Differential Revision: https://reviews.llvm.org/D148405
show more ...
|
| #
7d98590b |
| 16-Apr-2023 |
Nikolas Klauser <nikolasklauser@berlin.de> |
[libc++][PSTL] Remove current integration
We decided to go a different route. To make the switch easier, rip out the old integration first and build on a clean base.
Reviewed By: ldionne, #libc, #l
[libc++][PSTL] Remove current integration
We decided to go a different route. To make the switch easier, rip out the old integration first and build on a clean base.
Reviewed By: ldionne, #libc, #libc_abi
Spies: arichardson, libcxx-commits
Differential Revision: https://reviews.llvm.org/D148480
show more ...
|
|
Revision tags: llvmorg-15.0.7 |
|
| #
75196f8e |
| 08-Jan-2023 |
Nikolas Klauser <nikolasklauser@berlin.de> |
[libc++] Remove <cstdlib> includes
We changed the `abort` calls when trying to throw exceptions in `-fno-exceptions` mode to `__verbose_abort` calls, which removes the dependency in most files.
Rev
[libc++] Remove <cstdlib> includes
We changed the `abort` calls when trying to throw exceptions in `-fno-exceptions` mode to `__verbose_abort` calls, which removes the dependency in most files.
Reviewed By: ldionne, #libc
Spies: dim, emaste, mikhail.ramalho, smeenai, libcxx-commits
Differential Revision: https://reviews.llvm.org/D146076
show more ...
|
| #
de6827b5 |
| 24-Feb-2023 |
Mark de Wever <koraq@xs4all.nl> |
[libc++] Improves clang-format settings.
Add a new test based .clang-format file which inherits from the generic one. This moves some test specific formatting rules to the test directory.
The main
[libc++] Improves clang-format settings.
Add a new test based .clang-format file which inherits from the generic one. This moves some test specific formatting rules to the test directory.
The main benefit is that headers are sorted, which makes it more likely to catch these errors before creating a review instead of spotting the error in the CI clang-tidy step.
Reviewed By: ldionne, philnik, #libc
Differential Revision: https://reviews.llvm.org/D144755
show more ...
|
| #
40a20ae6 |
| 08-Jan-2023 |
Nikolas Klauser <nikolasklauser@berlin.de> |
[libc++] Granularize <bit> includes
Reviewed By: ldionne, #libc
Spies: libcxx-commits
Differential Revision: https://reviews.llvm.org/D141228
|
| #
e698c595 |
| 26-Dec-2022 |
Nikolas Klauser <nikolasklauser@berlin.de> |
[libc++] Granularize <type_traits> includes in <algorithm>
Reviewed By: Mordante, #libc
Spies: libcxx-commits, wenlei
Differential Revision: https://reviews.llvm.org/D140673
|
|
Revision tags: llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2 |
|
| #
2a06757a |
| 04-Aug-2022 |
Adrian Vogelsgesang <avogelsgesang@tableau.com> |
[libc++][spaceship] Implement `lexicographical_compare_three_way`
The implementation makes use of the freedom added by LWG 3410. We have two variants of this algorithm: * a fast path for random acce
[libc++][spaceship] Implement `lexicographical_compare_three_way`
The implementation makes use of the freedom added by LWG 3410. We have two variants of this algorithm: * a fast path for random access iterators: This fast path computes the maximum number of loop iterations up-front and does not compare the iterators against their limits on every loop iteration. * A basic implementation for all other iterators: This implementation compares the iterators against their limits in every loop iteration. However, it still takes advantage of the freedom added by LWG 3410 to avoid unnecessary additional iterator comparisons, as originally specified by P1614R2.
https://godbolt.org/z/7xbMEen5e shows the benefit of the fast path: The hot loop generated of `lexicographical_compare_three_way3` is more tight than for `lexicographical_compare_three_way1`. The added benchmark illustrates how this leads to a 30% - 50% performance improvement on integer vectors.
Implements part of P1614R2 "The Mothership has Landed"
Fixes LWG 3410 and LWG 3350
Differential Revision: https://reviews.llvm.org/D131395
show more ...
|
| #
5629d492 |
| 14-Jan-2023 |
varconst <varconsteq@gmail.com> |
Reapply "[libc++][ranges]Refactor `copy{,_backward}` and `move{,_backward}`"
This reverts commit a6e1080b87db8fbe0e1afadd96af5a3c0bd5e279.
Fix the conditions when the `memmove` optimization can be
Reapply "[libc++][ranges]Refactor `copy{,_backward}` and `move{,_backward}`"
This reverts commit a6e1080b87db8fbe0e1afadd96af5a3c0bd5e279.
Fix the conditions when the `memmove` optimization can be applied and refactor them out into a reusable type trait, fix and significantly expand the tests.
Differential Revision: https://reviews.llvm.org/D139235
show more ...
|
| #
86aac87f |
| 27-Dec-2022 |
Nikolas Klauser <nikolasklauser@berlin.de> |
[libc++] Granularize <bit> and remove <__bits>
Reviewed By: Mordante, #libc
Spies: libcxx-commits
Differential Revision: https://reviews.llvm.org/D141225
|
| #
89b356f0 |
| 02-Nov-2022 |
Nikolas Klauser <nikolasklauser@berlin.de> |
[libc++] Granularize <concept> includes
Reviewed By: ldionne, #libc
Spies: libcxx-commits
Differential Revision: https://reviews.llvm.org/D137283
|