-
- Downloads
Fortran/OpenMP: Support most of 5.1 atomic extensions
Implements moste of OpenMP 5.1 atomic extensions, except that 'compare' is parsed but rejected during resolution. (As the trans-openmp.c handling is missing.) gcc/fortran/ChangeLog: * dump-parse-tree.c (show_omp_clauses): Handle weak/compare/fail clause. * gfortran.h (gfc_omp_clauses): Add weak, compare, fail. * openmp.c (enum omp_mask1, gfc_match_omp_clauses, OMP_ATOMIC_CLAUSES): Update for new clauses. (gfc_match_omp_atomic): Update for 5.1 atomic changes. (is_conversion): Support widening in one go. (is_scalar_intrinsic_expr): New. (resolve_omp_atomic): Update for 5.1 atomic changes. * parse.c (parse_omp_oacc_atomic): Update for compare. * resolve.c (gfc_resolve_blocks): Update asserts. * trans-openmp.c (gfc_trans_omp_atomic): Handle new clauses. gcc/testsuite/ChangeLog: * gfortran.dg/gomp/atomic-2.f90: Move now supported code to ... * gfortran.dg/gomp/atomic.f90: here. * gfortran.dg/gomp/atomic-10.f90: New test. * gfortran.dg/gomp/atomic-12.f90: New test. * gfortran.dg/gomp/atomic-15.f90: New test. * gfortran.dg/gomp/atomic-16.f90: New test. * gfortran.dg/gomp/atomic-17.f90: New test. * gfortran.dg/gomp/atomic-18.f90: New test. * gfortran.dg/gomp/atomic-19.f90: New test. * gfortran.dg/gomp/atomic-20.f90: New test. * gfortran.dg/gomp/atomic-22.f90: New test. * gfortran.dg/gomp/atomic-24.f90: New test. * gfortran.dg/gomp/atomic-25.f90: New test. * gfortran.dg/gomp/atomic-26.f90: New test. libgomp/ChangeLog * libgomp.texi (OpenMP 5.1): Update status.
Showing
- gcc/fortran/dump-parse-tree.c 18 additions, 0 deletionsgcc/fortran/dump-parse-tree.c
- gcc/fortran/gfortran.h 2 additions, 1 deletiongcc/fortran/gfortran.h
- gcc/fortran/openmp.c 371 additions, 207 deletionsgcc/fortran/openmp.c
- gcc/fortran/parse.c 16 additions, 3 deletionsgcc/fortran/parse.c
- gcc/fortran/resolve.c 2 additions, 7 deletionsgcc/fortran/resolve.c
- gcc/fortran/trans-openmp.c 12 additions, 1 deletiongcc/fortran/trans-openmp.c
- gcc/testsuite/gfortran.dg/gomp/atomic-10.f90 32 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/atomic-10.f90
- gcc/testsuite/gfortran.dg/gomp/atomic-12.f90 364 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/atomic-12.f90
- gcc/testsuite/gfortran.dg/gomp/atomic-15.f90 44 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/atomic-15.f90
- gcc/testsuite/gfortran.dg/gomp/atomic-16.f90 36 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/atomic-16.f90
- gcc/testsuite/gfortran.dg/gomp/atomic-17.f90 41 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/atomic-17.f90
- gcc/testsuite/gfortran.dg/gomp/atomic-18.f90 27 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/atomic-18.f90
- gcc/testsuite/gfortran.dg/gomp/atomic-19.f90 39 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/atomic-19.f90
- gcc/testsuite/gfortran.dg/gomp/atomic-2.f90 4 additions, 38 deletionsgcc/testsuite/gfortran.dg/gomp/atomic-2.f90
- gcc/testsuite/gfortran.dg/gomp/atomic-20.f90 39 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/atomic-20.f90
- gcc/testsuite/gfortran.dg/gomp/atomic-22.f90 24 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/atomic-22.f90
- gcc/testsuite/gfortran.dg/gomp/atomic-24.f90 13 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/atomic-24.f90
- gcc/testsuite/gfortran.dg/gomp/atomic-25.f90 53 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/atomic-25.f90
- gcc/testsuite/gfortran.dg/gomp/atomic-26.f90 75 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/atomic-26.f90
- gcc/testsuite/gfortran.dg/gomp/atomic.f90 36 additions, 4 deletionsgcc/testsuite/gfortran.dg/gomp/atomic.f90
Loading
Please register or sign in to comment