|
Revision tags: llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2 |
|
| #
d586f92c |
| 27-Nov-2020 |
Arthur O'Dwyer <arthur.j.odwyer@gmail.com> |
[libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI.
I used a lot of `git grep` to find places where `std::` was being used outside of comments and assert-messages. T
[libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI.
I used a lot of `git grep` to find places where `std::` was being used outside of comments and assert-messages. There were three outcomes:
- Qualified function calls, e.g. `std::move` becomes `_VSTD::move`. This is the most common case.
- Typenames that don't need qualification, e.g. `std::allocator` becomes `allocator`. Leaving these as `_VSTD::allocator` would also be fine, but I decided that removing the qualification is more consistent with existing practice.
- Names that specifically need un-versioned `std::` qualification, or that I wasn't sure about. For example, I didn't touch any code in <atomic>, <math.h>, <new>, or any ext/ or experimental/ headers; and I didn't touch any instances of `std::type_info`.
In some deduction guides, we were accidentally using `class Alloc = typename std::allocator<T>`, despite `std::allocator<T>`'s type-ness not being template-dependent. Because `std::allocator` is a qualified name, this did parse as we intended; but what we meant was simply `class Alloc = allocator<T>`.
Differential Revision: https://reviews.llvm.org/D92250
show more ...
|
|
Revision tags: llvmorg-11.0.1-rc1 |
|
| #
c30d5101 |
| 24-Nov-2020 |
Louis Dionne <ldionne.2@gmail.com> |
[libc++] Optimize the number of assignments in std::exclusive_scan
Reported in https://twitter.com/blelbach/status/1169807347142676480
Differential Revision: https://reviews.llvm.org/D67273
|
| #
67c88e47 |
| 28-Nov-2020 |
Mark de Wever <koraq@xs4all.nl> |
[libc++] P1645 constexpr for <numeric>
Implements P1645: constexpr for <numeric> algorithms
Reviewed By: ldionne, #libc
Differential Revision: https://reviews.llvm.org/D90569
|
| #
b2943765 |
| 27-Nov-2020 |
zoecarver <z.zoelec2@gmail.com> |
[libc++] Use std::move in numeric algorithms (P0616R0).
This patch updates algorithms in <numeric> to use std::move based on p0616r0. Moving values instead of copying them creates huge speed improve
[libc++] Use std::move in numeric algorithms (P0616R0).
This patch updates algorithms in <numeric> to use std::move based on p0616r0. Moving values instead of copying them creates huge speed improvements (see the paper for details).
Differential Revision: https://reviews.llvm.org/D61170
show more ...
|
| #
ecabb39c |
| 25-Nov-2020 |
Mark de Wever <koraq@xs4all.nl> |
Revert "[libc++] P1645 constexpr for <numeric>"
This reverts commit eb9b063539c34d0d4dd14e8516eeb77bb8b9e4bd.
The commit fails to build on build bots using LLVM 8.
|
| #
eb9b0635 |
| 24-Nov-2020 |
Mark de Wever <koraq@xs4all.nl> |
[libc++] P1645 constexpr for <numeric>
Implements P1645: constexpr for <numeric> algorithms
Reviewed By: ldionne, #libc
Differential Revision: https://reviews.llvm.org/D90569
|
| #
0ec73a61 |
| 24-Nov-2020 |
Louis Dionne <ldionne.2@gmail.com> |
[libc++] NFC: Fix confusing indentation in <numeric>
|
|
Revision tags: llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1, llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2, llvmorg-10.0.1-rc1, llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3, llvmorg-10.0.0-rc2, llvmorg-10.0.0-rc1, llvmorg-11-init |
|
| #
6e8659c3 |
| 21-Dec-2019 |
Ruslan Baratov <ruslan_baratov@yahoo.com> |
[libc++] Fix typo in std::midpoint
Reviewed By: mclow.lists
Differential Revision: https://reviews.llvm.org/D71525
|
|
Revision tags: llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2, llvmorg-9.0.1-rc1 |
|
| #
586952f4 |
| 05-Nov-2019 |
Jorg Brown <jorg@google.com> |
Optimize std::midpoint for integers
Same idea as the current algorithm, that is, add (half of the difference between a and b) to a.
But we use a different technique for computing the difference: we
Optimize std::midpoint for integers
Same idea as the current algorithm, that is, add (half of the difference between a and b) to a.
But we use a different technique for computing the difference: we compute b - a into a pair of integers that are named "sign_bit" and "diff". We have to use a pair because subtracting two 32-bit integers produces a 33-bit result.
Computing half of that is a simple matter of shifting diff right by 1, and adding sign_bit shifted left by 31. llvm knows how to do that with one instruction: shld.
The only tricky part is that if the difference is odd and negative, then shifting it by one isn't the same as dividing it by two - shifting a negative one produces a negative one, for example. So there's one more adjustment: if the sign bit and the low bit of diff are one, we add one.
For a demonstration of the codegen difference, see https://godbolt.org/z/7ar3K9 , which also has a built-in test.
Differential Revision: https://reviews.llvm.org/D69459
show more ...
|
|
Revision tags: llvmorg-9.0.0, llvmorg-9.0.0-rc6, llvmorg-9.0.0-rc5, llvmorg-9.0.0-rc4, llvmorg-9.0.0-rc3, llvmorg-9.0.0-rc2 |
|
| #
95689243 |
| 06-Aug-2019 |
Louis Dionne <ldionne@apple.com> |
[pstl][libc++] Provide uglified header names for interface headers
For the few (currently four) headers that make up the PSTL's interface to other Standard Libraries, provide a stable uglified heade
[pstl][libc++] Provide uglified header names for interface headers
For the few (currently four) headers that make up the PSTL's interface to other Standard Libraries, provide a stable uglified header file that can be included by those Standard Libraries.
We can then more easily change the internal organization of the PSTL without having to change the integration with Standard Libraries.
llvm-svn: 368088
show more ...
|
| #
0a06eb91 |
| 05-Aug-2019 |
Louis Dionne <ldionne@apple.com> |
[libc++] Take 2: Integrate the PSTL into libc++
Summary: This commit allows specifying LIBCXX_ENABLE_PARALLEL_ALGORITHMS when configuring libc++ in CMake. When that option is enabled, libc++ will as
[libc++] Take 2: Integrate the PSTL into libc++
Summary: This commit allows specifying LIBCXX_ENABLE_PARALLEL_ALGORITHMS when configuring libc++ in CMake. When that option is enabled, libc++ will assume that the PSTL can be found somewhere on the CMake module path, and it will provide the C++17 parallel algorithms based on the PSTL (that is assumed to be available).
The commit also adds support for running the PSTL tests as part of the libc++ test suite.
The first attempt to commit this failed because it exposed a bug in the tests for modules. Now that this has been fixed, it should be safe to commit this.
Reviewers: EricWF
Subscribers: mgorny, christof, jkorous, dexonsmith, libcxx-commits, mclow.lists, EricWF
Tags: #libc
Differential Revision: https://reviews.llvm.org/D60480
llvm-svn: 367903
show more ...
|
|
Revision tags: llvmorg-9.0.0-rc1 |
|
| #
a3c83b75 |
| 19-Jul-2019 |
Louis Dionne <ldionne@apple.com> |
Revert "[libc++] Integrate the PSTL into libc++"
This reverts r366593, which caused unforeseen breakage on the build bots. I'm reverting until the problems have been figured out and fixed.
llvm-svn
Revert "[libc++] Integrate the PSTL into libc++"
This reverts r366593, which caused unforeseen breakage on the build bots. I'm reverting until the problems have been figured out and fixed.
llvm-svn: 366603
show more ...
|
| #
910323e6 |
| 19-Jul-2019 |
Louis Dionne <ldionne@apple.com> |
[libc++] Integrate the PSTL into libc++
Summary: This commit allows specifying LIBCXX_ENABLE_PARALLEL_ALGORITHMS when configuring libc++ in CMake. When that option is enabled, libc++ will assume tha
[libc++] Integrate the PSTL into libc++
Summary: This commit allows specifying LIBCXX_ENABLE_PARALLEL_ALGORITHMS when configuring libc++ in CMake. When that option is enabled, libc++ will assume that the PSTL can be found somewhere on the CMake module path, and it will provide the C++17 parallel algorithms based on the PSTL (that is assumed to be available).
The commit also adds support for running the PSTL tests as part of the libc++ test suite.
Reviewers: rodgert, EricWF
Subscribers: mgorny, christof, jkorous, dexonsmith, libcxx-commits, mclow.lists, EricWF
Tags: #libc
Differential Revision: https://reviews.llvm.org/D60480
llvm-svn: 366593
show more ...
|
|
Revision tags: llvmorg-10-init, llvmorg-8.0.1, llvmorg-8.0.1-rc4, llvmorg-8.0.1-rc3 |
|
| #
8dc6840f |
| 18-Jun-2019 |
Marshall Clow <mclow.lists@gmail.com> |
Fix the floating point version of midpoint. It wasn't constexpr, among other things. Add more tests. As a drive-by, the LCD implementation had a class named '__abs' which did a 'absolute value to a c
Fix the floating point version of midpoint. It wasn't constexpr, among other things. Add more tests. As a drive-by, the LCD implementation had a class named '__abs' which did a 'absolute value to a common-type' conversion. Rename that to be '__ct_abs'.
llvm-svn: 363714
show more ...
|
|
Revision tags: llvmorg-8.0.1-rc2 |
|
| #
a2a1ec27 |
| 29-May-2019 |
Louis Dionne <ldionne@apple.com> |
[NFC][libcxx] Remove trailing whitespace
It's incredibly annoying when trying to create diffs
llvm-svn: 361981
|
| #
6b03a1b4 |
| 29-May-2019 |
Marshall Clow <mclow.lists@gmail.com> |
Add additional constraints on midpoint(pointer, pointer). Fixes PR#42037.
llvm-svn: 361970
|
|
Revision tags: llvmorg-8.0.1-rc1 |
|
| #
51497fb8 |
| 07-May-2019 |
Marshall Clow <mclow.lists@gmail.com> |
Mark private function __sign as constexpr.
llvm-svn: 360167
|
| #
d3d0ecbf |
| 25-Apr-2019 |
Marshall Clow <mclow.lists@gmail.com> |
Implement midpoint for floating point types. Reviewed as https://reviews.llvm.org/D61014.
llvm-svn: 359184
|
|
Revision tags: llvmorg-8.0.0 |
|
| #
330ab33f |
| 14-Mar-2019 |
Marshall Clow <mclow.lists@gmail.com> |
Add std::midpoint for integral and poiner types. Described in P0811, reviewed as D59099.
llvm-svn: 356162
|
|
Revision tags: llvmorg-8.0.0-rc5, llvmorg-8.0.0-rc4, llvmorg-8.0.0-rc3, llvmorg-7.1.0, llvmorg-7.1.0-rc1, llvmorg-8.0.0-rc2, llvmorg-8.0.0-rc1 |
|
| #
57b08b09 |
| 19-Jan-2019 |
Chandler Carruth <chandlerc@gmail.com> |
Update more file headers across all of the LLVM projects in the monorepo to reflect the new license. These used slightly different spellings that defeated my regular expressions.
We understand that
Update more file headers across all of the LLVM projects in the monorepo to reflect the new license. These used slightly different spellings that defeated my regular expressions.
We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach.
Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository.
llvm-svn: 351648
show more ...
|
|
Revision tags: llvmorg-7.0.1, llvmorg-7.0.1-rc3, llvmorg-7.0.1-rc2, llvmorg-7.0.1-rc1, llvmorg-7.0.0 |
|
| #
f56972e2 |
| 12-Sep-2018 |
Marshall Clow <mclow.lists@gmail.com> |
Implement the infrastructure for feature-test macros. Very few actual feature test macros, though. Reviewed as: https://reviews.llvm.org/D51955
llvm-svn: 342073
|
|
Revision tags: llvmorg-7.0.0-rc3, llvmorg-7.0.0-rc2 |
|
| #
7c3492b0 |
| 03-Aug-2018 |
Louis Dionne <ldionne@apple.com> |
[NFC][libc++] Consistently use spaces to indent
rdar://problem/19988944
llvm-svn: 338933
|
|
Revision tags: llvmorg-7.0.0-rc1, llvmorg-6.0.1, llvmorg-6.0.1-rc3, llvmorg-6.0.1-rc2, llvmorg-6.0.1-rc1, llvmorg-5.0.2, llvmorg-5.0.2-rc2, llvmorg-5.0.2-rc1, llvmorg-6.0.0, llvmorg-6.0.0-rc3, llvmorg-6.0.0-rc2, llvmorg-6.0.0-rc1 |
|
| #
4958692a |
| 05-Jan-2018 |
Billy Robert O'Neal III <bion@microsoft.com> |
Fix incorrect handling of move-only types in transform_reduce iter iter iter init, and add test.
llvm-svn: 321851
|
| #
ca444e13 |
| 05-Jan-2018 |
Billy Robert O'Neal III <bion@microsoft.com> |
Automated trailing whitespace removal by VS Code.
llvm-svn: 321850
|
|
Revision tags: llvmorg-5.0.1, llvmorg-5.0.1-rc3, llvmorg-5.0.1-rc2, llvmorg-5.0.1-rc1, llvmorg-5.0.0, llvmorg-5.0.0-rc5, llvmorg-5.0.0-rc4, llvmorg-5.0.0-rc3, llvmorg-5.0.0-rc2, llvmorg-5.0.0-rc1 |
|
| #
ac8ea7c6 |
| 23-Jun-2017 |
Marshall Clow <mclow.lists@gmail.com> |
Implement inclusive_scan/transform_inclusive_scan for C++17.
llvm-svn: 306083
|