aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/gfortran.h
diff options
context:
space:
mode:
authorTobias Burnus <tobias@codesourcery.com>2021-05-14 19:21:47 +0200
committerTobias Burnus <tobias@codesourcery.com>2021-05-14 19:21:47 +0200
commit0e3702f8daeec5897982d185650b78a5c1c53c25 (patch)
tree71d5ab38dc9b5a3312ee5df07f2d3aa1ed8d4111 /gcc/fortran/gfortran.h
parent62e1bd651f60cfe3daaad91b41b7612bc7fa7460 (diff)
downloadgcc-0e3702f8daeec5897982d185650b78a5c1c53c25.zip
gcc-0e3702f8daeec5897982d185650b78a5c1c53c25.tar.gz
gcc-0e3702f8daeec5897982d185650b78a5c1c53c25.tar.bz2
Fortran/OpenMP: Support 'omp parallel master'
gcc/fortran/ChangeLog: * dump-parse-tree.c (show_omp_node, show_code_node): Handle EXEC_OMP_PARALLEL_MASTER. * frontend-passes.c (gfc_code_walker): Likewise. * gfortran.h (enum gfc_statement): Add ST_OMP_PARALLEL_MASTER and ST_OMP_END_PARALLEL_MASTER. (enum gfc_exec_op): Add EXEC_OMP_PARALLEL_MASTER.. * match.h (gfc_match_omp_parallel_master): Handle it. * openmp.c (gfc_match_omp_parallel_master, resolve_omp_clauses, omp_code_to_statement, gfc_resolve_omp_directive): Likewise. * parse.c (decode_omp_directive, case_exec_markers, gfc_ascii_statement, parse_omp_structured_block, parse_executable): Likewise. * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise. * st.c (gfc_free_statement): Likewise. * trans-openmp.c (gfc_trans_omp_parallel_master, gfc_trans_omp_workshare, gfc_trans_omp_directive): Likewise. * trans.c (trans_code): Likewise. libgomp/ChangeLog: * testsuite/libgomp.fortran/parallel-master.f90: New test. gcc/testsuite/ChangeLog: * gfortran.dg/gomp/parallel-master-1.f90: New test. * gfortran.dg/gomp/parallel-master-2.f90: New test.
Diffstat (limited to 'gcc/fortran/gfortran.h')
-rw-r--r--gcc/fortran/gfortran.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h
index 4f5d2f8..bab785b 100644
--- a/gcc/fortran/gfortran.h
+++ b/gcc/fortran/gfortran.h
@@ -266,7 +266,8 @@ enum gfc_statement
ST_OMP_REQUIRES, ST_PROCEDURE, ST_GENERIC, ST_CRITICAL, ST_END_CRITICAL,
ST_GET_FCN_CHARACTERISTICS, ST_LOCK, ST_UNLOCK, ST_EVENT_POST,
ST_EVENT_WAIT, ST_FAIL_IMAGE, ST_FORM_TEAM, ST_CHANGE_TEAM,
- ST_END_TEAM, ST_SYNC_TEAM, ST_NONE
+ ST_END_TEAM, ST_SYNC_TEAM, ST_OMP_PARALLEL_MASTER,
+ ST_OMP_END_PARALLEL_MASTER, ST_NONE
};
/* Types of interfaces that we can have. Assignment interfaces are
@@ -2704,7 +2705,8 @@ enum gfc_exec_op
EXEC_OMP_TARGET_ENTER_DATA, EXEC_OMP_TARGET_EXIT_DATA,
EXEC_OMP_TARGET_PARALLEL, EXEC_OMP_TARGET_PARALLEL_DO,
EXEC_OMP_TARGET_PARALLEL_DO_SIMD, EXEC_OMP_TARGET_SIMD,
- EXEC_OMP_TASKLOOP, EXEC_OMP_TASKLOOP_SIMD, EXEC_OMP_SCAN, EXEC_OMP_DEPOBJ
+ EXEC_OMP_TASKLOOP, EXEC_OMP_TASKLOOP_SIMD, EXEC_OMP_SCAN, EXEC_OMP_DEPOBJ,
+ EXEC_OMP_PARALLEL_MASTER
};
typedef struct gfc_code