On 7/11/25 10:36 PM, Tobias Burnus wrote:
Now, finally pushed as r16-2213-g451b6dbf475959.
Tobias
On June 27, 2025, Tobias Burnus wrote:
Background: In real-world code, one can find:
!$ACC DECLARE COPYIN(c1es, c2es, ...)
as here for the ICON weather model. This clearly implies that other
compilers accept and, potentially, require those. For better
compatibility with real-world use, the just released OpenACC 3.4 now
permits PARAMETER but permits compilers to ignore those (remove them
when doing optimizations).
Thus, this patch permits now named constants (PARAMETER) as 'var'
in OpenACC [with an off-by-default warning in all but one case
(device_resident, no warning)] but then ignores them later.
If you look at the following patch, I think the following is ponder about:
* Does skipping over PARAMETERS (named constants) in trans-openmp.cc
clause handling will break some unrelated OpenACC or OpenMP code?
(In principle, resolving an expression should remove the parameter,
replacing it by its value. And the called trans-openmp.cc functions
also should only deal with non-expressions.)
* Does this handle for OpenACC all cases (or did I miss one?)
Does it handle too much for OpenACC (or OpenACC?)
* Do you think the warning handling is fine/consistent?
I think the patch should be fine, but, of course, I might have missed
something.
Comments, remarks, suggestions about this patch?
Tobias
See comment #2 in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121043
Maybe some tests to adjust?
Jerry