Revision tags: llvmorg-21-init, llvmorg-19.1.7 |
|
#
edf9439e |
| 17-Dec-2024 |
Petr Hosek <phosek@google.com> |
[libcxx] Support for using timespec_get (#117362)
clock_gettime is a POSIX API that may not be available on platforms like
baremetal; timespec_get is the C11 equivalent. This change adds support
f
[libcxx] Support for using timespec_get (#117362)
clock_gettime is a POSIX API that may not be available on platforms like
baremetal; timespec_get is the C11 equivalent. This change adds support
for using timespec_get instead of clock_gettime to improve compatibility
with non-POSIX platforms. For now, this is only enabled with LLVM libc
which implemented timespec_get in #116102, but in the future this can be
expanded to other platforms.
Related to #84879.
show more ...
|
Revision tags: llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4 |
|
#
dedc5159 |
| 16-Nov-2024 |
Nikolas Klauser <nikolasklauser@berlin.de> |
[libc++] Avoid including <string> in <mutex> (#116254)
|
#
b69ddbc6 |
| 13-Nov-2024 |
Nikolas Klauser <nikolasklauser@berlin.de> |
[libc++] Make variables in templates inline (#115785)
The variables are all `constexpr`, which implies `inline`. Since they
aren't `constexpr` in C++03 they're also not `inline` there. Because of
[libc++] Make variables in templates inline (#115785)
The variables are all `constexpr`, which implies `inline`. Since they
aren't `constexpr` in C++03 they're also not `inline` there. Because of
that we define them out-of-line currently. Instead we can use the C++17
extension of `inline` variables, which results in the same weak
definitions of the variables but without having all the boilerplate.
show more ...
|
Revision tags: 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 |
|
#
0eb1fc88 |
| 14-Aug-2024 |
Joseph Huber <huberjn@outlook.com> |
[libcxx] Set `_LIBCPP_HAS_CLOCK_GETTIME` for GPU targets (#99243)
Summary:
I am attempting to get the GPU to build and support libc++. One issue
I've encountered is that it will look for `timeval`
[libcxx] Set `_LIBCPP_HAS_CLOCK_GETTIME` for GPU targets (#99243)
Summary:
I am attempting to get the GPU to build and support libc++. One issue
I've encountered is that it will look for `timeval` unless this macro is
set. We can support `CLOCK_MONOTONIC` on the GPU fairly easily as we
have access to a fixed-frequency clock via `__builtin_readsteadycounter`
intrinsics with a known frequency. This also requires `CLOCK_REALTIME`
which we can't support, but provide anyway from the GPU `libc` to make
this happy. It will return an error so at least that will be obvious.
I may need a more consistent configuration for this in the future, maybe
I should put a common macro in a different common header that's just
`__GPU__`? I don't know where I would put such a thing however.
show more ...
|
Revision tags: 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 |
|
#
9783f28c |
| 18-Dec-2023 |
Louis Dionne <ldionne.2@gmail.com> |
[libc++] Format the code base (#74334)
This patch runs clang-format on all of libcxx/include and libcxx/src, in
accordance with the RFC discussed at [1]. Follow-up patches will format
the benchmar
[libc++] Format the code base (#74334)
This patch runs clang-format on all of libcxx/include and libcxx/src, in
accordance with the RFC discussed at [1]. Follow-up patches will format
the benchmarks, the test suite and remaining parts of the code. I'm
splitting this one into its own patch so the diff is a bit easier to
review.
This patch was generated with:
find libcxx/include libcxx/src -type f \
| grep -v 'module.modulemap.in' \
| grep -v 'CMakeLists.txt' \
| grep -v 'README.txt' \
| grep -v 'libcxx.imp' \
| grep -v '__config_site.in' \
| xargs clang-format -i
A Git merge driver is available in libcxx/utils/clang-format-merge-driver.sh
to help resolve merge and rebase issues across these formatting changes.
[1]: https://discourse.llvm.org/t/rfc-clang-formatting-all-of-libc-once-and-for-all
show more ...
|
Revision tags: 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 |
|
#
1cfcc368 |
| 25-Aug-2023 |
Samuel Thibault <samuel.thibault@ens-lyon.org> |
[libc++] Fix GNU/Hurd build
GNU/Hurd does have clock_gettime, it just doesn't define _POSIX_TIMERS because its support for timers is not complete.
Reviewed By: #libc, Mordante
Differential Revisio
[libc++] Fix GNU/Hurd build
GNU/Hurd does have clock_gettime, it just doesn't define _POSIX_TIMERS because its support for timers is not complete.
Reviewed By: #libc, Mordante
Differential Revision: https://reviews.llvm.org/D158584
show more ...
|
Revision tags: llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init |
|
#
dab5f56e |
| 11-Jul-2023 |
Louis Dionne <ldionne.2@gmail.com> |
[libc++] Fix filesystem tests on platforms that don't have IO
This patch moves a few tests that were still using std::fprintf to using TEST_REQUIRE instead, which provides a single point to tweak fo
[libc++] Fix filesystem tests on platforms that don't have IO
This patch moves a few tests that were still using std::fprintf to using TEST_REQUIRE instead, which provides a single point to tweak for platforms that don't implement fprintf. As a fly-by fix, it also avoids including `time_utils.h` in filesystem_clock.cpp when it is not required, since that header makes some pretty large assumptions about the platform it is on.
Differential Revision: https://reviews.llvm.org/D155019
show more ...
|
#
7e6f2b74 |
| 11-Jul-2023 |
Louis Dionne <ldionne.2@gmail.com> |
[libc++] Fix clock selection in chrono.cpp and filesystem_clock.cpp
This patch partly reverts the change that was made in 5f1ba3a502 regarding the clock selection on Apple platforms. It turns out th
[libc++] Fix clock selection in chrono.cpp and filesystem_clock.cpp
This patch partly reverts the change that was made in 5f1ba3a502 regarding the clock selection on Apple platforms. It turns out that gettimeofday() is marked as obsolete by POSIX and clock_gettime() is recommended instead. Since both are equivalent for our purposes, prefer using clock_gettime() even on Apple platforms.
Differential Revision: https://reviews.llvm.org/D155022
show more ...
|
#
5f1ba3a5 |
| 04-Jul-2023 |
Louis Dionne <ldionne.2@gmail.com> |
[libc++] Synchronize clock selection between chrono.cpp and filesystem_clock.cpp
Note that _FilesystemClock will now be implemented by calling gettimeofday() on Apple platforms instead of clock_gett
[libc++] Synchronize clock selection between chrono.cpp and filesystem_clock.cpp
Note that _FilesystemClock will now be implemented by calling gettimeofday() on Apple platforms instead of clock_gettime(). However, since both are equivalent, this should not change the behavior on Apple platforms. There should be no behavior change on other platforms.
In addition to being a consistency clean up, this fixes some issues seen by folks as reported in https://reviews.llvm.org/D154390#4471924.
Differential Revision: https://reviews.llvm.org/D154457
show more ...
|
#
ba3619b9 |
| 03-Jul-2023 |
Louis Dionne <ldionne.2@gmail.com> |
[libc++] Avoid including things that require a filesystem in filesytem_clock.cpp
The filesystem clock implementation should be available regardless of whether a proper filesystem is available on the
[libc++] Avoid including things that require a filesystem in filesytem_clock.cpp
The filesystem clock implementation should be available regardless of whether a proper filesystem is available on the platform, so it makes sense to try and avoid including things that are inherently filesystem-y in the implementation of filesystem clock.
Differential Revision: https://reviews.llvm.org/D154390
show more ...
|
#
c7d3c844 |
| 12-Jun-2023 |
Louis Dionne <ldionne.2@gmail.com> |
[libc++] Split sources for <filesystem>
The operations.cpp file contained the implementation of a ton of functionality unrelated to just the filesystem operations, and filesystem_common.h contained
[libc++] Split sources for <filesystem>
The operations.cpp file contained the implementation of a ton of functionality unrelated to just the filesystem operations, and filesystem_common.h contained a lot of unrelated functionality as well.
Splitting this up into more files will make it possible in the future to support parts of <filesystem> (e.g. path) on systems where there is no notion of a filesystem.
Differential Revision: https://reviews.llvm.org/D152377
show more ...
|