-
- Downloads
Fortran: Implement OpenMP 5.1 scope construct
Fortran version to commit e45483c7, which implemented OpenMP's scope construct for C and C++. Most testcases are based on the C testcases; it also contains some testcases which existed previously but had no Fortran equivalent. gcc/fortran/ChangeLog: * dump-parse-tree.c (show_omp_node, show_code_node): Handle EXEC_OMP_SCOPE. * gfortran.h (enum gfc_statement): Add ST_OMP_(END_)SCOPE. (enum gfc_exec_op): Add EXEC_OMP_SCOPE. * match.h (gfc_match_omp_scope): New. * openmp.c (OMP_SCOPE_CLAUSES): Define (gfc_match_omp_scope): New. (gfc_match_omp_cancellation_point, gfc_match_omp_end_nowait): Improve error diagnostic. (omp_code_to_statement): Handle ST_OMP_SCOPE. (gfc_resolve_omp_directive): Handle EXEC_OMP_SCOPE. * parse.c (decode_omp_directive, next_statement, gfc_ascii_statement, parse_omp_structured_block, parse_executable): Handle OpenMP's scope construct. * resolve.c (gfc_resolve_blocks): Likewise * st.c (gfc_free_statement): Likewise * trans-openmp.c (gfc_trans_omp_scope): New. (gfc_trans_omp_directive): Call it. * trans.c (trans_code): handle EXEC_OMP_SCOPE. libgomp/ChangeLog: * testsuite/libgomp.fortran/scope-1.f90: New test. * testsuite/libgomp.fortran/task-reduction-16.f90: New test. gcc/testsuite/ChangeLog: * gfortran.dg/gomp/scan-1.f90: * gfortran.dg/gomp/cancel-1.f90: New test. * gfortran.dg/gomp/cancel-4.f90: New test. * gfortran.dg/gomp/loop-4.f90: New test. * gfortran.dg/gomp/nesting-1.f90: New test. * gfortran.dg/gomp/nesting-2.f90: New test. * gfortran.dg/gomp/nesting-3.f90: New test. * gfortran.dg/gomp/nowait-1.f90: New test. * gfortran.dg/gomp/reduction-task-1.f90: New test. * gfortran.dg/gomp/reduction-task-2.f90: New test. * gfortran.dg/gomp/reduction-task-2a.f90: New test. * gfortran.dg/gomp/reduction-task-3.f90: New test. * gfortran.dg/gomp/scope-1.f90: New test. * gfortran.dg/gomp/scope-2.f90: New test.
Showing
- gcc/fortran/dump-parse-tree.c 3 additions, 0 deletionsgcc/fortran/dump-parse-tree.c
- gcc/fortran/gfortran.h 2 additions, 2 deletionsgcc/fortran/gfortran.h
- gcc/fortran/match.h 1 addition, 0 deletionsgcc/fortran/match.h
- gcc/fortran/openmp.c 21 additions, 2 deletionsgcc/fortran/openmp.c
- gcc/fortran/parse.c 11 additions, 2 deletionsgcc/fortran/parse.c
- gcc/fortran/resolve.c 2 additions, 0 deletionsgcc/fortran/resolve.c
- gcc/fortran/st.c 1 addition, 0 deletionsgcc/fortran/st.c
- gcc/fortran/trans-openmp.c 20 additions, 0 deletionsgcc/fortran/trans-openmp.c
- gcc/fortran/trans.c 1 addition, 0 deletionsgcc/fortran/trans.c
- gcc/testsuite/gfortran.dg/gomp/cancel-1.f90 539 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/cancel-1.f90
- gcc/testsuite/gfortran.dg/gomp/cancel-4.f90 9 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/cancel-4.f90
- gcc/testsuite/gfortran.dg/gomp/loop-4.f90 279 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/loop-4.f90
- gcc/testsuite/gfortran.dg/gomp/nesting-1.f90 68 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/nesting-1.f90
- gcc/testsuite/gfortran.dg/gomp/nesting-2.f90 165 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/nesting-2.f90
- gcc/testsuite/gfortran.dg/gomp/nesting-3.f90 347 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/nesting-3.f90
- gcc/testsuite/gfortran.dg/gomp/nowait-1.f90 19 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/nowait-1.f90
- gcc/testsuite/gfortran.dg/gomp/reduction-task-1.f90 112 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/reduction-task-1.f90
- gcc/testsuite/gfortran.dg/gomp/reduction-task-2.f90 45 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/reduction-task-2.f90
- gcc/testsuite/gfortran.dg/gomp/reduction-task-2a.f90 30 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/reduction-task-2a.f90
- gcc/testsuite/gfortran.dg/gomp/reduction-task-3.f90 15 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/reduction-task-3.f90
Loading
Please register or sign in to comment