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 A7C283959C8D for ; Wed, 16 Nov 2022 11:42:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A7C283959C8D Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.96,167,1665475200"; d="diff'?scan'208";a="87291259" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa2.mentor.iphmx.com with ESMTP; 16 Nov 2022 03:42:20 -0800 IronPort-SDR: 2ocCfk3p9YYBsDTdHV+l9+Fm0R0H32aEiXcRn8e8nf859UEbMMiKAa/YaTmf6tY+VCKbSsi5Rp qFMfEet5d2HdmnAsyAXb+IBC+PzhdOeg/JcxpklLfp1zvA4hcKHMY6JM4u2K+eghT3fIz2Xd1V LwFPGpg8C1DFKsxlrjWEK6etpcZh/IWKAerc3E2UNt/1ekXVm3YFVX1jAPeoOCMWAHcPANrf24 sKLr4tykiSzWZWLdv8TSWQs2XeZrg8UiiMGYHYsOlBkNK8pfDlAyjUqg6hbKEn62wuTMjApCi1 luw= Content-Type: multipart/mixed; boundary="------------WYjKGHrvnt0sY5sX5m6kdDEL" Message-ID: <31a32901-1912-988b-c641-1f23093e8563@codesourcery.com> Date: Wed, 16 Nov 2022 12:42:16 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Content-Language: en-US To: Andrew Stubbs , gcc-patches From: Tobias Burnus Subject: [patch] gcn: Add __builtin_gcn_kernarg_ptr X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-15.mgc.mentorg.com (139.181.222.15) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP 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: --------------WYjKGHrvnt0sY5sX5m6kdDEL Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable This is a part of a patch by Andrew (hi!) - namely that part that only adds= the __builtin_gcn_kernarg_ptr. More is planned, see below. The short term benefit of this patch is to permit replacing hardcoded numbe= rs by a builtin =E2=80=93 like in libgomp (see patch) or in newlib (not submit= ted): --- a/newlib/libc/sys/amdgcn/write.c +++ b/newlib/libc/sys/amdgcn/write.c @@ -59,1 +59,5 @@ _READ_WRITE_RETURN_TYPE write (int fd, const void *buf, s= ize_t count) +#if defined(__has_builtin) && __has_builtin(__builtin_gcn_kernarg_ptr) + register void **kernargs =3D __builtin_gcn_kernarg_ptr (); +#else register void **kernargs asm("s8"); +#endif It would also replace the 'asm("s8")' in reverse offload (GCN) patch, i.e. https://gcc.gnu.org/pipermail/gcc-patches/2022-September/602339.html However, this patch is only the very first step. Next one is to add several additional builtins, namely those that are required for newlib, i.e. newlib/libc/machine/amdgcn/mlock.c (sbrk) and newlib/libc/machine/amdgcn/getreent.c (__getreent) use some additional hard-coded value for heap and stack memory. And at some point - but only after newlib has been updated - we can think of making stack variables non-private. That's a general goal - and in any case required for reverse offload to be able to transfer between the host and on-device stack variables. * * * Regarding the patch: Besides the obvious change (addition of the builtin), the change to DEFAULT memory space is required to avoid a memory-space conv= ersion ICE when using the new builtin. The gcn_oacc_dim_size change is mainly just picked from Andrew's patch as it seems to be reasonable. In terms of the li= bgomp testsuite, I did not spot anything except that the -O2 run now does no long= er fail with "libgomp: target function wasn't mapped" for libgomp.oacc-fortran/kernels-map-1.f90 - but I am not sure it is related or= not. In any case, the libgomp testsuite shows no fails (but the usual fails) with the attached patch. OK for mainline? Tobias PS: The plan is to have at least all builtins in GCC and use them in newlib= by at the end of this year (i.e. in newlib's end of year snapshot - aka as annual release). PPS: I wonder whether [Patch] libgomp/gcn: Prepare for reverse-offload callback handling https://gcc.gnu.org/pipermail/gcc-patches/2022-September/602339.html would be okay after this patch - with the asm("s8") replaced by the builtin= - or not. The code itself would be fine, but it is unreachable until GOMP_OFFLOAD_get_num_devices accepts reverse offload and the latter depends on the support for non-private stack variables. ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --------------WYjKGHrvnt0sY5sX5m6kdDEL Content-Type: text/x-patch; charset="UTF-8"; name="gcn-builtin_gcn_kernarg_ptr.diff" Content-Disposition: attachment; filename="gcn-builtin_gcn_kernarg_ptr.diff" Content-Transfer-Encoding: base64 Z2NuOiBBZGQgX19idWlsdGluX2djbl9rZXJuYXJnX3B0cgoKQWRkIF9fYnVpbHRpbl9nY25f a2VybmFyZ19wdHIgdG8gYXZvaWQgdXNpbmcgaGFyZC1jb2RlZCByZWdpc3RlciB2YWx1ZXMK YW5kIHBlcm1pdCBmdXR1cmUgQUJJIGNoYW5nZXMgd2hpbGUga2VlcGluZyB0aGUgQVBJLgoK Z2NjL0NoYW5nZUxvZzoKCiAgICAgICAgKiBjb25maWcvZ2NuL2djbi1idWlsdGlucy5kZWYg KEtFUk5BUkdfUFRSKTogQWRkLgogICAgICAgICogY29uZmlnL2djbi9nY24uY2MgKGdjbl9p bml0X2J1aWx0aW5fdHlwZXMpOiBDaGFuZ2Ugc2lwdHJfdHlwZV9ub2RlLAoJc2ZwdHJfdHlw ZV9ub2RlIGFuZCB2b2lkcHRyX3R5cGVfbm9kZSBmcm9tIEZMQVQgdG8gQUREUl9TUEFDRV9E RUZBVUxULgogICAgICAgIChnY25fZXhwYW5kX2J1aWx0aW5fMSk6IEhhbmRsZSBHQ05fQlVJ TFRJTl9LRVJOQVJHX1BUUi4KICAgICAgICAoZ2NuX29hY2NfZGltX3NpemUpOiBSZXR1cm4g aW4gQUREUl9TUEFDRV9GTEFULgoKbGliZ29tcC9DaGFuZ2VMb2c6CgogICAgICAgICogY29u ZmlnL2djbi90ZWFtLmMgKGdvbXBfZ2NuX2VudGVyX2tlcm5lbCk6IFVzZQoJX19idWlsdGlu X2djbl9rZXJuYXJnX3B0ciBpbnN0ZWFkIG9mIGFzbSAoInM4IikuCgpDby1BdXRob3JlZC1C eTogQW5kcmV3IFN0dWJicyA8YW1zQGNvZGVzb3VyY2VyeS5jb20+CgogZ2NjL2NvbmZpZy9n Y24vZ2NuLWJ1aWx0aW5zLmRlZiB8ICA0ICsrKysKIGdjYy9jb25maWcvZ2NuL2djbi5jYyAg ICAgICAgICAgfCAyNCArKysrKysrKysrKysrKysrKysrKy0tLS0KIGxpYmdvbXAvY29uZmln L2djbi90ZWFtLmMgICAgICAgfCAgMiArLQogMyBmaWxlcyBjaGFuZ2VkLCAyNSBpbnNlcnRp b25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvZ2NuL2dj bi1idWlsdGlucy5kZWYgYi9nY2MvY29uZmlnL2djbi9nY24tYnVpbHRpbnMuZGVmCmluZGV4 IGM1MDc3N2JkLi5lZWVhZWJmIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2djbi9nY24tYnVp bHRpbnMuZGVmCisrKyBiL2djYy9jb25maWcvZ2NuL2djbi1idWlsdGlucy5kZWYKQEAgLTE1 OCw2ICsxNTgsMTAgQEAgREVGX0JVSUxUSU4gKEFDQ19TSU5HTEVfQ09QWV9FTkQsIC0xLCAi c2luZ2xlX2NvcHlfZW5kIiwgQl9JTlNOLAogREVGX0JVSUxUSU4gKEFDQ19CQVJSSUVSLCAt MSwgImFjY19iYXJyaWVyIiwgQl9JTlNOLCBfQTEgKEdDTl9CVElfVk9JRCksCiAJICAgICBn Y25fZXhwYW5kX2J1aWx0aW5fMSkKIAorLyogS2VybmVsIGlucHV0cy4gICovCisKK0RFRl9C VUlMVElOIChLRVJOQVJHX1BUUiwgLTEsICJrZXJuYXJnX3B0ciIsIEJfSU5TTiwgX0ExIChH Q05fQlRJX1ZPSURQVFIpLAorCSAgICAgZ2NuX2V4cGFuZF9idWlsdGluXzEpCiAKICN1bmRl ZiBfQTEKICN1bmRlZiBfQTIKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvZ2NuL2djbi5jYyBi L2djYy9jb25maWcvZ2NuL2djbi5jYwppbmRleCA1ZTZmM2I4Li5iMzgxNGMyIDEwMDY0NAot LS0gYS9nY2MvY29uZmlnL2djbi9nY24uY2MKKysrIGIvZ2NjL2NvbmZpZy9nY24vZ2NuLmNj CkBAIC00MDU4LDE1ICs0MDU4LDE1IEBAIGdjbl9pbml0X2J1aWx0aW5fdHlwZXMgKHZvaWQp CiAJCQkJCSAgKGludGVnZXJfdHlwZV9ub2RlKSAqLwogCQkJCQksIDY0KTsKICAgdHJlZSB0 bXAgPSBidWlsZF9kaXN0aW5jdF90eXBlX2NvcHkgKGludFNJX3R5cGVfbm9kZSk7Ci0gIFRZ UEVfQUREUl9TUEFDRSAodG1wKSA9IEFERFJfU1BBQ0VfRkxBVDsKKyAgVFlQRV9BRERSX1NQ QUNFICh0bXApID0gQUREUl9TUEFDRV9ERUZBVUxUOwogICBzaXB0cl90eXBlX25vZGUgPSBi dWlsZF9wb2ludGVyX3R5cGUgKHRtcCk7CiAKICAgdG1wID0gYnVpbGRfZGlzdGluY3RfdHlw ZV9jb3B5IChmbG9hdF90eXBlX25vZGUpOwotICBUWVBFX0FERFJfU1BBQ0UgKHRtcCkgPSBB RERSX1NQQUNFX0ZMQVQ7CisgIFRZUEVfQUREUl9TUEFDRSAodG1wKSA9IEFERFJfU1BBQ0Vf REVGQVVMVDsKICAgc2ZwdHJfdHlwZV9ub2RlID0gYnVpbGRfcG9pbnRlcl90eXBlICh0bXAp OwogCiAgIHRtcCA9IGJ1aWxkX2Rpc3RpbmN0X3R5cGVfY29weSAodm9pZF90eXBlX25vZGUp OwotICBUWVBFX0FERFJfU1BBQ0UgKHRtcCkgPSBBRERSX1NQQUNFX0ZMQVQ7CisgIFRZUEVf QUREUl9TUEFDRSAodG1wKSA9IEFERFJfU1BBQ0VfREVGQVVMVDsKICAgdm9pZHB0cl90eXBl X25vZGUgPSBidWlsZF9wb2ludGVyX3R5cGUgKHRtcCk7CiAKICAgdG1wID0gYnVpbGRfZGlz dGluY3RfdHlwZV9jb3B5ICh2b2lkX3R5cGVfbm9kZSk7CkBAIC00NDkzLDYgKzQ0OTMsMjAg QEAgZ2NuX2V4cGFuZF9idWlsdGluXzEgKHRyZWUgZXhwLCBydHggdGFyZ2V0LCBydHggLypz dWJ0YXJnZXQgKi8gLAogICAgICAgZW1pdF9pbnNuIChnZW5fZ2NuX3dhdmVmcm9udF9iYXJy aWVyICgpKTsKICAgICAgIHJldHVybiB0YXJnZXQ7CiAKKyAgICBjYXNlIEdDTl9CVUlMVElO X0tFUk5BUkdfUFRSOgorICAgICAgeworCXJ0eCBwdHI7CisJaWYgKGNmdW4tPm1hY2hpbmUt PmFyZ3MucmVnW0tFUk5BUkdfU0VHTUVOVF9QVFJfQVJHXSA+PSAwKQorCSAgIHB0ciA9IGdl bl9ydHhfUkVHIChESW1vZGUsCisJCQkgICAgICBjZnVuLT5tYWNoaW5lLT5hcmdzLnJlZ1tL RVJOQVJHX1NFR01FTlRfUFRSX0FSR10pOworCWVsc2UKKwkgIHsKKwkgICAgcHRyID0gZ2Vu X3JlZ19ydHggKERJbW9kZSk7CisJICAgIGVtaXRfbW92ZV9pbnNuIChwdHIsIGNvbnN0MF9y dHgpOworCSAgfQorCXJldHVybiBwdHI7CisgICAgICB9CisKICAgICBkZWZhdWx0OgogICAg ICAgZ2NjX3VucmVhY2hhYmxlICgpOwogICAgIH0KQEAgLTU3MDAsNyArNTcxNCw5IEBAIGdj bl9vYWNjX2RpbV9zaXplIChpbnQgZGltKQogCQkJCQljZnVuLT5tYWNoaW5lLT5hcmdzLgog CQkJCQlyZWdbRElTUEFUQ0hfUFRSX0FSR10pLAogCQkJICAgR0VOX0lOVCAob2Zmc2V0W2Rp bV0pKTsKLSAgcmV0dXJuIGdlbl9ydHhfTUVNIChTSW1vZGUsIGFkZHIpOworICBydHggbWVt ID0gZ2VuX3J0eF9NRU0gKFNJbW9kZSwgYWRkcik7CisgIHNldF9tZW1fYWRkcl9zcGFjZSAo bWVtLCBBRERSX1NQQUNFX1NDQUxBUl9GTEFUKTsKKyAgcmV0dXJuIG1lbTsKIH0KIAogLyog SGVscGVyIGZ1bmN0aW9uIGZvciBvYWNjX2RpbV9wb3MgaW5zdHJ1Y3Rpb24uCmRpZmYgLS1n aXQgYS9saWJnb21wL2NvbmZpZy9nY24vdGVhbS5jIGIvbGliZ29tcC9jb25maWcvZ2NuL3Rl YW0uYwppbmRleCAyNTRkZDRkLi40ZmM3YjYyIDEwMDY0NAotLS0gYS9saWJnb21wL2NvbmZp Zy9nY24vdGVhbS5jCisrKyBiL2xpYmdvbXAvY29uZmlnL2djbi90ZWFtLmMKQEAgLTYwLDcg KzYwLDcgQEAgZ29tcF9nY25fZW50ZXJfa2VybmVsICh2b2lkKQogICAgICAgLyogSW5pdGlh bGl6ZSB0aGUgdGVhbSBhcmVuYSBmb3Igb3B0aW1pemVkIG1lbW9yeSBhbGxvY2F0aW9uLgog ICAgICAgICAgVGhlIGFyZW5hIGhhcyBiZWVuIGFsbG9jYXRlZCBvbiB0aGUgaG9zdCBzaWRl LCBhbmQgdGhlIGFkZHJlc3MKICAgICAgICAgIHBhc3NlZCBpbiB2aWEgdGhlIGtlcm5hcmdz LiAgRWFjaCB0ZWFtIHRha2VzIGEgc21hbGwgc2xpY2Ugb2YgaXQuICAqLwotICAgICAgcmVn aXN0ZXIgdm9pZCAqKmtlcm5hcmdzIGFzbSgiczgiKTsKKyAgICAgIHZvaWQgKiprZXJuYXJn cyA9ICh2b2lkKiopIF9fYnVpbHRpbl9nY25fa2VybmFyZ19wdHIgKCk7CiAgICAgICB2b2lk ICp0ZWFtX2FyZW5hID0gKGtlcm5hcmdzWzRdICsgVEVBTV9BUkVOQV9TSVpFKnRlYW1pZCk7 CiAgICAgICB2b2lkICogX19sZHMgKmFyZW5hX3N0YXJ0ID0gKHZvaWQgKiBfX2xkcyAqKVRF QU1fQVJFTkFfU1RBUlQ7CiAgICAgICB2b2lkICogX19sZHMgKmFyZW5hX2ZyZWUgPSAodm9p ZCAqIF9fbGRzICopVEVBTV9BUkVOQV9GUkVFOwo= --------------WYjKGHrvnt0sY5sX5m6kdDEL--