From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id 7235D3858C2C for ; Wed, 2 Feb 2022 14:24:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 7235D3858C2C Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-77-49Ol-9jANgGFPdpz9wB0RQ-1; Wed, 02 Feb 2022 09:24:18 -0500 X-MC-Unique: 49Ol-9jANgGFPdpz9wB0RQ-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 9191D85EE64; Wed, 2 Feb 2022 14:24:17 +0000 (UTC) Received: from tucnak.zalov.cz (unknown [10.39.192.125]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2BCA8108F83D; Wed, 2 Feb 2022 14:24:16 +0000 (UTC) Received: from tucnak.zalov.cz (localhost [127.0.0.1]) by tucnak.zalov.cz (8.16.1/8.16.1) with ESMTPS id 212EODJp4166691 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 2 Feb 2022 15:24:14 +0100 Received: (from jakub@localhost) by tucnak.zalov.cz (8.16.1/8.16.1/Submit) id 212EODkm4166690; Wed, 2 Feb 2022 15:24:13 +0100 Date: Wed, 2 Feb 2022 15:24:13 +0100 From: Jakub Jelinek To: Marcel Vollweiler Cc: gcc-patches@gcc.gnu.org, fortran@gcc.gnu.org Subject: Re: [PATCH] C, C++, Fortran, OpenMP: Add 'has_device_addr' clause to 'target' construct Message-ID: <20220202142413.GB2646553@tucnak> Reply-To: Jakub Jelinek References: <20211020123844.GU304296@tucnak> <25633d5a-d94d-0231-b626-97d28159237f@codesourcery.com> <20220111115324.GV2646553@tucnak> <9668c17d-1baf-9840-3ab1-2b7bebc98312@codesourcery.com> MIME-Version: 1.0 In-Reply-To: <9668c17d-1baf-9840-3ab1-2b7bebc98312@codesourcery.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Spam-Status: No, score=-5.2 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: fortran@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Fortran mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Feb 2022 14:24:30 -0000 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