Skip to content

Commit b159176

Browse files
committed
Committing Parallel STL 20181004 open source release
1 parent 38aa8ab commit b159176

File tree

8 files changed

+65
-53
lines changed

8 files changed

+65
-53
lines changed

CHANGES

+10
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
------------------------------------------------------------------------
22
The list of most significant changes made over time in Parallel STL.
33

4+
Parallel STL 20181004 release
5+
PSTL_VERSION == 201
6+
7+
Features / APIs:
8+
9+
- Fixed a number of algorithms to work with mutable function objects.
10+
- Fixed algorithms to throw std::bad_alloc when additional memory cannot
11+
be obtained.
12+
13+
------------------------------------------------------------------------
414
Parallel STL release within Intel(R) Parallel Studio XE 2019
515
PSTL_VERSION == 200
616

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Parallel STL
2-
[![Stable release](https://img.shields.io/badge/version-20180912-green.svg)](https://github.com/intel/parallelstl/releases/tag/20180912)
2+
[![Stable release](https://img.shields.io/badge/version-20181004-green.svg)](https://github.com/intel/parallelstl/releases/tag/20181004)
33
[![Apache License Version 2.0](https://img.shields.io/badge/license-Apache_2.0-green.svg)](LICENSE)
44

55
Parallel STL is an implementation of the C++ standard library algorithms with support for execution policies,

build/icl.inc

+2
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,5 @@ CPLUS_FLAGS += $(QKEY)openmp-simd
2828
CPLUS_FLAGS += $(FQKEY)MMD
2929
CPLUS_FLAGS += $(FQKEY)std=$(stdver)
3030
CPLUS_FLAGS += $(QKEY)opt-report:$(vecreport) $(QKEY)opt-report-phase:vec $(QKEY)opt-report-phase:loop
31+
32+
DISABLED_WARNINGS = $(QKEY)diag-disable:2586 #use comma-separated values to specify multiple entries

include/pstl/internal/algorithm_impl.h

+46-46
Large diffs are not rendered by default.

include/pstl/internal/numeric_impl.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ _Tp pattern_transform_reduce(_ForwardIterator1 __first1, _ForwardIterator1 __las
5959

6060
template<class _RandomAccessIterator1, class _RandomAccessIterator2, class _Tp, class _BinaryOperation1, class _BinaryOperation2,
6161
class _IsVector>
62-
_Tp pattern_transform_reduce(_RandomAccessIterator1 __first1, _RandomAccessIterator1 __last1, _RandomAccessIterator2 __first2, _Tp __init, _BinaryOperation1 __binary_op1, _BinaryOperation2 __binary_op2, _IsVector __is_vector, /*is_parallel=*/std::true_type) noexcept {
62+
_Tp pattern_transform_reduce(_RandomAccessIterator1 __first1, _RandomAccessIterator1 __last1, _RandomAccessIterator2 __first2, _Tp __init, _BinaryOperation1 __binary_op1, _BinaryOperation2 __binary_op2, _IsVector __is_vector, /*is_parallel=*/std::true_type) {
6363
return internal::except_handler([&]() {
6464
return par_backend::parallel_transform_reduce(__first1, __last1,
6565
[__first1, __first2, __binary_op2](_RandomAccessIterator1 __i) mutable
@@ -182,7 +182,7 @@ pattern_transform_scan(_RandomAccessIterator __first, _RandomAccessIterator __la
182182
_IsVector __is_vector, /*is_parallel=*/std::true_type ) {
183183
typedef typename std::iterator_traits<_RandomAccessIterator>::difference_type _DifferenceType;
184184

185-
return internal::except_handler([=]() {
185+
return internal::except_handler([&]() {
186186
par_backend::parallel_transform_scan(
187187
__last-__first,
188188
[__first, __unary_op](_DifferenceType __i) mutable {return __unary_op(__first[__i]); },
@@ -207,7 +207,7 @@ pattern_transform_scan(_RandomAccessIterator __first, _RandomAccessIterator __la
207207
if (__n <= 0) {
208208
return __result;
209209
}
210-
return except_handler([=, &__binary_op]() {
210+
return except_handler([&]() {
211211
par_backend::parallel_strict_scan(__n, __init,
212212
[__first, __unary_op, __binary_op, __result, __is_vector](_DifferenceType __i, _DifferenceType __len) {
213213
return brick_transform_scan(__first + __i, __first + (__i + __len), __result + __i, __unary_op, _Tp{}, __binary_op, _Inclusive(), __is_vector).second;

include/pstl/internal/pstl_config.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
#ifndef __PSTL_config_H
2222
#define __PSTL_config_H
2323

24-
#define PSTL_VERSION 200
24+
#define PSTL_VERSION 201
2525
#define PSTL_VERSION_MAJOR (PSTL_VERSION/100)
2626
#define PSTL_VERSION_MINOR (PSTL_VERSION - PSTL_VERSION_MAJOR * 100)
2727

include/pstl/internal/utils.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ typename std::iterator_traits<_Iterator>::pointer reduce_to_ptr(_Iterator __it)
7474
//! Unary operator that returns reference to its argument.
7575
struct no_op {
7676
template<typename _Tp>
77-
_Tp& operator()(_Tp& __a) const { return __a; }
77+
_Tp&& operator()(_Tp&& __a) const { return std::forward<_Tp>(__a); }
7878
};
7979

8080
//! Logical negation of a predicate

test/pstl_test_config.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
#define __PSTL_ICC_16_VC14_TEST_SIMD_LAMBDA_DEBUG_32_BROKEN (_M_IX86 && _DEBUG && __INTEL_COMPILER >= 1600 && __INTEL_COMPILER < 1700 && _MSC_VER == 1900)
3535
#define __PSTL_ICC_16_VC14_TEST_PAR_TBB_RT_RELEASE_64_BROKEN (__PSTL_USE_PAR_POLICIES && ((_M_X64 && _MSC_VER == 1900) || __x86_64) && !_DEBUG && __INTEL_COMPILER < 1700)
3636
#define __PSTL_ICC_16_17_TEST_64_TIMEOUT (__x86_64 && __INTEL_COMPILER && __INTEL_COMPILER < 1800 && !__APPLE__)
37-
#define __PSTL_ICC_18_TEST_EARLY_EXIT_MONOTONIC_RELEASE_BROKEN (!_DEBUG && __INTEL_COMPILER && (__INTEL_COMPILER == 1800 || __INTEL_COMPILER == 1900))
37+
#define __PSTL_ICC_18_TEST_EARLY_EXIT_MONOTONIC_RELEASE_BROKEN (!_DEBUG && __INTEL_COMPILER && __INTEL_COMPILER == 1800)
3838
#define __PSTL_CLANG_TEST_BIG_OBJ_DEBUG_32_BROKEN (__i386__ && PSTL_USE_DEBUG && __clang__ && __PSTL_CLANG_VERSION <= 90000)
3939
#define __PSTL_ICC_16_17_18_TEST_UNIQUE_MASK_RELEASE_BROKEN (!_DEBUG && __INTEL_COMPILER && (__INTEL_COMPILER < 1800 || (__INTEL_COMPILER == 1800 && __INTEL_COMPILER_UPDATE < 3)))
4040
#define __PSTL_ICC_18_TEST_EARLY_EXIT_AVX_RELEASE_BROKEN (!_DEBUG && __INTEL_COMPILER == 1800 && __AVX__ && !__AVX2__ && !__AVX512__)

0 commit comments

Comments
 (0)