From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 69203 invoked by alias); 30 May 2016 14:39:15 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 69192 invoked by uid 89); 30 May 2016 14:39:14 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.3 required=5.0 tests=AWL,BAYES_00,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=no version=3.3.2 spammy=tang, Tang X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Mon, 30 May 2016 14:39:04 +0000 Received: from svr-orw-fem-04.mgc.mentorg.com ([147.34.97.41]) by relay1.mentorg.com with esmtp id 1b7OLN-0004ap-86 from ChungLin_Tang@mentor.com ; Mon, 30 May 2016 07:39:01 -0700 Received: from [0.0.0.0] (147.34.91.1) by svr-orw-fem-04.mgc.mentorg.com (147.34.97.41) with Microsoft SMTP Server id 14.3.224.2; Mon, 30 May 2016 07:39:01 -0700 From: Chung-Lin Tang Subject: [PATCH, OpenACC] Make reduction arguments addressable To: gcc-patches CC: Jakub Jelinek , Cesar Philippidis Message-ID: Date: Mon, 30 May 2016 18:42:00 -0000 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------485745F96B29EADAAA112F9D" X-IsSubscribed: yes X-SW-Source: 2016-05/txt/msg02354.txt.bz2 --------------485745F96B29EADAAA112F9D Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-length: 1038 Hi, a previous patch of Cesar's has made the middle-end omp-lowering automatically create and insert a tofrom (i.e. present_or_copy) map for parallel reductions. This allowed the user to not need explicit clauses to copy out the reduction result, but because reduction arguments are not marked addressable, async does not work as expected, i.e. the asynchronous copy-out results are not used in the compiler generated code. This patch fixes this in the front-ends, I've tested this patch without new regressions, and fixes some C++ OpenACC tests that regressed after my last OpenACC async patch. Is this okay for trunk? Thanks, Chung-Lin 2016-05-30 Chung-Lin Tang c/ * c-typeck.c (c_finish_omp_clauses): Mark OpenACC reduction arguments as addressable. cp/ * semantics.c (finish_omp_clauses): Mark OpenACC reduction arguments as addressable. fortran/ * trans-openmp.c (gfc_trans_oacc_construct): Mark OpenACC reduction arguments as addressable. (gfc_trans_oacc_combined_directive): Likewise. --------------485745F96B29EADAAA112F9D Content-Type: text/plain; charset="UTF-8"; x-mac-type=0; x-mac-creator=0; name="a.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="a.diff" Content-length: 2786 SW5kZXg6IGMvYy10eXBlY2suYwo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSBjL2MtdHlwZWNrLmMJKHJldmlzaW9uIDIzNjg0NSkKKysrIGMvYy10eXBl Y2suYwkod29ya2luZyBjb3B5KQpAQCAtMTI1NzUsNiArMTI1NzUsOCBAQCBj X2ZpbmlzaF9vbXBfY2xhdXNlcyAodHJlZSBjbGF1c2VzLCBlbnVtIGNfb21w X3JlZwogCSAgICAgIHJlbW92ZSA9IHRydWU7CiAJICAgICAgYnJlYWs7CiAJ ICAgIH0KKwkgIGlmIChvcnQgJiBDX09SVF9BQ0MpCisJICAgIGNfbWFya19h ZGRyZXNzYWJsZSAodCk7CiAJICB0eXBlID0gVFJFRV9UWVBFICh0KTsKIAkg IGlmIChUUkVFX0NPREUgKHQpID09IE1FTV9SRUYpCiAJICAgIHR5cGUgPSBU UkVFX1RZUEUgKHR5cGUpOwpJbmRleDogY3Avc2VtYW50aWNzLmMKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0gY3Avc2VtYW50aWNzLmMJKHJldmlzaW9u IDIzNjg0NSkKKysrIGNwL3NlbWFudGljcy5jCSh3b3JraW5nIGNvcHkpCkBA IC01ODI3LDYgKzU4MjcsOCBAQCBmaW5pc2hfb21wX2NsYXVzZXMgKHRyZWUg Y2xhdXNlcywgZW51bSBjX29tcF9yZWdpbwogCQl0ID0gbjsKIAkgICAgICBn b3RvIGNoZWNrX2R1cF9nZW5lcmljX3Q7CiAJICAgIH0KKwkgIGlmIChvcnQg JiBDX09SVF9BQ0MpCisJICAgIGN4eF9tYXJrX2FkZHJlc3NhYmxlICh0KTsK IAkgIGdvdG8gY2hlY2tfZHVwX2dlbmVyaWM7CiAJY2FzZSBPTVBfQ0xBVVNF X0NPUFlQUklWQVRFOgogCSAgY29weXByaXZhdGVfc2VlbiA9IHRydWU7Cklu ZGV4OiBmb3J0cmFuL3RyYW5zLW9wZW5tcC5jCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIGZvcnRyYW4vdHJhbnMtb3Blbm1wLmMJKHJldmlzaW9uIDIz Njg0NSkKKysrIGZvcnRyYW4vdHJhbnMtb3Blbm1wLmMJKHdvcmtpbmcgY29w eSkKQEAgLTI3MDQsNiArMjcwNCwxMCBAQCBnZmNfdHJhbnNfb2FjY19jb25z dHJ1Y3QgKGdmY19jb2RlICpjb2RlKQogICBnZmNfc3RhcnRfYmxvY2sgKCZi bG9jayk7CiAgIG9hY2NfY2xhdXNlcyA9IGdmY190cmFuc19vbXBfY2xhdXNl cyAoJmJsb2NrLCBjb2RlLT5leHQub21wX2NsYXVzZXMsCiAJCQkJCWNvZGUt PmxvYyk7CisgIGZvciAodHJlZSBjID0gb2FjY19jbGF1c2VzOyBjOyBjID0g T01QX0NMQVVTRV9DSEFJTiAoYykpCisgICAgaWYgKE9NUF9DTEFVU0VfQ09E RSAoYykgPT0gT01QX0NMQVVTRV9SRURVQ1RJT04KKwkmJiBERUNMX1AgKE9N UF9DTEFVU0VfREVDTCAoYykpKQorICAgICAgVFJFRV9BRERSRVNTQUJMRSAo T01QX0NMQVVTRV9ERUNMIChjKSkgPSAxOwogICBzdG10ID0gZ2ZjX3RyYW5z X29tcF9jb2RlIChjb2RlLT5ibG9jay0+bmV4dCwgdHJ1ZSk7CiAgIHN0bXQg PSBidWlsZDJfbG9jIChpbnB1dF9sb2NhdGlvbiwgY29uc3RydWN0X2NvZGUs IHZvaWRfdHlwZV9ub2RlLCBzdG10LAogCQkgICAgIG9hY2NfY2xhdXNlcyk7 CkBAIC0zNTAxLDYgKzM1MDUsMTAgQEAgZ2ZjX3RyYW5zX29hY2NfY29tYmlu ZWRfZGlyZWN0aXZlIChnZmNfY29kZSAqY29kZSkKIAljb25zdHJ1Y3RfY2xh dXNlcy5saXN0c1tPTVBfTElTVF9SRURVQ1RJT05dID0gTlVMTDsKICAgICAg IG9hY2NfY2xhdXNlcyA9IGdmY190cmFuc19vbXBfY2xhdXNlcyAoJmJsb2Nr LCAmY29uc3RydWN0X2NsYXVzZXMsCiAJCQkJCSAgICBjb2RlLT5sb2MpOwor ICAgICAgZm9yICh0cmVlIGMgPSBvYWNjX2NsYXVzZXM7IGM7IGMgPSBPTVBf Q0xBVVNFX0NIQUlOIChjKSkKKwlpZiAoT01QX0NMQVVTRV9DT0RFIChjKSA9 PSBPTVBfQ0xBVVNFX1JFRFVDVElPTgorCSAgICAmJiBERUNMX1AgKE9NUF9D TEFVU0VfREVDTCAoYykpKQorCSAgVFJFRV9BRERSRVNTQUJMRSAoT01QX0NM QVVTRV9ERUNMIChjKSkgPSAxOwogICAgIH0KICAgaWYgKCFsb29wX2NsYXVz ZXMuc2VxKQogICAgIHBibG9jayA9ICZibG9jazsK --------------485745F96B29EADAAA112F9D--