| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Like we do in libc++, PSTL needs the ability to constrain
ABI-unstable symbols to each translation unit. This is OFF by
default (like for libc++), because most people don't care about
this and there is a cost associated to enabling the option (code
bloat because templates are not deduped across TUs).
I'm using '#pragma clang attribute push' to avoid marking each
declaration with an attribute, which quickly becomes difficult
to maintain.
llvm-svn: 368684
|
|
|
|
|
|
|
|
|
| |
It makes more sense to name configuration options as PSTL_XXX.
Also, I'm naming it PSTL_PARALLEL_BACKEND because we might introduce
the ability to customize the vectorization backend, in which case
PSTL_BACKEND would become ambiguous.
llvm-svn: 368672
|
|
|
|
|
|
| |
We really need to do that consistently when applying patches.
llvm-svn: 368312
|
|
|
|
| |
llvm-svn: 368302
|
|
|
|
|
|
|
|
| |
Instead of silently falling back to the serial backend, it's better if
we fail loudly when the parallel backend is left unspecified. Since we
have a __pstl_config_site header, a backend should always be specified.
llvm-svn: 368285
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit adds a __pstl_config_site header that contains the value of
macros specified at CMake configuration time. It works similarly to
libc++'s __config_site header, except we always include it as a separate
file instead of concatenating it to the main configuration header.
It is necessary to thread the includes for that header into libc++'s
lit configuration, otherwise we'd be requiring an installation step
prior to running the test suite.
llvm-svn: 368284
|
|
|
|
|
|
| |
We want to install files directly in include/, not only in include/pstl.
llvm-svn: 368203
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 367928
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
Previously the code used "using namespace __pstl;" at block
scope to introduce these names. This could cause conflicts with
names defined by the standard library. So we should fully qualify
them instead.
llvm-svn: 367468
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 366492
|
|
|
|
| |
llvm-svn: 366491
|
|
|
|
| |
llvm-svn: 366490
|
|
|
|
|
|
| |
and clear the release notes.
llvm-svn: 366427
|
|
|
|
| |
llvm-svn: 366233
|
|
|
|
| |
llvm-svn: 366232
|
|
|
|
|
|
| |
Some types were not using the right namespace qualification.
llvm-svn: 366208
|
|
|
|
| |
llvm-svn: 365346
|
|
|
|
|
|
|
| |
Also, use a single point of customization to set what namespace __par_backend
"points to", which provides a better separation of concerns.
llvm-svn: 365337
|
|
|
|
| |
llvm-svn: 365218
|
|
|
|
| |
llvm-svn: 365158
|
|
|
|
|
|
|
| |
With the renaming that will happen, it's just a pain to maintain the
right names.
llvm-svn: 365156
|
|
|
|
| |
llvm-svn: 365152
|
|
|
|
| |
llvm-svn: 365150
|
|
|
|
|
|
|
|
|
| |
This is a stopgap measure to make it easier to integrate the PSTL into
libc++. In the future, we should have a system similar to what libc++
does, where we specify settings at configuration time and generate a
__config_site header that is part of the PSTL.
llvm-svn: 363958
|
|
|
|
|
|
| |
This is required to run the tests in lit with libc++'s tests.
llvm-svn: 363942
|
|
|
|
|
|
|
|
| |
Mostly unused parameter, unused local typedefs and shadowed declarations.
This massaging it necessary if we want to be able to run the tests under
the libc++ lit configuration.
llvm-svn: 363872
|
|
|
|
| |
llvm-svn: 363726
|
|
|
|
| |
llvm-svn: 363723
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
parallel backend.
Summary:
A modification of the parallel sorting algorithm, additionally optimized for a partially sorted array.
Reviewers: rodgert
ldionne
Differential Revision: https://reviews.llvm.org/D59925
llvm-svn: 362678
|
|
|
|
|
|
| |
'Obtaining Commit Access' rules (https://llvm.org/docs/DeveloperPolicy.html#obtaining-commit-access)
llvm-svn: 362362
|
|
|
|
|
|
|
| |
Most importantly, Clang doesn't seem to support the non-OpenMP pragmas
that were being used previously.
llvm-svn: 362155
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- unused parameter warnings
- don't use single-letter template parameter names, like we do in libc++
- sign-comparison warnings
- unused variables in the tests
- unused local typedefs in the tests
- the use of #include_next
- field reordering in the tests
- unused lambda captures
Note that the rationale for why the static_casts to unsigned are OK is
that last - first must always be non-negative, since [first, last) is
a valid range.
llvm-svn: 362148
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
parallel policies
Summary:
Before this change, the default backend was TBB but one could disable
anything related to TBB by removing the parallel policies. This change
uses the serial backend by default and removes the ability to disable
parallel policies, which is not useful anymore.
Reviewers: rodgert, MikeDvorskiy
Subscribers: mgorny, jkorous, dexonsmith, jdoerfert, libcxx-commits
Differential Revision: https://reviews.llvm.org/D59792
llvm-svn: 359134
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The serial backend performs all tasks serially and does not require
threads. It does not have any dependencies beyond normal C++, but
it is not very efficient either.
Reviewers: rodgert, MikeDvorskiy
Subscribers: mgorny, jkorous, dexonsmith, jdoerfert, libcxx-commits
Differential Revision: https://reviews.llvm.org/D59791
llvm-svn: 358700
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
PSTL should not provide those headers since they belong to the standard
library. Instead, we define a dummy standard library in the tests that
provides those headers.
Reviewers: rodgert, MikeDvorskiy
Subscribers: mgorny, jkorous, dexonsmith, libcxx-commits
Tags: #libc
Differential Revision: https://reviews.llvm.org/D60535
llvm-svn: 358497
|
|
|
|
| |
llvm-svn: 358302
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The TBBConfig file installed by TBB 2019 Update 5 works properly, so we
don't need this workaround anymore.
Reviewers: rodgert, MikeDvorskiy
Subscribers: mgorny, jkorous, dexonsmith, libcxx-commits
Tags: #libc
Differential Revision: https://reviews.llvm.org/D60467
llvm-svn: 358196
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: rodgert, MikeDvorskiy
Subscribers: mgorny, jkorous, dexonsmith, libcxx-commits
Tags: #libc
Differential Revision: https://reviews.llvm.org/D60464
llvm-svn: 358193
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Per the LLVM convention.
Reviewers: rodgert
Subscribers: jkorous, dexonsmith, jdoerfert, libcxx-commits
Tags: #libc
Differential Revision: https://reviews.llvm.org/D60521
llvm-svn: 358131
|
|
|
|
|
|
|
| |
The forward declaration didn't take an execution policy, but the
definition does.
llvm-svn: 358130
|
|
|
|
|
|
|
| |
We added the 4-iterator variants of std::equal in r357613, but we
forgot to add the corresponding forward declarations.
llvm-svn: 358129
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: See https://bugs.llvm.org/show_bug.cgi?id=41432
Subscribers: libcxx-commits
Tags: #libc
Differential Revision: https://reviews.llvm.org/D60525
llvm-svn: 358121
|
|
|
|
|
|
|
| |
This allows other projects to depend on PSTL using the classic CMake
find_package protocol.
llvm-svn: 358028
|
|
|
|
| |
llvm-svn: 358018
|
|
|
|
|
|
|
|
|
|
|
| |
When an execution policy is provided, we attempt to run std::equal in
parallel instead of always doing it serially.
Thanks to Mikhail Dvorskiy for the patch.
Differential Revision: https://reviews.llvm.org/D59813
llvm-svn: 357613
|
|
|
|
| |
llvm-svn: 357609
|