From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa2.mentor.iphmx.com (esa2.mentor.iphmx.com [68.232.141.98]) by sourceware.org (Postfix) with ESMTPS id 38D6D3858D38 for ; Wed, 3 Jan 2024 15:54:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 38D6D3858D38 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 38D6D3858D38 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=68.232.141.98 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704297292; cv=none; b=h0jGwPIyB899SO5CBgWh6R5fBWhDaUVgVI1u1nQ4vIQXdRrENWaPwaIfIR31tc6jhNzoLHyizgJ+8xur5TBn5VZ7I3ohaP5u9yk9FsLkM2P1bywoaJAtFVxFpXprWd1sXzh7pYv7YEe92vfhZpVO6crimPOXfsKL9ygFuQmlxFU= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704297292; c=relaxed/simple; bh=IIFLwKNKsiNjZaRNIgLbRwpVIvbeqDtJrsQOLZ6ulUs=; h=Message-ID:Date:MIME-Version:Subject:To:From; b=PKBzb1IIz4R6A3R6eMQgr6h9n1SUosJjBsKEVPirZkOUHLurCKhYQtV5XfWkW3UBPN7HzmurvZn2i15Cwbw38hu1b/CNyJv2CUCNWdyhZoPE0iDSX8+OTRAiy9XhWFw4DnjUCq/CBT6j3LecSFjHX5gemqZm0AKGvY1IteLdezY= ARC-Authentication-Results: i=1; server2.sourceware.org X-CSE-ConnectionGUID: EYHbXLdASNu3hNKqmcUCvQ== X-CSE-MsgGUID: WmkI7MNOTtGDeMThJSveUA== X-IronPort-AV: E=Sophos;i="6.04,327,1695715200"; d="scan'208,223";a="30089616" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa2.mentor.iphmx.com with ESMTP; 03 Jan 2024 07:54:48 -0800 IronPort-SDR: pQiy2JwZyG/IEnPFuWxCaqNhAFSK4vdUKa1zQRvzGZstmqEq/4LGmadoDBYPkcgLZ0d01+NmUd dDd46wr40Ss6OfZadyKgh7WYxCqPgvIzaWuPzhBbLcG8ebCA/eGTi/1VVpJpke1a7jZjrO8S6I OF9RjXgjlgkoU8IXT/N8WaF7XXsLkN/Ig39IPVfdo7x+uDnZX6QjxdIDFLQacUWZS/cXnkifdd WM2Shl+cfcJKRip/3QsNSy80JwtJtQDhOs0/sbO6Om2T7a8aryFcaXNuZeyPTI6vy3fjIg0w7X 1Qc= Content-Type: multipart/mixed; boundary="------------y59TLwljLidFm7geNeLqQvkf" Message-ID: <598af23e-c225-45e3-9298-370823cf7f1d@codesourcery.com> Date: Wed, 3 Jan 2024 15:54:13 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [committed] Re: [PATCH] openmp: Add support for the 'indirect' clause in C/C++ Content-Language: en-GB To: Thomas Schwinge CC: Tobias Burnus , , "Jakub Jelinek" References: <37f412ee-58e7-4bde-a763-591268e8f8f4@codesourcery.com> <87wmurru61.fsf@euler.schwinge.homeip.net> From: Kwok Cheung Yeung In-Reply-To: <87wmurru61.fsf@euler.schwinge.homeip.net> X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --------------y59TLwljLidFm7geNeLqQvkf Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit On 09/11/2023 12:24 pm, Thomas Schwinge wrote: >> --- a/gcc/tree-core.h >> +++ b/gcc/tree-core.h >> @@ -350,6 +350,9 @@ enum omp_clause_code { >> /* OpenMP clause: doacross ({source,sink}:vec). */ >> OMP_CLAUSE_DOACROSS, >> >> + /* OpenMP clause: indirect [(constant-integer-expression)]. */ >> + OMP_CLAUSE_INDIRECT, >> + >> /* Internal structure to hold OpenACC cache directive's variable-list. >> #pragma acc cache (variable-list). */ >> OMP_CLAUSE__CACHE_, > > In this position here, isn't 'OMP_CLAUSE_INDIRECT' applicable to the > 'OMP_CLAUSE_RANGE_CHECK' in 'gcc/tree.h:OMP_CLAUSE_SIZE' and > 'gcc/tree.h:OMP_CLAUSE_DECL': > > #define OMP_CLAUSE_SIZE(NODE) \ > OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (OMP_CLAUSE_CHECK (NODE), \ > OMP_CLAUSE_FROM, \ > OMP_CLAUSE__CACHE_), 1) > > #define OMP_CLAUSE_DECL(NODE) \ > OMP_CLAUSE_OPERAND (OMP_CLAUSE_RANGE_CHECK (OMP_CLAUSE_CHECK (NODE), \ > OMP_CLAUSE_PRIVATE, \ > OMP_CLAUSE__SCANTEMP_), 0) > > That's probably not intentional? In that case, maybe simply move it at > the end of the clause list? (..., and generally then match that ordering > in any 'switch'es, as applicable, and likewise position > 'gcc/tree.h:OMP_CLAUSE_INDIRECT_EXPR' correspondingly.) I have moved OMP_CLAUSE_INDIRECT to just before OMP_CLAUSE__SIMDUID_ so that it is outside the range checked by OMP_CLAUSE_SIZE and OMP_CLAUSE_DECL. I have also moved its handling in c(p)_parser_omp_clause_name so that the alphabetical ordering is preserved. Committed as trivial. > I would've assumed handling for 'OMP_CLAUSE_INDIRECT' to also be > necessary in the following places: > > - 'gcc/c-family/c-omp.cc:c_omp_split_clauses' > - 'gcc/cp/pt.cc:tsubst_omp_clauses', > - 'gcc/gimplify.cc:gimplify_scan_omp_clauses', > 'gcc/gimplify.cc:gimplify_adjust_omp_clauses' > - 'gcc/omp-low.cc:scan_sharing_clauses' (twice) > - 'gcc/tree-nested.cc:convert_nonlocal_omp_clauses', > 'gcc/tree-nested.cc:convert_local_omp_clauses' > - 'gcc/tree-pretty-print.cc:dump_omp_clause' > > Please verify, and add handling as well as test cases as necessary, or, > as applicable, put 'case OMP_CLAUSE_INDIRECT:' next to > 'default: gcc_unreachable ();' etc., if indeed that clause is not > expected there. As Tobias noted, OMP_CLAUSE_INDIRECT never makes it into the middle-end. It may be generated by c(p)_parser_omp_all_clauses, and if present an attribute is applied to the function declaration, but at no point is it directly incorporated into the tree structure. I'm not sure whether it is best to explicitly list such cases as gcc_unreachable (it might imply that it can reach the ME, but just not at that particular point?) or not though. Kwok --------------y59TLwljLidFm7geNeLqQvkf Content-Type: text/plain; charset="UTF-8"; name="0001-openmp-Adjust-position-of-OMP_CLAUSE_INDIRECT-in-Ope.patch" Content-Disposition: attachment; filename*0="0001-openmp-Adjust-position-of-OMP_CLAUSE_INDIRECT-in-Ope.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBhNTZhNjkzYTc0ZGQzYmVlNzFiMTI2NmIwOWRiZDc1MzY5NGFjZTk0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLd29rIENoZXVuZyBZZXVuZyA8a2N5QGNvZGVzb3Vy Y2VyeS5jb20+CkRhdGU6IFdlZCwgMyBKYW4gMjAyNCAxNDozNDozOSArMDAwMApTdWJqZWN0 OiBbUEFUQ0hdIG9wZW5tcDogQWRqdXN0IHBvc2l0aW9uIG9mIE9NUF9DTEFVU0VfSU5ESVJF Q1QgaW4gT3Blbk1QCiBjbGF1c2VzCgpNb3ZlIE9NUF9DTEFVU0VfSU5ESVJFQ1Qgc28gdGhh dCBpdCBpcyBvdXRzaWRlIG9mIHRoZSByYW5nZSBjaGVja2VkIGJ5Ck9NUF9DTEFVU0VfU0la RSBhbmQgT01QX0NMQVVTRV9ERUNMLgoKMjAyNC0wMS0wMyAgS3dvayBDaGV1bmcgWWV1bmcg IDxrY3lAY29kZXNvdXJjZXJ5LmNvbT4KCglnY2MvYy8KCSogYy1wYXJzZXIuY2MgKGNfcGFy c2VyX29tcF9jbGF1c2VfbmFtZSk6IE1vdmUgaGFuZGxpbmcgb2YgaW5kaXJlY3QKCWNsYXVz ZSB0byBjb3JyZXNwb25kIHRvIGFscGhhYmV0aWNhbCBvcmRlci4KCglnY2MvY3AvCgkqIHBh cnNlci5jYyAoY3BfcGFyc2VyX29tcF9jbGF1c2VfbmFtZSk6IE1vdmUgaGFuZGxpbmcgb2Yg aW5kaXJlY3QKCWNsYXVzZSB0byBjb3JyZXNwb25kIHRvIGFscGhhYmV0aWNhbCBvcmRlci4K CglnY2MvCgkqIHRyZWUtY29yZS5oIChlbnVtIG9tcF9jbGF1c2VfY29kZSk6IE1vdmUgT01Q X0NMQVVTRV9JTkRJUkVDVCB0byBiZWZvcmUKCU9NUF9DTEFVU0VfX1NJTURVSURfLgoJKiB0 cmVlLmNjIChvbXBfY2xhdXNlX251bV9vcHMpOiBVcGRhdGUgcG9zaXRpb24gb2YgZW50cnkg Zm9yCglPTVBfQ0xBVVNFX0lORElSRUNUIHRvIGNvcnJlc3BvbmQgd2l0aCBvbXBfY2xhdXNl X2NvZGUuCgkob21wX2NsYXVzZV9jb2RlX25hbWUpOiBMaWtld2lzZS4KLS0tCiBnY2MvYy9j LXBhcnNlci5jYyB8IDQgKystLQogZ2NjL2NwL3BhcnNlci5jYyAgfCA0ICsrLS0KIGdjYy90 cmVlLWNvcmUuaCAgIHwgNiArKystLS0KIGdjYy90cmVlLmNjICAgICAgIHwgNCArKy0tCiA0 IGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9nY2MvYy9jLXBhcnNlci5jYyBiL2djYy9jL2MtcGFyc2VyLmNjCmluZGV4IDY0 ZTQzNjAxMGQ1Li5lN2I3NGZiMDdmMCAxMDA2NDQKLS0tIGEvZ2NjL2MvYy1wYXJzZXIuY2MK KysrIGIvZ2NjL2MvYy1wYXJzZXIuY2MKQEAgLTE0ODk5LDEwICsxNDg5OSwxMCBAQCBjX3Bh cnNlcl9vbXBfY2xhdXNlX25hbWUgKGNfcGFyc2VyICpwYXJzZXIpCiAJICAgIHJlc3VsdCA9 IFBSQUdNQV9PTVBfQ0xBVVNFX0lOX1JFRFVDVElPTjsKIAkgIGVsc2UgaWYgKCFzdHJjbXAg KCJpbmJyYW5jaCIsIHApKQogCSAgICByZXN1bHQgPSBQUkFHTUFfT01QX0NMQVVTRV9JTkJS QU5DSDsKLQkgIGVsc2UgaWYgKCFzdHJjbXAgKCJpbmRpcmVjdCIsIHApKQotCSAgICByZXN1 bHQgPSBQUkFHTUFfT01QX0NMQVVTRV9JTkRJUkVDVDsKIAkgIGVsc2UgaWYgKCFzdHJjbXAg KCJpbmRlcGVuZGVudCIsIHApKQogCSAgICByZXN1bHQgPSBQUkFHTUFfT0FDQ19DTEFVU0Vf SU5ERVBFTkRFTlQ7CisJICBlbHNlIGlmICghc3RyY21wICgiaW5kaXJlY3QiLCBwKSkKKwkg ICAgcmVzdWx0ID0gUFJBR01BX09NUF9DTEFVU0VfSU5ESVJFQ1Q7CiAJICBlbHNlIGlmICgh c3RyY21wICgiaXNfZGV2aWNlX3B0ciIsIHApKQogCSAgICByZXN1bHQgPSBQUkFHTUFfT01Q X0NMQVVTRV9JU19ERVZJQ0VfUFRSOwogCSAgYnJlYWs7CmRpZmYgLS1naXQgYS9nY2MvY3Av cGFyc2VyLmNjIGIvZ2NjL2NwL3BhcnNlci5jYwppbmRleCAxYTZiNTM5MzNhNy4uMzc1MzZm YWYyY2YgMTAwNjQ0Ci0tLSBhL2djYy9jcC9wYXJzZXIuY2MKKysrIGIvZ2NjL2NwL3BhcnNl ci5jYwpAQCAtMzc2NDUsMTAgKzM3NjQ1LDEwIEBAIGNwX3BhcnNlcl9vbXBfY2xhdXNlX25h bWUgKGNwX3BhcnNlciAqcGFyc2VyKQogCSAgICByZXN1bHQgPSBQUkFHTUFfT01QX0NMQVVT RV9JTl9SRURVQ1RJT047CiAJICBlbHNlIGlmICghc3RyY21wICgiaW5icmFuY2giLCBwKSkK IAkgICAgcmVzdWx0ID0gUFJBR01BX09NUF9DTEFVU0VfSU5CUkFOQ0g7Ci0JICBlbHNlIGlm ICghc3RyY21wICgiaW5kaXJlY3QiLCBwKSkKLQkgICAgcmVzdWx0ID0gUFJBR01BX09NUF9D TEFVU0VfSU5ESVJFQ1Q7CiAJICBlbHNlIGlmICghc3RyY21wICgiaW5kZXBlbmRlbnQiLCBw KSkKIAkgICAgcmVzdWx0ID0gUFJBR01BX09BQ0NfQ0xBVVNFX0lOREVQRU5ERU5UOworCSAg ZWxzZSBpZiAoIXN0cmNtcCAoImluZGlyZWN0IiwgcCkpCisJICAgIHJlc3VsdCA9IFBSQUdN QV9PTVBfQ0xBVVNFX0lORElSRUNUOwogCSAgZWxzZSBpZiAoIXN0cmNtcCAoImlzX2Rldmlj ZV9wdHIiLCBwKSkKIAkgICAgcmVzdWx0ID0gUFJBR01BX09NUF9DTEFVU0VfSVNfREVWSUNF X1BUUjsKIAkgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUtY29yZS5oIGIvZ2NjL3Ry ZWUtY29yZS5oCmluZGV4IGQxYzcxMzZjMjA0Li44YTg5NDYyYmQ3ZSAxMDA2NDQKLS0tIGEv Z2NjL3RyZWUtY29yZS5oCisrKyBiL2djYy90cmVlLWNvcmUuaApAQCAtMzUwLDkgKzM1MCw2 IEBAIGVudW0gb21wX2NsYXVzZV9jb2RlIHsKICAgLyogT3Blbk1QIGNsYXVzZTogZG9hY3Jv c3MgKHtzb3VyY2Usc2lua306dmVjKS4gICovCiAgIE9NUF9DTEFVU0VfRE9BQ1JPU1MsCiAK LSAgLyogT3Blbk1QIGNsYXVzZTogaW5kaXJlY3QgWyhjb25zdGFudC1pbnRlZ2VyLWV4cHJl c3Npb24pXS4gICovCi0gIE9NUF9DTEFVU0VfSU5ESVJFQ1QsCi0KICAgLyogSW50ZXJuYWwg c3RydWN0dXJlIHRvIGhvbGQgT3BlbkFDQyBjYWNoZSBkaXJlY3RpdmUncyB2YXJpYWJsZS1s aXN0LgogICAgICAjcHJhZ21hIGFjYyBjYWNoZSAodmFyaWFibGUtbGlzdCkuICAqLwogICBP TVBfQ0xBVVNFX19DQUNIRV8sCkBAIC00OTcsNiArNDk0LDkgQEAgZW51bSBvbXBfY2xhdXNl X2NvZGUgewogICAvKiBPcGVuTVAgY2xhdXNlOiBmaWx0ZXIgKGludGVnZXItZXhwcmVzc2lv bikuICAqLwogICBPTVBfQ0xBVVNFX0ZJTFRFUiwKIAorICAvKiBPcGVuTVAgY2xhdXNlOiBp bmRpcmVjdCBbKGNvbnN0YW50LWludGVnZXItZXhwcmVzc2lvbildLiAgKi8KKyAgT01QX0NM QVVTRV9JTkRJUkVDVCwKKwogICAvKiBJbnRlcm5hbGx5IHVzZWQgb25seSBjbGF1c2UsIGhv bGRpbmcgU0lNRCB1aWQuICAqLwogICBPTVBfQ0xBVVNFX19TSU1EVUlEXywKIApkaWZmIC0t Z2l0IGEvZ2NjL3RyZWUuY2MgYi9nY2MvdHJlZS5jYwppbmRleCA4MmVmZjJiZjM0ZC4uOGFl ZTNlZjE4ZDggMTAwNjQ0Ci0tLSBhL2djYy90cmVlLmNjCisrKyBiL2djYy90cmVlLmNjCkBA IC0yNjksNyArMjY5LDYgQEAgdW5zaWduZWQgY29uc3QgY2hhciBvbXBfY2xhdXNlX251bV9v cHNbXSA9CiAgIDIsIC8qIE9NUF9DTEFVU0VfTUFQICAqLwogICAxLCAvKiBPTVBfQ0xBVVNF X0hBU19ERVZJQ0VfQUREUiAgKi8KICAgMSwgLyogT01QX0NMQVVTRV9ET0FDUk9TUyAgKi8K LSAgMSwgLyogT01QX0NMQVVTRV9JTkRJUkVDVCAgKi8KICAgMiwgLyogT01QX0NMQVVTRV9f Q0FDSEVfICAqLwogICAyLCAvKiBPTVBfQ0xBVVNFX0dBTkcgICovCiAgIDEsIC8qIE9NUF9D TEFVU0VfQVNZTkMgICovCkBAIC0zMTYsNiArMzE1LDcgQEAgdW5zaWduZWQgY29uc3QgY2hh ciBvbXBfY2xhdXNlX251bV9vcHNbXSA9CiAgIDAsIC8qIE9NUF9DTEFVU0VfT1JERVIgICov CiAgIDAsIC8qIE9NUF9DTEFVU0VfQklORCAgKi8KICAgMSwgLyogT01QX0NMQVVTRV9GSUxU RVIgICovCisgIDEsIC8qIE9NUF9DTEFVU0VfSU5ESVJFQ1QgICovCiAgIDEsIC8qIE9NUF9D TEFVU0VfX1NJTURVSURfICAqLwogICAwLCAvKiBPTVBfQ0xBVVNFX19TSU1UXyAgKi8KICAg MCwgLyogT01QX0NMQVVTRV9JTkRFUEVOREVOVCAgKi8KQEAgLTM2Miw3ICszNjIsNiBAQCBj b25zdCBjaGFyICogY29uc3Qgb21wX2NsYXVzZV9jb2RlX25hbWVbXSA9CiAgICJtYXAiLAog ICAiaGFzX2RldmljZV9hZGRyIiwKICAgImRvYWNyb3NzIiwKLSAgImluZGlyZWN0IiwKICAg Il9jYWNoZV8iLAogICAiZ2FuZyIsCiAgICJhc3luYyIsCkBAIC00MDksNiArNDA4LDcgQEAg Y29uc3QgY2hhciAqIGNvbnN0IG9tcF9jbGF1c2VfY29kZV9uYW1lW10gPQogICAib3JkZXIi LAogICAiYmluZCIsCiAgICJmaWx0ZXIiLAorICAiaW5kaXJlY3QiLAogICAiX3NpbWR1aWRf IiwKICAgIl9zaW10XyIsCiAgICJpbmRlcGVuZGVudCIsCi0tIAoyLjM0LjEKCg== --------------y59TLwljLidFm7geNeLqQvkf--