Ping (adding Thomas to CC as OpenACC maintainer)
On 2018/8/30 9:27 PM, Chung-Lin Tang wrote:
Hi, this patch properly handles OpenACC 'wait' clauses without arguments, making it an
equivalent of "wait all".
(current trunk basically discards and ignores such argument-less wait clauses)
This adds additional handling in
the pack/unpack of the wait argument across the compiler/libgomp interface, but
is done in a matter that
doesn't affect binary compatibility.
This patch was part of the OpenACC async re-work that was done on the gomp4
branch (later merged to OG7/OG8), see [1].
I'm separating this part out and submitting it first because it's logically
independent.
[1] https://gcc.gnu.org/ml/gcc-patches/2017-06/msg01842.html
Re-tested with offloading to ensure no regressions, is this okay for trunk?
Thanks,
Chung-Lin
2018-08-30 Chung-Lin Tang <clt...@codesourcery.com>
gcc/c/
* c-parser.c (c_parser_oacc_clause_wait): Add representation of wait
clause without argument as 'wait (GOMP_ASYNC_NOVAL)', adjust comments.
gcc/cp/
* parser.c (cp_parser_oacc_clause_wait): Add representation of wait
clause without argument as 'wait (GOMP_ASYNC_NOVAL)', adjust comments.
gcc/fortran/
* trans-openmp.c (gfc_trans_omp_clauses_1): Add representation of wait
clause without argument as 'wait (GOMP_ASYNC_NOVAL)'.
gcc/
* omp-low.c (expand_omp_target): Add middle-end support for handling
OMP_CLAUSE_WAIT clause with a GOMP_ASYNC_NOVAL(-1) as the argument.
include/
* gomp-constants.h (GOMP_LAUNCH_OP_MASK): Define.
(GOMP_LAUNCH_PACK): Add bitwise-and of GOMP_LAUNCH_OP_MASK.
(GOMP_LAUNCH_OP): Likewise.
libgomp/
* oacc-parallel.c (GOACC_parallel_keyed): Interpret launch op as
signed 16-bit field, adjust num_waits handling.
(GOACC_enter_exit_data): Adjust num_waits handling.
(GOACC_update): Adjust num_waits handling.