Hi everyone,

Let me explain a reason of the issue connected with _PSTL_USAGE_WARNINGS macro 
with GCC14.

Firstly, there is no such issue on version GCC 13.2.0, because 
_PSTL_PRAGMA_MESSAGE is defined in #pragma message only if _PSTL_USAGE_WARNINGS 
> 0, please have a look:
https://github.com/gcc-mirror/gcc/blob/releases/gcc-13.2.0/libstdc%2B%2B-v3/include/pstl/pstl_config.h#L160

On GCC trunk there is another preprocessor logic - _PSTL_PRAGMA_MESSAGE is 
defined in #pragma message when _PSTL_USAGE_WARNINGS is merely defined.
https://github.com/gcc-mirror/gcc/blame/9693459e030977d6e906ea7eb587ed09ee4fddbd/libstdc%2B%2B-v3/include/pstl/pstl_config.h#L180
 
while _PSTL_USAGE_WARNINGS is defined to 0 by default:
https://github.com/gcc-mirror/gcc/blame/9693459e030977d6e906ea7eb587ed09ee4fddbd/libstdc%2B%2B-v3/include/pstl/pstl_config.h#L29

Best regards,
Mikhail Dvorskiy

-----Original Message-----
From: Jonathan Wakely <jwak...@redhat.com> 
Sent: Saturday, January 13, 2024 12:20 PM
To: Pilar Latiesa <pilarlati...@gmail.com>
Cc: libstd...@gcc.gnu.org; gcc-patches@gcc.gnu.org
Subject: Re: [PATCH] libstdc++: Make PSTL algorithms accept C++20 iterators 
[PR110512]

On Sat, 13 Jan 2024 at 09:36, Pilar Latiesa <pilarlati...@gmail.com> wrote:
>
> Hi Jonathan
>
> Thanks so much for implementing this.
>
> There are a couple of typos in the patch description: 
> 's/C==17RandomAccessIterator/Cpp17RandomAccessIterator/' and 
> 's/__or_/__and_/'.

Thanks for the comments, I'll fix those.

>
> I've applied your patch localy and it works fine for all my use cases, which 
> admitedly simply consist of using views::zip and views::enumerate with 
> std::for_each. My tbb version is 2020.1.

Thanks for checking it, all feedback is useful.

>
> Unrelated to your patch, with GCC 14, I'm getting a ton of notes for code 
> like:
>
> void f(std::vector<int> &v)
>   { std::for_each(std::execution::par, v.begin(), v.end(), [](int &i) 
> { i *= 2; }); }
>
> indicating that some internal functions are not vectorized.
>
> I very much like getting warnings if an algorithm happens to fall back to its 
> serial version, but in this case I didn't even asked for (unseq) 
> vectorization, yet I got bunch of notes: "Vectorized algorithm unimplemented, 
> redirected to serial" and the algorithm itself is indeed parallelized.
>
> The notes are so confusing that I would suggest undefining 
> _PSTL_USAGE_WARNINGS for G++ (in fact, I don't understand the logic that uses 
> this macro in pstl_config.h).

Yeah, I've seen some of those, and I'm afraid I don't have any ideas about them 
for now. Could you report it to bugzilla so we don't forget to look into it? 
Thanks!

Intel Deutschland GmbH
Registered Address: Am Campeon 10, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de>
Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva  
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928

Reply via email to