|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, 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, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init |
|
| #
4e6c30c8 |
| 02-Jul-2022 |
Tue Ly <[email protected]> |
[libc] Add a separate algorithm_test.
Differential Revision: https://reviews.llvm.org/D128994
|
| #
b66d02ea |
| 01-Jul-2022 |
Guillaume Chatelet <[email protected]> |
Revert "[reland] algorithm_test.cpp"
This reverts commit 1514acb20f404fa3fe0e20f068b1caf763396176.
|
| #
1514acb2 |
| 30-Jun-2022 |
Guillaume Chatelet <[email protected]> |
[reland] algorithm_test.cpp
Removing `-ffreestanding` for the tests should allow us to use `<iostream>`
Differential Revision: https://reviews.llvm.org/D128916
|
| #
98007e97 |
| 29-Jun-2022 |
Guillaume Chatelet <[email protected]> |
Revert "[libc][test] Remove dependency on sstream in algorithm_test.cpp"
This reverts commit 292b281caf8c3750cc0796b971af2ca24236a926.
|
| #
292b281c |
| 29-Jun-2022 |
Guillaume Chatelet <[email protected]> |
[libc][test] Remove dependency on sstream in algorithm_test.cpp
Bots have been failing in full build mode because ´#include <sstream>´ would pull pthread which is not possible when code is compiled
[libc][test] Remove dependency on sstream in algorithm_test.cpp
Bots have been failing in full build mode because ´#include <sstream>´ would pull pthread which is not possible when code is compiled with ´-freestanding´.
Differential Revision: https://reviews.llvm.org/D128809
show more ...
|
| #
1088d4ad |
| 28-Jun-2022 |
Michael Jones <[email protected]> |
[libc] disable algorithm_test.cpp temporarily
The unit tests introduced in patch D128335 are causing build failures, and the fix is non-trivial. This patch disables these tests temporarily until a p
[libc] disable algorithm_test.cpp temporarily
The unit tests introduced in patch D128335 are causing build failures, and the fix is non-trivial. This patch disables these tests temporarily until a proper fix can be implemented.
Reviewed By: lntue
Differential Revision: https://reviews.llvm.org/D128746
show more ...
|
| #
03a26c34 |
| 28-Jun-2022 |
Michael Jones <[email protected]> |
[libc] Fix compile options for algorithm test
This patch fixes the problem the bots were having with the algorithm test not including pthreads correctly. They will likely need a manual forced clean
[libc] Fix compile options for algorithm test
This patch fixes the problem the bots were having with the algorithm test not including pthreads correctly. They will likely need a manual forced clean build for this to take effect.
Differential Revision: https://reviews.llvm.org/D128742
show more ...
|
|
Revision tags: llvmorg-14.0.6 |
|
| #
7f5d7bc8 |
| 22-Jun-2022 |
Guillaume Chatelet <[email protected]> |
[libc][mem*] Introduce Algorithms for new mem framework
This patch is a subpart of D125768 intented to make the review easier.
This patch introduces the same algorithms as in `libc/src/string/memor
[libc][mem*] Introduce Algorithms for new mem framework
This patch is a subpart of D125768 intented to make the review easier.
This patch introduces the same algorithms as in `libc/src/string/memory_utils/elements.h` but using the new API.
Differential Revision: https://reviews.llvm.org/D128335
show more ...
|
| #
67fe3bd3 |
| 14-Jun-2022 |
Guillaume Chatelet <[email protected]> |
[libc][mem*] Introduce Sized/Backends for new mem framework
This patch is a subpart of D125768 intented to make the review easier.
The `SizedOp` struct represents operations to be performed on a ce
[libc][mem*] Introduce Sized/Backends for new mem framework
This patch is a subpart of D125768 intented to make the review easier.
The `SizedOp` struct represents operations to be performed on a certain number of bytes. It is responsible for breaking them down into platform types and forwarded to the `Backend`.
The `Backend` struct represents a lower level abstraction that works only on types (`uint8_t`, `__m128i`, ...). It is similar to instruction selection.
Differential Revision: https://reviews.llvm.org/D126768
show more ...
|
|
Revision tags: llvmorg-14.0.5 |
|
| #
4cbfd2e7 |
| 31-May-2022 |
Guillaume Chatelet <[email protected]> |
[libc][mem*] Address facility + test enum support
This patch is a subpart of D125768 intented to make the review easier.
The `Address` struct represents a pointer but also adds compile time knowled
[libc][mem*] Address facility + test enum support
This patch is a subpart of D125768 intented to make the review easier.
The `Address` struct represents a pointer but also adds compile time knowledge like alignment or temporal/non-temporal that helps with downstream instruction selection.
Differential Revision: https://reviews.llvm.org/D125966
show more ...
|
|
Revision tags: llvmorg-14.0.4 |
|
| #
80005148 |
| 08-May-2022 |
Tue Ly <[email protected]> |
[libc] Implement FLAGS option for generating all combinations for targets.
Add FLAGS option for add_header_library, add_object_library, add_entrypoint_object, and add_libc_unittest.
In general, a f
[libc] Implement FLAGS option for generating all combinations for targets.
Add FLAGS option for add_header_library, add_object_library, add_entrypoint_object, and add_libc_unittest.
In general, a flag is a string provided for supported functions under the multi-valued option `FLAGS`. It should be one of the following forms: FLAG_NAME FLAG_NAME__NO FLAG_NAME__ONLY A target will inherit all the flags of its upstream dependency.
When we create a target `TARGET_NAME` with a flag using (add_header_library, add_object_library, ...), its behavior will depend on the flag form as follow: - FLAG_NAME: The following 2 targets will be generated: `TARGET_NAME` that has `FLAG_NAME` in its `FLAGS` property. `TARGET_NAME.__NO_FLAG_NAME` that depends on `DEP.__NO_FLAG_NAME` if `TARGET_NAME` depends on `DEP` and `DEP` has `FLAG_NAME` in its `FLAGS` property. - FLAG_NAME__ONLY: Only generate 1 target `TARGET_NAME` that has `FLAG_NAME` in its `FLAGS` property. - FLAG_NAME__NO: Only generate 1 target `TARGET_NAME.__NO_FLAG_NAME` that depends on `DEP.__NO_FLAG_NAME` if `DEP` is in its DEPENDS list and `DEP` has `FLAG_NAME` in its `FLAGS` property.
To show all the targets generated, pass SHOW_INTERMEDIATE_OBJECTS=ON to cmake. To show all the targets' dependency and flags, pass `SHOW_INTERMEDIATE_OBJECTS=DEPS` to cmake.
To completely disable a flag FLAG_NAME expansion, set the variable `SKIP_FLAG_EXPANSION_FLAG_NAME=TRUE`.
Reviewed By: michaelrj, sivachandra
Differential Revision: https://reviews.llvm.org/D125174
show more ...
|
|
Revision tags: llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3 |
|
| #
bf0ded80 |
| 08-Mar-2022 |
Michael Jones <[email protected]> |
[libc][NFC] split standalone_cpp into single headers
Previously, the entire support/CPP folder was in one header library, which meant that a lot of headers were included where they shouldn't be. Thi
[libc][NFC] split standalone_cpp into single headers
Previously, the entire support/CPP folder was in one header library, which meant that a lot of headers were included where they shouldn't be. This patch splits each header into its own target, as well as adjusting each place they were included to only include what is used.
Reviewed By: sivachandra, lntue
Differential Revision: https://reviews.llvm.org/D121237
show more ...
|
|
Revision tags: llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1 |
|
| #
f362aea4 |
| 27-Oct-2021 |
Siva Chandra Reddy <[email protected]> |
[libc][NFC] Move utils/CPP to src/__support/CPP.
The idea is to move all pieces related to the actual libc sources to the "src" directory. This allows downstream users to ship and build just the "sr
[libc][NFC] Move utils/CPP to src/__support/CPP.
The idea is to move all pieces related to the actual libc sources to the "src" directory. This allows downstream users to ship and build just the "src" directory.
Reviewed By: michaelrj
Differential Revision: https://reviews.llvm.org/D112653
show more ...
|
| #
d8e4170b |
| 23-Oct-2021 |
Kazu Hirata <[email protected]> |
Ensure newlines at the end of files (NFC)
|
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2 |
|
| #
7fff39d9 |
| 15-Jun-2021 |
Guillaume Chatelet <[email protected]> |
[libc] Add a set of elementary operations
Resubmission of D100646 now making sure that we handle cases were `__builtin_memcpy_inline` is not available.
Original commit message: Each of these elemen
[libc] Add a set of elementary operations
Resubmission of D100646 now making sure that we handle cases were `__builtin_memcpy_inline` is not available.
Original commit message: Each of these elementary operations can be assembled to support higher order constructs (Overlapping access, Loop, Aligned Loop). The patch does not compile yet as it depends on other ones (D100571, D100631) but it allows to get the conversation started.
A self-contained version of this code is available at https://godbolt.org/z/e1x6xdaxM
show more ...
|
| #
c3242238 |
| 16-Jun-2021 |
Guillaume Chatelet <[email protected]> |
Revert "[libc] Add a set of elementary operations"
This reverts commit 4694321fbe54628513b75a4395124cd7508581a6.
|
| #
4694321f |
| 15-Jun-2021 |
Guillaume Chatelet <[email protected]> |
[libc] Add a set of elementary operations
Resubmission of D100646 now making sure that we handle cases were `__builtin_memcpy_inline` is not available.
Original commit message: Each of these elemen
[libc] Add a set of elementary operations
Resubmission of D100646 now making sure that we handle cases were `__builtin_memcpy_inline` is not available.
Original commit message: Each of these elementary operations can be assembled to support higher order constructs (Overlapping access, Loop, Aligned Loop). The patch does not compile yet as it depends on other ones (D100571, D100631) but it allows to get the conversation started.
A self-contained version of this code is available at https://godbolt.org/z/e1x6xdaxM
show more ...
|
| #
2e286f23 |
| 15-Jun-2021 |
Guillaume Chatelet <[email protected]> |
Revert "[libc] Add a set of elementary operations"
This reverts commit 8387187c2ffe0bef0696edfffab00cd7d0ee3e6e.
|
| #
8387187c |
| 15-Jun-2021 |
Guillaume Chatelet <[email protected]> |
[libc] Add a set of elementary operations
Resubmission of D100646 now making sure that we handle cases were `__builtin_memcpy_inline` is not available.
Original commit message: Each of these elemen
[libc] Add a set of elementary operations
Resubmission of D100646 now making sure that we handle cases were `__builtin_memcpy_inline` is not available.
Original commit message: Each of these elementary operations can be assembled to support higher order constructs (Overlapping access, Loop, Aligned Loop). The patch does not compile yet as it depends on other ones (D100571, D100631) but it allows to get the conversation started.
A self-contained version of this code is available at https://godbolt.org/z/e1x6xdaxM
show more ...
|
| #
c11032ad |
| 15-Jun-2021 |
Guillaume Chatelet <[email protected]> |
Revert "[libc] Add a set of elementary operations"
This reverts commit 454d92ac3b3b13f5c8b3f57e03b2d93f0cf60738.
|
| #
454d92ac |
| 15-Jun-2021 |
Guillaume Chatelet <[email protected]> |
[libc] Add a set of elementary operations
Resubmission of D100646 now making sure that we handle cases were `__builtin_memcpy_inline` is not available.
Original commit message: Each of these elemen
[libc] Add a set of elementary operations
Resubmission of D100646 now making sure that we handle cases were `__builtin_memcpy_inline` is not available.
Original commit message: Each of these elementary operations can be assembled to support higher order constructs (Overlapping access, Loop, Aligned Loop). The patch does not compile yet as it depends on other ones (D100571, D100631) but it allows to get the conversation started.
A self-contained version of this code is available at https://godbolt.org/z/e1x6xdaxM
show more ...
|
| #
ab45c1f2 |
| 14-Jun-2021 |
Guillaume Chatelet <[email protected]> |
Revert "[libc] Add a set of elementary operations"
This reverts commit e63f27a3cf8129cb66b8350ad50bf19633554a6b.
|
| #
e63f27a3 |
| 14-Jun-2021 |
Guillaume Chatelet <[email protected]> |
[libc] Add a set of elementary operations
Each of these elementary operations can be assembled to support higher order constructs (Overlapping access, Loop, Aligned Loop). The patch does not compile
[libc] Add a set of elementary operations
Each of these elementary operations can be assembled to support higher order constructs (Overlapping access, Loop, Aligned Loop). The patch does not compile yet as it depends on other ones (D100571, D100631) but it allows to get the conversation started.
Differential Revision: https://reviews.llvm.org/D100646
show more ...
|
|
Revision tags: llvmorg-12.0.1-rc1, 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, llvmorg-11.0.1-rc1, 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 |
|
| #
e4767a6f |
| 04-Mar-2020 |
Siva Chandra Reddy <[email protected]> |
[libc] Add fully-qualified target names.
Only targets setup by the special LLVM libc rules now have fully qualified names. The naming style is similar to fully qualified names in Python.
Reviewers:
[libc] Add fully-qualified target names.
Only targets setup by the special LLVM libc rules now have fully qualified names. The naming style is similar to fully qualified names in Python.
Reviewers: abrachet, PaulkaToast, phosek
Differential Revision: https://reviews.llvm.org/D77340
show more ...
|
|
Revision tags: llvmorg-10.0.0-rc3, llvmorg-10.0.0-rc2 |
|
| #
04a309dd |
| 11-Feb-2020 |
Guillaume Chatelet <[email protected]> |
[libc] Adding memcpy implementation for x86_64
Summary: The patch is not ready yet and is here to discuss a few options: - How do we customize the implementation? (i.e. how to define `kRepMovsBSize
[libc] Adding memcpy implementation for x86_64
Summary: The patch is not ready yet and is here to discuss a few options: - How do we customize the implementation? (i.e. how to define `kRepMovsBSize`), - How do we specify custom compilation flags? (We'd need `-fno-builtin-memcpy` to be passed in), - How do we build? We may want to test in debug but build the libc with `-march=native` for instance, - Clang has a brand new builtin `__builtin_memcpy_inline` which makes the implementation easy and efficient, but: - If we compile with `gcc` or `msvc` we can't use it, resorting on less efficient code generation, - With gcc we can use `__builtin_memcpy` but then we'd need a postprocess step to check that the final assembly do not contain call to `memcpy` (unlikely but allowed), - For msvc we'd need to resort on the compiler optimization passes.
Reviewers: sivachandra, abrachet
Subscribers: mgorny, MaskRay, tschuett, libc-commits, courbet
Tags: #libc-project
Differential Revision: https://reviews.llvm.org/D74397
show more ...
|