Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

P1001R2 execution::unseq #44

Closed
StephanTLavavej opened this issue Sep 6, 2019 · 0 comments · Fixed by #1111
Closed

P1001R2 execution::unseq #44

StephanTLavavej opened this issue Sep 6, 2019 · 0 comments · Fixed by #1111
Labels
cxx20 C++20 feature fixed Something works now, yay!
Milestone

Comments

@StephanTLavavej
Copy link
Member

StephanTLavavej commented Sep 6, 2019

P1001R2 execution::unseq

This may need support from the compiler back-end (tracked by Microsoft-internal VSO-1143256).

Feature-test macro as of WG21-N4842 (increased from current value; note that this value differs from the "suggestion" in WG21-P1001):
#define __cpp_lib_execution 201902L

@StephanTLavavej StephanTLavavej added the cxx20 C++20 feature label Sep 6, 2019
@cbezault cbezault added this to the Conformance milestone May 7, 2020
BillyONeal added a commit to BillyONeal/STL that referenced this issue Jul 30, 2020
<execution>
* Add sequenced_policy and unseq.
* Mark sequenced_policy as being an execution policy.
* Add detection for this new policy to std::for_each and std::for_each_n, and use #pragma loop(ivdep) when supplied. We are not marking other algorithms because all other algorithms have something that makes the operative loop body not actually independent and the docs for #pragma loop(ivdep) suggest that is not allowed.
* Remove #pragma loop(ivdep) from std::transform because transform is callable such that _Dest == _First1 or _Dest == _First2.

<yvals_core.h>
* Mark proposal as implemented and change __cpp_lib_execution when C++20 is turned on.

instantiate_algorithms.hpp:
* Add unseq to execution policy matricies.

P0024R2_parallel_algorithms_for_each:
* Add testing for unseq.

VSO_0157762_feature_test_macros:
* Update test for new value of __cpp_lib_execution.
BillyONeal added a commit to BillyONeal/STL that referenced this issue Jul 30, 2020
<execution>
* Add sequenced_policy and unseq.
* Mark sequenced_policy as being an execution policy.
* Add detection for this new policy to std::for_each and std::for_each_n, and use #pragma loop(ivdep) when supplied. We are not marking other algorithms because all other algorithms have something that makes the operative loop body not actually independent and the docs for #pragma loop(ivdep) suggest that is not allowed.
* Remove #pragma loop(ivdep) from std::transform because transform is callable such that _Dest == _First1 or _Dest == _First2.

<yvals_core.h>
* Mark proposal as implemented and change __cpp_lib_execution when C++20 is turned on.

instantiate_algorithms.hpp:
* Add unseq to execution policy matricies.

P0024R2_parallel_algorithms_for_each:
* Add testing for unseq.

VSO_0157762_feature_test_macros:
* Update test for new value of __cpp_lib_execution.
StephanTLavavej pushed a commit that referenced this issue Aug 2, 2020
@StephanTLavavej StephanTLavavej added fixed Something works now, yay! and removed work in progress labels Aug 2, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cxx20 C++20 feature fixed Something works now, yay!
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants