OpenMP: Fix allocator clause ICE and update documentation
Resolves compiler error for invalid OpenMP allocator clauses and cleans up documentation.
This commit addresses an internal compiler error (ICE) in OpenMP when an invalid or undeclared allocator is used in the ‘allocate’ clause. It also marks trait variables associated with ‘uses_allocators’ as read to prevent spurious ‘unused but set’ warnings. Additionally, documentation in libgomp.texi is updated to reflect C23 support, clarify memory management routines, and fix a broken URL.
In Details
The c-parser.cc and cp/parser.cc now handle error_mark_node for allocator clauses, preventing an ICE. Trait variables for uses_allocators are marked used to avoid false positives in death analysis. Libgomp.texi documentation is updated for uses_allocators C23 support, memory management functions, and nvptx target specifics.
- OpenMP
- A standardized API for shared-memory parallel programming. It consists of compiler directives, library routines, and environment variables.
- ICE
- Internal Compiler Error. A condition where the compiler encounters an unrecoverable state and typically aborts compilation.
- allocator clause
- An OpenMP clause that specifies a custom memory allocator for data structures or allocations within a parallel construct.
- uses_allocators
- An OpenMP trait that allows users to specify custom allocators for data transformations and operations, particularly for Unified Shared Memory (USM) in accelerators.
- libgomp
- GCC's implementation of the OpenMP runtime library.
- nvptx
- Nvidia Virtual Target Platform. A compiler backend target for Nvidia GPUs.