[Patch][GCC12] Fortran/OpenMP: Add 'omp depobj' and 'depend(mutexinoutset:'
Jakub Jelinek
jakub@redhat.com
Wed Mar 17 18:29:36 GMT 2021
On Wed, Mar 17, 2021 at 07:19:29PM +0100, Tobias Burnus wrote:
> @@ -1831,6 +1852,7 @@ show_omp_node (int level, gfc_code *c)
> case EXEC_OMP_FLUSH: name = "FLUSH"; break;
> case EXEC_OMP_MASTER: name = "MASTER"; break;
> case EXEC_OMP_ORDERED: name = "ORDERED"; break;
> + case EXEC_OMP_DEPOBJ: name = "DEPBOBJ"; break;
s/DEPBOBJ/DEPOBJ/
> + || omp_clauses->depobj->ts.kind != 2*gfc_index_integer_kind
Formatting (several times), I think we should use 2 * gfc_index_integer_kind
> --- a/gcc/fortran/trans-openmp.c
> +++ b/gcc/fortran/trans-openmp.c
> @@ -2545,6 +2545,8 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses,
> tree decl = gfc_trans_omp_variable (n->sym, false);
> if (gfc_omp_privatize_by_reference (decl))
> decl = build_fold_indirect_ref (decl);
> + if (POINTER_TYPE_P (TREE_TYPE (decl)))
> + decl = build_fold_indirect_ref (decl);
I'm a little bit worried about this, are you sure it won't affect anything
but depobj?
> + int k = -1; /* omp_clauses->destroy */
> + if (!code->ext.omp_clauses->destroy)
> + switch (code->ext.omp_clauses->depobj_update != OMP_DEPEND_UNSET
> + ? code->ext.omp_clauses->depobj_update : n->u.depend_op)
> + {
> + case OMP_DEPEND_IN: k = GOMP_DEPEND_IN; break;
> + case OMP_DEPEND_OUT: k = GOMP_DEPEND_IN; break;
> + case OMP_DEPEND_INOUT: k = GOMP_DEPEND_IN; break;
> + case OMP_DEPEND_MUTEXINOUTSET: k = GOMP_DEPEND_MUTEXINOUTSET; break;
> + case OMP_DEPEND_DEPOBJ: k = GOMP_DEPEND_MUTEXINOUTSET; break;
Can depobj_update be OMP_DEPEND_DEPOBJ ?
Otherwise LGTM.
Jakub
More information about the Gcc-patches
mailing list