https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99928

--- Comment #18 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tobias Burnus <bur...@gcc.gnu.org>:

https://gcc.gnu.org/g:178191e1dfafd8db149edcdef7a39e9e2c00f216

commit r12-1206-g178191e1dfafd8db149edcdef7a39e9e2c00f216
Author: Tobias Burnus <tob...@codesourcery.com>
Date:   Fri Jun 4 12:06:59 2021 +0200

    Fortran/OpenMP: Add omp loop [PR99928]

            PR middle-end/99928

    gcc/fortran/ChangeLog:

            * dump-parse-tree.c (show_omp_clauses): Handle bind clause.
            (show_omp_node): Handle loop directive.
            * frontend-passes.c (gfc_code_walker): Likewise.
            * gfortran.h (enum gfc_statement): Add
            ST_OMP_(END_)(TARGET_)(|PARALLEL_|TEAMS_)LOOP.
            (enum gfc_omp_bind_type): New.
            (gfc_omp_clauses): Use it.
            (enum gfc_exec_op): Add EXEC_OMP_(TARGET_)(|PARALLEL_|TEAMS_)LOOP.
            * match.h (gfc_match_omp_loop, gfc_match_omp_parallel_loop,
            gfc_match_omp_target_parallel_loop,
gfc_match_omp_target_teams_loop,
            gfc_match_omp_teams_loop): New.
            * openmp.c (enum omp_mask1): Add OMP_CLAUSE_BIND.
            (gfc_match_omp_clauses): Handle it.
            (OMP_LOOP_CLAUSES, gfc_match_omp_loop, gfc_match_omp_teams_loop,
            gfc_match_omp_target_teams_loop, gfc_match_omp_parallel_loop,
            gfc_match_omp_target_parallel_loop): New.
            (resolve_omp_clauses, resolve_omp_do, omp_code_to_statement,
            gfc_resolve_omp_directive): Handle omp loop.
            * parse.c (decode_omp_directive case_exec_markers,
gfc_ascii_statement,
            parse_omp_do, parse_executable): Likewise.
            (parse_omp_structured_block): Remove ST_ which use parse_omp_do.
            * resolve.c (gfc_resolve_blocks): Add omp loop.
            * st.c (gfc_free_statement): Likewise.
            * trans-openmp.c (gfc_trans_omp_clauses): Handle bind clause.
            (gfc_trans_omp_do, gfc_trans_omp_parallel_do,
gfc_trans_omp_distribute,
            gfc_trans_omp_teams, gfc_trans_omp_target,
gfc_trans_omp_directive):
            Handle loop directive.
            (gfc_split_omp_clauses): Likewise; fix firstprivate/lastprivate
            and (in_)reduction for taskloop.
            * trans.c (trans_code): Handle omp loop directive.

    gcc/testsuite/ChangeLog:

            * gfortran.dg/gomp/pr99928-3.f90: Add 'default(none)', following
            C/C++ version of the patch.
            * gfortran.dg/gomp/loop-1.f90: New test.
            * gfortran.dg/gomp/loop-2.f90: New test.
            * gfortran.dg/gomp/pr99928-1.f90: New test; based on C/C++ test.
            * gfortran.dg/gomp/pr99928-11.f90: Likewise.
            * gfortran.dg/gomp/pr99928-2.f90: Likewise.
            * gfortran.dg/gomp/pr99928-4.f90: Likewise.
            * gfortran.dg/gomp/pr99928-5.f90: Likewise.
            * gfortran.dg/gomp/pr99928-6.f90: Likewise.
            * gfortran.dg/gomp/pr99928-8.f90: Likewise.
            * gfortran.dg/goacc/omp.f95: Use 'acc kernels loops' instead
            of 'acc loops' to hide unrelated bug for now.
            * gfortran.dg/goacc/omp-fixed.f: Likewise

Reply via email to