Commit Graph

76 Commits

Author SHA1 Message Date
Louis Dionne 65a422c81c [pstl] Make the default backend be the serial backend and always provide 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
2019-04-24 20:12:36 +00:00
Louis Dionne dcf4b9aee0 [pstl] Add a serial backend for the PSTL
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
2019-04-18 18:20:19 +00:00
Louis Dionne 4d88b17b3f [pstl] Remove the stdlib headers from the PSTL and move them to the tests
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
2019-04-16 14:38:08 +00:00
Louis Dionne ab38599bb1 [pstl] Setup the _PSTL_VERSION macro like _LIBCPP_VERSION, and add release notes
Reviewers: rodgert, MikeDvorskiy

Subscribers: mgorny, jkorous, dexonsmith, libcxx-commits

Tags: #libc

Differential Revision: https://reviews.llvm.org/D60464

llvm-svn: 358193
2019-04-11 17:08:55 +00:00
Louis Dionne 3dee12e4a5 [pstl] Move to single underscore-capital for macros and include guards
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
2019-04-10 19:51:40 +00:00
Louis Dionne 0352f201dd [pstl] Fix incorrect forward declaration of __pattern_unique_copy
The forward declaration didn't take an execution policy, but the
definition does.

llvm-svn: 358130
2019-04-10 19:48:18 +00:00
Louis Dionne 6d6fbc86c8 [pstl] Add missing forward declarations for equal
We added the 4-iterator variants of std::equal in r357613, but we
forgot to add the corresponding forward declarations.

llvm-svn: 358129
2019-04-10 19:35:42 +00:00
Louis Dionne e3e24ad25f Fix header inclusion order failures
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
2019-04-10 18:52:24 +00:00
Louis Dionne 8a497a958b [pstl] Improve the parallel version of std::equal
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
2019-04-03 17:34:57 +00:00
Louis Dionne a735985abe [pstl] Mangle the parallel_strict_scan backend function
llvm-svn: 357422
2019-04-01 19:34:09 +00:00
Louis Dionne 95c585e258 [pstl] Indent preprocessor directives as part of the clang-format rules
Summary:
Indenting preprocessor directives provides a significant gain in
readability. We do it for normal if statements, and it makes sense
to do it for preprocessor ifs too.

Reviewers: rodgert, MikeDvorskiy

Subscribers: jkorous, dexonsmith, jdoerfert, libcxx-commits

Differential Revision: https://reviews.llvm.org/D59767

llvm-svn: 357401
2019-04-01 15:21:46 +00:00
Louis Dionne c7c6413119 [pstl] Qualify calls to internal functions
This guards against unintended ADL issues.
Thanks to Thomas Rogers for the patch.

Differential Revision: https://reviews.llvm.org/D60009

llvm-svn: 357306
2019-03-29 20:11:24 +00:00
Louis Dionne 0408a7892e [pstl] Uglify internal names of the library
llvm-svn: 357203
2019-03-28 19:10:32 +00:00
Louis Dionne 1dd1b5d5f2 [pstl] Introduce forward declarations
Necessary when pstl is included from with <algorithm> and <numeric> to
prevent a partially declared standard library when pstl itself uses
algorithms from <algorithm> and <numeric>.

Also, this patch makes sure that configuration comes via standard headers.
Directly including pstl_config.h in implementation files is incompatible
with inclusion of pstl into a standard library implementation which
provides it's own library wide configuration and may configure the
library differently to the pstl_config.h used by the standalone
implementation.

Differential Revision: https://reviews.llvm.org/D59122

llvm-svn: 357189
2019-03-28 17:22:19 +00:00
Louis Dionne 3b62047b8b Restructure test suite to follow libc++ standard layout
Summary: Subsumes changes requested in https://reviews.llvm.org/D59110

Reviewers: EricWF, ldionne

Subscribers: mgorny, krytarowski, jfb, jdoerfert, libcxx-commits

Differential Revision: https://reviews.llvm.org/D59856

llvm-svn: 357124
2019-03-27 21:28:24 +00:00
Louis Dionne 65bd5d8aa3 [pstl][NFC] Remove some warnings
llvm-svn: 356945
2019-03-25 20:44:07 +00:00
Louis Dionne 524e5e9019 [PSTL][NFC] Add missing #include
llvm-svn: 356917
2019-03-25 16:20:49 +00:00
Louis Dionne 86d4ec756b [pstl] Call the right overload of std::equal with an execution policy
Thanks to Mikhail Dvorskiy for the patch.

Differential Revision: https://reviews.llvm.org/D59705

llvm-svn: 356891
2019-03-25 12:37:51 +00:00
Louis Dionne 6aad7945d7 [pstl] Fix missing parallel policy guards
Thanks to @jerryct for the patch.
Differential Revision: https://reviews.llvm.org/D57638

llvm-svn: 355161
2019-03-01 01:26:35 +00:00
Louis Dionne 28dc566701 [pstl] Remove some warnings when compiling with a recent Clang
There were multiple warnings for lambda captures that are unused, so
I removed those captures. I also fixed a couple of -Wsign-compare
warnings. Note that some warnings still remain, this change is not
exhaustive.

llvm-svn: 354148
2019-02-15 17:30:35 +00:00
Chandler Carruth 57b08b0944 Update more file headers across all of the LLVM projects in the monorepo
to reflect the new license. These used slightly different spellings that
defeated my regular expressions.

We understand that people may be surprised that we're moving the header
entirely to discuss the new license. We checked this carefully with the
Foundation's lawyer and we believe this is the correct approach.

Essentially, all code in the project is now made available by the LLVM
project under our new license, so you will see that the license headers
include that license only. Some of our contributors have contributed
code under our old license, and accordingly, we have retained a copy of
our old license notice in the top-level files in each project and
repository.

llvm-svn: 351648
2019-01-19 10:56:40 +00:00
Louis Dionne 8a7c2ab990 [pstl] Fix compile errors when PARALLEL_POLICIES is disabled
Reviewed as https://reviews.llvm.org/D56139.
Thanks to @jerryct for the patch.

llvm-svn: 350813
2019-01-10 11:23:33 +00:00
Louis Dionne 6b4cc66f9a [pstl] A fix of __pstl namespace usage for include/pstl/internal/glue_algorithm_defs.h
Reviewed as https://reviews.llvm.org/D55920

llvm-svn: 350723
2019-01-09 14:07:09 +00:00
Louis Dionne 1f66672515 [pstl] Avoid shadowing explicit lambda capture with lambda parameter
Summary:
Recent Clangs give an error for this. Note that the size of this diff is
caused by running clang-format on the result of removing the captures.
I guess we'll see how well that works for us.

Reviewers: jfb, rodgert

Subscribers: jkorous, dexonsmith, libcxx-commits, mclow.lists

Differential Revision: https://reviews.llvm.org/D55945

llvm-svn: 350544
2019-01-07 17:31:17 +00:00
Louis Dionne 436aa40a13 [NFC][pstl] Re-run Clang-format on the whole repository
llvm-svn: 349814
2018-12-20 20:28:56 +00:00
JF Bastien e637637ae4 Initial PSTL commit
The initial commit of the Parallel STL upstream (under LLVM umbrella) based on
Parallel STL 20181204 open source release, which is available by
https://github.com/intel/parallelstl

Author: Mikhail Dvorskiy <mikhail.dvorskiy@intel.com>

Differential Revision: https://reviews.llvm.org/D55889

llvm-svn: 349653
2018-12-19 17:45:32 +00:00