On Wed, Feb 02, 2022 at 09:19:03AM +0100, Marcel Vollweiler wrote: > gcc/c-family/ChangeLog: > > * c-omp.cc (c_omp_split_clauses): Added OMP_CLAUSE_HAS_DEVICE_ADDR case. > * c-pragma.h (enum pragma_kind): Added 5.1 in comment. > (enum pragma_omp_clause): Added PRAGMA_OMP_CLAUSE_HAS_DEVICE_ADDR. > > gcc/c/ChangeLog: > > * c-parser.cc (c_parser_omp_clause_name): Parse 'has_device_addr' > clause. > (c_parser_omp_variable_list): Handle array sections. > (c_parser_omp_clause_has_device_addr): Added. > (c_parser_omp_all_clauses): Added PRAGMA_OMP_CLAUSE_HAS_DEVICE_ADDR > case. > (c_parser_omp_target_exit_data): Added HAS_DEVICE_ADDR to > OMP_CLAUSE_MASK. > * c-typeck.cc (handle_omp_array_sections): Handle clause restrictions. > (c_finish_omp_clauses): Handle array sections. > > gcc/cp/ChangeLog: > > * parser.cc (cp_parser_omp_clause_name): Parse 'has_device_addr' clause. > (cp_parser_omp_var_list_no_open): Handle array sections. > (cp_parser_omp_all_clauses): Added PRAGMA_OMP_CLAUSE_HAS_DEVICE_ADDR > case. > (cp_parser_omp_target_update): Added HAS_DEVICE_ADDR to OMP_CLAUSE_MASK. > * pt.c (tsubst_omp_clauses): Added cases for OMP_CLAUSE_HAS_DEVICE_ADDR. > * semantics.cc (handle_omp_array_sections): Handle clause restrictions. > (finish_omp_clauses): Handle array sections. > > gcc/fortran/ChangeLog: > > * dump-parse-tree.cc (show_omp_clauses): Added OMP_LIST_HAS_DEVICE_ADDR > case. > * gfortran.h: Added OMP_LIST_HAS_DEVICE_ADDR. > * openmp.cc (enum omp_mask2): Added OMP_CLAUSE_HAS_DEVICE_ADDR. > (gfc_match_omp_clauses): Parse HAS_DEVICE_ADDR clause. > (resolve_omp_clauses): Same. > * trans-openmp.cc (gfc_trans_omp_variable_list): Added > OMP_LIST_HAS_DEVICE_ADDR case. > (gfc_trans_omp_clauses): Firstprivatize of array descriptors. > > gcc/ChangeLog: > > * gimplify.cc (gimplify_scan_omp_clauses): Added cases for > OMP_CLAUSE_HAS_DEVICE_ADDR > and handle array sections. > (gimplify_adjust_omp_clauses): Added OMP_CLAUSE_HAS_DEVICE_ADDR case. > * omp-low.cc (scan_sharing_clauses): Handle OMP_CLAUSE_HAS_DEVICE_ADDR. > (lower_omp_target): Same. > * tree-core.h (enum omp_clause_code): Same. > * tree-nested.cc (convert_nonlocal_omp_clauses): Same. > (convert_local_omp_clauses): Same. > * tree-pretty-print.cc (dump_omp_clause): Same. > * tree.cc: Same. > > libgomp/ChangeLog: > > * libgomp.texi: Updated entry for HAS_DEVICE_ADDR. > * target.c (copy_firstprivate_data): Copy only if host address is not > NULL. > * testsuite/libgomp.c++/target-has-device-addr-2.C: New test. > * testsuite/libgomp.c++/target-has-device-addr-4.C: New test. > * testsuite/libgomp.c++/target-has-device-addr-5.C: New test. > * testsuite/libgomp.c++/target-has-device-addr-6.C: New test. > * testsuite/libgomp.c-c++-common/target-has-device-addr-1.c: New test. > * testsuite/libgomp.c/target-has-device-addr-3.c: New test. > * testsuite/libgomp.fortran/target-has-device-addr-1.f90: New test. > * testsuite/libgomp.fortran/target-has-device-addr-2.f90: New test. > * testsuite/libgomp.fortran/target-has-device-addr-3.f90: New test. > * testsuite/libgomp.fortran/target-has-device-addr-4.f90: New test. > > gcc/testsuite/ChangeLog: > > * c-c++-common/gomp/clauses-1.c: Added has_device_addr to test cases. > * g++.dg/gomp/attrs-1.C: Added has_device_addr to test cases. > * g++.dg/gomp/attrs-2.C: Added has_device_addr to test cases. > * c-c++-common/gomp/target-has-device-addr-1.c: New test. > * c-c++-common/gomp/target-has-device-addr-2.c: New test. > * c-c++-common/gomp/target-is-device-ptr-1.c: New test. > * c-c++-common/gomp/target-is-device-ptr-2.c: New test. > * gfortran.dg/gomp/is_device_ptr-3.f90: New test. > * gfortran.dg/gomp/target-has-device-addr-1.f90: New test. > * gfortran.dg/gomp/target-has-device-addr-2.f90: New test.
Ok, thanks. Jakub