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

Reply via email to