openmp, fortran: Add Fortran support for indirect clause on the declare target directive
2024-02-15 Kwok Cheung Yeung <kcyeung@baylibre.com> gcc/fortran/ * dump-parse-tree.cc (show_attr): Handle omp_declare_target_indirect attribute. * f95-lang.cc (gfc_gnu_attributes): Add entry for 'omp declare target indirect'. * gfortran.h (symbol_attribute): Add omp_declare_target_indirect field. (struct gfc_omp_clauses): Add indirect field. * openmp.cc (omp_mask2): Add OMP_CLAUSE_INDIRECT. (gfc_match_omp_clauses): Match indirect clause. (OMP_DECLARE_TARGET_CLAUSES): Add OMP_CLAUSE_INDIRECT. (gfc_match_omp_declare_target): Check omp_device_type and apply omp_declare_target_indirect attribute to symbol if indirect clause active. Show warning if there are only device_type and/or indirect clauses on the directive. * trans-decl.cc (add_attributes_to_decl): Add 'omp declare target indirect' attribute if symbol has indirect attribute set. gcc/testsuite/ * gfortran.dg/gomp/declare-target-4.f90 (f1): Update expected warning. * gfortran.dg/gomp/declare-target-indirect-1.f90: New. * gfortran.dg/gomp/declare-target-indirect-2.f90: New. libgomp/ * testsuite/libgomp.fortran/declare-target-indirect-1.f90: New. * testsuite/libgomp.fortran/declare-target-indirect-2.f90: New. * testsuite/libgomp.fortran/declare-target-indirect-3.f90: New.
Showing
- gcc/fortran/dump-parse-tree.cc 2 additions, 0 deletionsgcc/fortran/dump-parse-tree.cc
- gcc/fortran/f95-lang.cc 2 additions, 0 deletionsgcc/fortran/f95-lang.cc
- gcc/fortran/gfortran.h 2 additions, 1 deletiongcc/fortran/gfortran.h
- gcc/fortran/openmp.cc 47 additions, 3 deletionsgcc/fortran/openmp.cc
- gcc/fortran/trans-decl.cc 4 additions, 0 deletionsgcc/fortran/trans-decl.cc
- gcc/testsuite/gfortran.dg/gomp/declare-target-4.f90 1 addition, 1 deletiongcc/testsuite/gfortran.dg/gomp/declare-target-4.f90
- gcc/testsuite/gfortran.dg/gomp/declare-target-indirect-1.f90 62 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/declare-target-indirect-1.f90
- gcc/testsuite/gfortran.dg/gomp/declare-target-indirect-2.f90 25 additions, 0 deletionsgcc/testsuite/gfortran.dg/gomp/declare-target-indirect-2.f90
- libgomp/testsuite/libgomp.fortran/declare-target-indirect-1.f90 39 additions, 0 deletions...p/testsuite/libgomp.fortran/declare-target-indirect-1.f90
- libgomp/testsuite/libgomp.fortran/declare-target-indirect-2.f90 54 additions, 0 deletions...p/testsuite/libgomp.fortran/declare-target-indirect-2.f90
- libgomp/testsuite/libgomp.fortran/declare-target-indirect-3.f90 35 additions, 0 deletions...p/testsuite/libgomp.fortran/declare-target-indirect-3.f90
Loading
Please register or sign in to comment