aboutsummaryrefslogtreecommitdiff
path: root/pstl
AgeCommit message (Collapse)AuthorFilesLines
2020-09-14[pstl] Support Threading Building Blocks 2020 (oneTBB) for "tbb" parallel ↵Dvorskiy, Mikhail1-79/+369
backend. After the changes the "tbb" parallel backend will work with old TBB versions(TBB_INTERFACE_VERSION <= 12000) and new ones (TBB 2020 and greater) More about oneTBB: https://github.com/oneapi-src/oneTBB Phabricator Review: https://reviews.llvm.org/D87380
2020-07-29[libc++][pstl] Remove c++98 from UNSUPPORTED annotationsLouis Dionne60-64/+64
c++98 isn't used by the test suite anymore, only c++03 is.
2020-07-22[CMake] Bump CMake minimum version to 3.13.4Louis Dionne1-1/+1
This upgrade should be friction-less because we've already been ensuring that CMake >= 3.13.4 is used. This is part of the effort discussed on llvm-dev here: http://lists.llvm.org/pipermail/llvm-dev/2020-April/140578.html Differential Revision: https://reviews.llvm.org/D78648
2020-07-15Bump the trunk major version to 12llvmorg-12-initHans Wennborg3-7/+7
and clear the release notes.
2020-07-08[pstl] Do not install the __config_site.in fileLouis Dionne1-1/+2
The generated version of the file is already installed -- we shouldn't install the pre-generation version of the file.
2020-07-08[pstl] Fix a few errors when running PSTL tests through the libc++ test suiteLouis Dionne3-23/+14
2020-05-18[pstl] A fix for move placement-new (and destroy) allocated objects from raw ↵Dvorskiy, Mikhail10-53/+507
memory. https://reviews.llvm.org/D74123 The fix affects follow algorithms: remove_if, unique, rotate, inplace_merge, partial_sort_copy, set_union, set_intersection, set_difference, set_symmetric_difference. For "is_trivial" types there are no problems with "creating objects/clean-up" For non-trivial types the algo results are also correct, but possible incorrect copying/moving "operator=" calls "by raw memory" within one of mentioned algo or incorrect destructor calls in the end of algo.
2020-04-15[pstl] Added missing double-underscore prefixes to some typesIsmail Pazarbasi1-7/+7
Summary: Some of the `move_` types were used with leading double-underscores, but they were declared without `__` prefix. This patch adds double-underscores to all `move_` types, and their uses. Reviewers: MikeDvorskiy, ldionne, EricWF, rodgert, #libc Reviewed By: MikeDvorskiy, ldionne, #libc Subscribers: dexonsmith, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D78040
2020-03-17[pstl] A hot fix for exclusive_scan (+ lost enable_if in declaration)Mikhail Dvorskiy3-6/+52
It fixes an ambiguity issue in case of a user has a custom policy and calls a version of exclusive_scan with binary operation. Differential Revision: https://reviews.llvm.org/D62719
2020-03-09[pstl] Clean up parameter uglificationsThomas Rodgers1-6/+6
Summary: These were overlooked on an earlier uglification pass. Differential Revision: https://reviews.llvm.org/D60595
2020-03-05[pstl] A cleanup fix for sort parallel algorithm.Dvorskiy, Mikhail1-114/+62
When one of sub-ranges has not been move constructed into a raw buffer, we should not call clean up for that sub-range. Instead of store detailed info about raw buffer history, the fix does the cleanup a sub-range after each moving the sub-range back. https://reviews.llvm.org/D73779
2020-02-24[arcconfig] Delete subproject arcconfigsShoaib Meenai1-4/+0
From https://secure.phabricator.com/book/phabricator/article/arcanist_new_project/: > An .arcconfig file is a JSON file which you check into your project's root. I've done some experimentation, and it looks like the subproject .arcconfigs just get ignored, as the documentation says. Given that we're fully on the monorepo now, it's safe to remove them. Differential Revision: https://reviews.llvm.org/D74996
2020-01-15Bump the trunk major version to 11llvmorg-11-initHans Wennborg3-7/+7
and clear the release notes.
2019-08-13[pstl] Allow customizing whether per-TU insulation is providedLouis Dionne22-0/+94
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
2019-08-13[pstl] Rename PARALLELSTL_BACKEND to PSTL_PARALLEL_BACKENDLouis Dionne2-6/+6
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
2019-08-08[NFC][pstl] Run clang-formatLouis Dionne1-39/+38
We really need to do that consistently when applying patches. llvm-svn: 368312
2019-08-08[pstl] Remove stray semicolonLouis Dionne1-1/+1
llvm-svn: 368302
2019-08-08[pstl] Error out when the backend is left unspecifiedLouis Dionne1-3/+1
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
2019-08-08[pstl] Add a __pstl_config_site header to record the CMake configurationLouis Dionne3-2/+28
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
2019-08-07[pstl] Make sure we install all of PSTL's include/ directoryLouis Dionne1-1/+1
We want to install files directly in include/, not only in include/pstl. llvm-svn: 368203
2019-08-06[pstl][libc++] Provide uglified header names for interface headersLouis Dionne4-0/+60
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
2019-08-05[NFC][pstl] Remove stray semi-colonLouis Dionne1-1/+1
llvm-svn: 367928
2019-08-05[libc++] Take 2: Integrate the PSTL into libc++Louis Dionne1-0/+2
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
2019-07-31[pstl] Fully qualify pstl names.Eric Fiselier3-404/+401
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
2019-07-19Revert "[libc++] Integrate the PSTL into libc++"Louis Dionne1-2/+0
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
2019-07-19[libc++] Integrate the PSTL into libc++Louis Dionne1-0/+2
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
2019-07-18[NFC][pstl] Run clang-format on the sources, including the testsLouis Dionne36-118/+108
llvm-svn: 366492
2019-07-18[pstl] Fix test that checked the version number after version bumpLouis Dionne1-2/+2
llvm-svn: 366491
2019-07-18[pstl] Declare main() as returning int, not int32_tLouis Dionne59-59/+59
llvm-svn: 366490
2019-07-18Bump the trunk version to 10.0.0svnllvmorg-10-initHans Wennborg2-8/+8
and clear the release notes. llvm-svn: 366427
2019-07-16[pstl] Use std::transform_reduce instead of hand-rolled implementationLouis Dionne1-5/+1
llvm-svn: 366233
2019-07-16[NFC] Fix -Wreorder warning in TBB backendLouis Dionne1-2/+2
llvm-svn: 366232
2019-07-16[pstl] Fix compilation with TBB backendLouis Dionne1-8/+8
Some types were not using the right namespace qualification. llvm-svn: 366208
2019-07-08[NFC][pstl] Remove unused utility codeLouis Dionne1-84/+0
llvm-svn: 365346
2019-07-08[pstl] Use a different namespace for each backendLouis Dionne5-21/+22
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
2019-07-05[pstl] Add missing includesLouis Dionne15-1/+24
llvm-svn: 365218
2019-07-04[pstl] Use utilities from <functional> instead of reinventing the wheelLouis Dionne6-100/+42
llvm-svn: 365158
2019-07-04[NFC][pstl] Do not name each header file in the leading commentLouis Dionne22-22/+22
With the renaming that will happen, it's just a pain to maintain the right names. llvm-svn: 365156
2019-07-04[NFC][pstl] Run clang-formatLouis Dionne3-30/+30
llvm-svn: 365152
2019-07-04[pstl] Make sure we include the pstl_config header in the glue headersLouis Dionne4-0/+7
llvm-svn: 365150
2019-06-20[pstl] Default to the serial backend when unspecifiedLouis Dionne1-1/+3
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
2019-06-20[pstl] Mark pstl tests as unsupported before C++17Louis Dionne59-2/+118
This is required to run the tests in lit with libc++'s tests. llvm-svn: 363942
2019-06-19[pstl] Remove warnings in tests and headersLouis Dionne41-118/+117
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
2019-06-18[pstl] Disable workarounds for broken ICC versions when using ClangLouis Dionne1-0/+2
llvm-svn: 363726
2019-06-18[pstl] Remove stray usage of pstl::execution instead of std::executionLouis Dionne4-7/+7
llvm-svn: 363723
2019-06-06[pstl] The optimized parallel versions of sort, stable_sort algorithms, TBB ↵Mikhail Dvorskiy3-156/+573
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
2019-06-03A test commit from Mikhail Dvorskiy (blank line, to pstl/trunk) according ↵Mikhail Dvorskiy1-0/+1
'Obtaining Commit Access' rules (https://llvm.org/docs/DeveloperPolicy.html#obtaining-commit-access) llvm-svn: 362362
2019-05-30[pstl] Use OpenMP pragmas with Clang, which supports themLouis Dionne1-1/+1
Most importantly, Clang doesn't seem to support the non-OpenMP pragmas that were being used previously. llvm-svn: 362155
2019-05-30[pstl] Remove various warnings in the pstl headers and testsLouis Dionne14-53/+57
- 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
2019-04-24[pstl] Make the default backend be the serial backend and always provide ↵Louis Dionne11-287/+20
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