[PATCH] Synchronize libstdc++ parallel algorithms with upstream project

Jonathan Wakely jwakely@redhat.com
Wed May 29 22:56:00 GMT 2019


On 29/05/19 23:53 +0100, Jonathan Wakely wrote:
>On 29/05/19 15:32 -0700, Thomas Rodgers wrote:
>>	* include/pstl/algorithm_fwd.h: Synchronize with
>>	upstream PSTL project.
>>	* include/pstl/algorithm_impl.h: Likewise.
>>	* include/pstl/execution_defs.h: Likewise.
>>	* include/pstl/execution_impl.h: Likewise.
>>	* include/pstl/glue_algorithm_impl.h: Likewise.
>>	* include/pstl/glue_execution_defs.h: Likewise.
>>	* include/pstl/numeric_fwd.h: Likewise.
>>	* include/pstl/numeric_impl.h: Likewise.
>>	* include/pstl/parallel_backend.h: Likewise.
>>	* include/pstl/pstl_config.h: Likewise.
>>	* include/pstl/unseq_backend_simd.h: Likewise.
>>	* include/pstl/parallel_backend_serial.h: New file.
>>	* include/Makefile.am (pstl_headers): Add
>>	parallel_backend_serial.h.
>>	* include/Makefile.in: Regenerate.
>>
>>
>
>A couple of non-uglified names crept in, "f" and "n":
>
>template <class _ExecutionPolicy, class _ForwardIterator1, class _Size, class _ForwardIterator2, class _Function,
>          class _IsVector>
>_ForwardIterator2
>-__pattern_walk2_n(_ExecutionPolicy&&, _ForwardIterator1 __first1, _Size __n, _ForwardIterator2 __first2, _Function __f,
>+__pattern_walk2_n(_ExecutionPolicy&&, _ForwardIterator1 __first1, _Size n, _ForwardIterator2 __first2, _Function f,
>                  _IsVector is_vector, /*parallel=*/std::false_type) noexcept
>{
>-    return __internal::__brick_walk2_n(__first1, __n, __first2, __f, is_vector);
>+    return __internal::__brick_walk2_n(__first1, n, __first2, f, is_vector);
>}
>
>template <class _ExecutionPolicy, class _RandomAccessIterator1, class _Size, class _RandomAccessIterator2,
>          class _Function, class _IsVector>
>_RandomAccessIterator2
>-__pattern_walk2_n(_ExecutionPolicy&& __exec, _RandomAccessIterator1 __first1, _Size __n, _RandomAccessIterator2 __first2,
>-                  _Function __f, _IsVector __is_vector, /*parallel=*/std::true_type)
>+__pattern_walk2_n(_ExecutionPolicy&& __exec, _RandomAccessIterator1 __first1, _Size n, _RandomAccessIterator2 __first2,
>+                  _Function f, _IsVector is_vector, /*parallel=*/std::true_type)
>{
>
>
>"n" is actually a reserved name (it's a member function of the
>chi_squared_distribution and the fisher_f_distribution) but for
>consistency we should uglify it here. And "f" isn't a reserve name at
>all.

OK for trunk with the "n" and "f" fixes, the pre-existing stuff can be
fixed later.


>Also as mentioned on IRC< there are pre-existing uses of _T which
>should be _Tp (because _T is a macro in some BSD system ehaders IIRC)
>and there are also local variables called copy_range1 and copy_range2
>which should be uglified.
>
>



More information about the Libstdc++ mailing list