summaryrefslogtreecommitdiff
path: root/pstl/include
Commit message (Collapse)AuthorAgeFilesLines
* [libc++][PSTL][NFC] Fix the naming in the SIMD backendNikolas Klauser2023-05-041-11/+11
| | | | | | | | Reviewed By: ldionne, #libc Spies: sstefan1, jplehr, libcxx-commits, miyuki Differential Revision: https://reviews.llvm.org/D149787
* Bump the trunk major version to 17llvmorg-17-initTom Stellard2023-01-241-1/+1
|
* Bump the trunk major version to 16llvmorg-16-initTom Stellard2022-07-261-1/+1
|
* [libc++] Use _LIBCPP_ASSERT by default for _PSTL_ASSERTionsNikolas Klauser2022-05-201-1/+6
| | | | | | | | Reviewed By: ldionne, #libc Spies: jwakely, rodgert, libcxx-commits Differential Revision: https://reviews.llvm.org/D125634
* Bump the trunk major version to 15llvmorg-15-initTom Stellard2022-02-011-1/+1
|
* [libc++][pstl][NFC] Remove usage of std::result_of from Parallel STLRuslan Arutyunyan2022-01-311-2/+2
| | | | | | | | | | | | | | | | std::result_of creates problems when building with C++20 because it's deprecated there. The solution is to remove it and get return value type for a function with decltype. Substitute std::invoke_result for std::result_of is unnecessary because we don't have std::invoke semantics within the function - we don't work with pointer-to-member's. Reviewed by: ldionne, MikeDvorskiy, #libc Differential Revision: https://reviews.llvm.org/D118457
* [libc++][pstl] Implement tag dispatching mechanism for Parallel STLRuslan Arutyunyan2022-01-2821-2338/+2241
| | | | | | | | | | Implement the mechanism that simplifies the execution policy/iterator category dispatching and allows to implement customizations for the parallel algorithms with adding custom tags Reviewed By: rodgert, MikeDvorskiy Differential Revision: https://reviews.llvm.org/D104492
* [pstl] Fix incorrect usage of std::invoke_resultRuslan Arutyunyan2021-11-261-4/+4
| | | | | | | | | | | | | | std::invoke_result takes function object type and arguments separately (unlike std::result_of) so, std::invoke_result_t<F()> usage is incorrect. On the other hand, we don't need std::invoke() semantics here at all. So just simplifying the code without extra dependency and use trailing return type as the fix. Reviewed By: MikeDvorskiy Differential Revision: https://reviews.llvm.org/D114624
* [pstl] A hot fix for a reduction parallel pattern of OpenMP backendMikhail Dvorskiy2021-10-271-0/+5
| | | | | | Reviewed By: nadiasvertex, ldionne Differential Revision: https://reviews.llvm.org/D112125
* [pstl] A hot compilation fix for MacOS, OpenMP backend; + full qualified ↵Mikhail Dvorskiy2021-10-275-19/+25
| | | | | | | | names for some internal functions Reviewed By: nadiasvertex, ldionne Differential Revision: https://reviews.llvm.org/D112528
* [pstl] Initial implementation of OpenMP backend, on behalf of Christopher ↵Mikhail Dvorskiy2021-10-1516-4/+1047
| | | | | | | | | Nelson nadiasvertex@gmail.com Phabricator Review: https://reviews.llvm.org/D99836 A couple of parallel patterns still remains serial - "Parallel partial sort", and "Parallel transform scan" - there are //TODOs in the code.
* Bump the trunk major version to 14llvmorg-14-initTom Stellard2021-07-271-1/+1
| | | | and clear the release notes.
* [pstl] Workaround more errors in the test suiteLouis Dionne2021-05-261-5/+1
|
* [pstl] Fix -Wundef errors in the test suiteLouis Dionne2021-05-267-46/+68
|
* [pstl] A hot fix forMikhail Dvorskiy2021-03-041-1/+1
| | | | | | | | | | Commit 5856f202 by Mikhail Dvorskiy, 02/13/2021 08:28 PM parent f515ca89 Iterator types renaming: ForwardIterator -> RandomAccessIterator; for parallel patterns/bricks https://reviews.llvm.org/D96266
* [pstl] Fix broken policy_traits and clean up unused codeLouis Dionne2021-03-031-82/+21
| | | | | | | https://llvm.org/PR47602 https://llvm.org/PR47601 Differential Revision: https://reviews.llvm.org/D97808
* [pstl] Iterator types renaming: ForwardIterator -> RandomAccessIterator; for ↵Mikhail Dvorskiy2021-02-135-677/+719
| | | | | | parallel patterns/bricks https://reviews.llvm.org/D96266
* Bump the trunk major version to 13llvmorg-13-initTom Stellard2021-01-261-1/+1
| | | | and clear the release notes.
* [pstl] Replace direct use of assert() with _PSTL_ASSERTThomas Rodgers2020-11-025-35/+38
| | | | | | | Standard libraries may (libstdc++ in particular) forbid direct use of assert()/<cassert> in library code. Differential Revision: https://reviews.llvm.org/D60249
* [pstl] Support Threading Building Blocks 2020 (oneTBB) for "tbb" parallel ↵Dvorskiy, Mikhail2020-09-141-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
* Bump the trunk major version to 12llvmorg-12-initHans Wennborg2020-07-151-1/+1
| | | | and clear the release notes.
* [pstl] Fix a few errors when running PSTL tests through the libc++ test suiteLouis Dionne2020-07-081-3/+3
|
* [pstl] A fix for move placement-new (and destroy) allocated objects from raw ↵Dvorskiy, Mikhail2020-05-183-38/+267
| | | | | | | | | | | | 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.
* [pstl] Added missing double-underscore prefixes to some typesIsmail Pazarbasi2020-04-151-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
* [pstl] A hot fix for exclusive_scan (+ lost enable_if in declaration)Mikhail Dvorskiy2020-03-172-6/+14
| | | | | | | 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
* [pstl] Clean up parameter uglificationsThomas Rodgers2020-03-091-6/+6
| | | | | | Summary: These were overlooked on an earlier uglification pass. Differential Revision: https://reviews.llvm.org/D60595
* [pstl] A cleanup fix for sort parallel algorithm.Dvorskiy, Mikhail2020-03-051-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
* Bump the trunk major version to 11llvmorg-11-initHans Wennborg2020-01-151-1/+1
| | | | and clear the release notes.
* [pstl] Allow customizing whether per-TU insulation is providedLouis Dionne2019-08-1321-0/+92
| | | | | | | | | | | | | | 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
* [NFC][pstl] Run clang-formatLouis Dionne2019-08-081-39/+38
| | | | | | We really need to do that consistently when applying patches. llvm-svn: 368312
* [pstl] Remove stray semicolonLouis Dionne2019-08-081-1/+1
| | | | llvm-svn: 368302
* [pstl] Error out when the backend is left unspecifiedLouis Dionne2019-08-081-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
* [pstl] Add a __pstl_config_site header to record the CMake configurationLouis Dionne2019-08-082-0/+17
| | | | | | | | | | | | | 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
* [pstl][libc++] Provide uglified header names for interface headersLouis Dionne2019-08-064-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
* [NFC][pstl] Remove stray semi-colonLouis Dionne2019-08-051-1/+1
| | | | llvm-svn: 367928
* [pstl] Fully qualify pstl names.Eric Fiselier2019-07-313-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
* [NFC][pstl] Run clang-format on the sources, including the testsLouis Dionne2019-07-182-4/+5
| | | | llvm-svn: 366492
* Bump the trunk version to 10.0.0svnllvmorg-10-initHans Wennborg2019-07-181-1/+1
| | | | | | and clear the release notes. llvm-svn: 366427
* [pstl] Use std::transform_reduce instead of hand-rolled implementationLouis Dionne2019-07-161-5/+1
| | | | llvm-svn: 366233
* [NFC] Fix -Wreorder warning in TBB backendLouis Dionne2019-07-161-2/+2
| | | | llvm-svn: 366232
* [pstl] Fix compilation with TBB backendLouis Dionne2019-07-161-8/+8
| | | | | | Some types were not using the right namespace qualification. llvm-svn: 366208
* [NFC][pstl] Remove unused utility codeLouis Dionne2019-07-081-84/+0
| | | | llvm-svn: 365346
* [pstl] Use a different namespace for each backendLouis Dionne2019-07-085-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
* [pstl] Add missing includesLouis Dionne2019-07-0515-1/+24
| | | | llvm-svn: 365218
* [pstl] Use utilities from <functional> instead of reinventing the wheelLouis Dionne2019-07-043-86/+28
| | | | llvm-svn: 365158
* [NFC][pstl] Do not name each header file in the leading commentLouis Dionne2019-07-0422-22/+22
| | | | | | | With the renaming that will happen, it's just a pain to maintain the right names. llvm-svn: 365156
* [NFC][pstl] Run clang-formatLouis Dionne2019-07-043-30/+30
| | | | llvm-svn: 365152
* [pstl] Make sure we include the pstl_config header in the glue headersLouis Dionne2019-07-044-0/+7
| | | | llvm-svn: 365150
* [pstl] Default to the serial backend when unspecifiedLouis Dionne2019-06-201-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
* [pstl] Remove warnings in tests and headersLouis Dionne2019-06-192-9/+8
| | | | | | | | 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