https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110842

Tobias Burnus <burnus at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |openmp

--- Comment #4 from Tobias Burnus <burnus at gcc dot gnu.org> ---
> libgomp has no support for loop iterators larger than 64-bit unsigned, and I 
> believe in OpenMP it is implementation defined which iterator type is used.

"The iterations of some number of associated loops can be collapsed into one
larger iteration space that is called the logical iteration space. The
particular integer type used to compute the iteration count for the collapsed
loop is implementation defined, but its bit precision must be at least that of3
the widest type that the implementation would use for the iteration count of
each loop if it was the only associated loop."

This sounds a bit as if it should be supported – but at the end it is
implementation defined.

However, I think it makes sense to document it as implementation defined in
libomp.texi – and to output a compile time error if we know that something is
not implemented.

* * *

For use the largest type used in the loop, see also OG13-only patch (originally
for OG-12): commit
https://gcc.gnu.org/g:90d8139007c69657325c5c187b0d47f463b455d1 "openmp: Scale
type precision of collapsed iterator variable"
But that won't help if libgomp does not support the integer type.

* * *

> C/C++ OpenMP loops with __int128 or unsigned __int128 iterator will not work 
> either (nor with _BitInt(575) or similar).

... and we likely don't want to support _BitInt iterators!

Reply via email to