From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) by sourceware.org (Postfix) with ESMTPS id C4FD33857C4F; Mon, 3 Jun 2024 20:01:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C4FD33857C4F Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmx.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C4FD33857C4F Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=212.227.17.22 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1717444911; cv=none; b=fgWcDBktpJjnqeSUlxiEGv2Lh0VJrmp80irx81qFJFfbv1dVHj5fLkcqqDT221MR98gQI0EUsQqYreXhBZh8E+hdfsw2AndOdrZPATkT2/ZKhgvt0IDV8paxnFmHQWfGXniye2/DAytSAvc2n1M26t4kiR4saj/CHkGvU0AiTIQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1717444911; c=relaxed/simple; bh=qb2z5EEOEeSy5d8jeJMmXyBpk2hfpHxucVRdR4UbWEo=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=uiSnvRe8I5ccRF4JGhcDVtnFi/yfMZOUiVgDKM+vqGI+ofhZ2KUO1ijuGb3XJqxi4dG3z7NW5PNp6E4cwMw9wzkjd6Y7n+f1C/moNNEUt86kdgZ/WxUYO3mIw7YBZWEU9pmaT4qr+CwOp0Vb4bTqhmGIh2p89lIOb3bB/adFc7g= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1717444901; x=1718049701; i=anlauf@gmx.de; bh=QolvGFEM3TRa80AcBhgDNkwv1qtOntj0w7jSKSd7uRQ=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=Ms5epXk1zYsRlZt2T6Fq/EE8KQqc6Atw8StUddyhgSwBE+Kz4HsY8kmNxL13yqDm bCrS3YfUIGMB/U9KzvWuEayc3REviSe1/mcdfAv7UaQaFJc9x877L78Gp/Go4+xmW LzSZUwlvnfgDnYh8KmVjuV++dxv4zcGsJyzUuUaQoyx+9tx/6rwmFxgJZ8isfCh3Q rMOUKMfY1YPceVmc68MjYPKjPgcCcMaw0pns4VxeyStTyLk/6g8OoM9CEYoDNcw0y fVrYpfPKVk6qV+iqNAOWwojj9jbhmEUb8VQQ/7tZAE1AHo9mWgJpVOgOSh1P6LhgF 4iDmjb2EhoZfL2P2UQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.178.29] ([79.232.151.231]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1Mqs0X-1ssDO033Vx-00mrCi; Mon, 03 Jun 2024 22:01:41 +0200 Message-ID: <83bafaf9-bf58-4577-a98a-d890292d574d@gmx.de> Date: Mon, 3 Jun 2024 22:01:40 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 03/52] fortran: Replace uses of {FLOAT, {, LONG_}DOUBLE}_TYPE_SIZE To: Kewen Lin , gcc-patches@gcc.gnu.org Cc: fortran@gcc.gnu.org, mikael@gcc.gnu.org Newsgroups: gmane.comp.gcc.patches,gmane.comp.gcc.fortran References: <1866bf880d193a7ff86b4673fe17a5d3e9ab6a96.1717134752.git.linkw@linux.ibm.com> Content-Language: en-US From: Harald Anlauf In-Reply-To: <1866bf880d193a7ff86b4673fe17a5d3e9ab6a96.1717134752.git.linkw@linux.ibm.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Provags-ID: V03:K1:UkLqdpb1OADkH6nYFNOg8PcxE5l+Nx2XHxURk4m1TviQhoAI6/1 FWJQRahtVnZTNm6gwhECS297aWvJHoeKT4gS0CbXfc0zFOH0/8GA/SSMgw7O3QPiVdC3Zs1 QN0HaRP1W4MZmwh2fBq9LTk9EbFWYC+WUVIQaNx0f+EwCcx14Hyjqq+fvfuiyRFC+CqNLua 8nzKHo8xJYdpp/fpoe6bQ== UI-OutboundReport: notjunk:1;M01:P0:R0T0a5CmuJg=;MO/4urf33c8TqyYEjgIjAu9KIOi XuW631r7EPY/dllZayOrhTdgPO2J8u3xK8Lhs8HcsO7IjwDU3fsrwBw/S4jCvm4KV42XxkgEX /24ky/2h+Ngn5z25Fr/R4W4pgGbZ9s5i+s/pxFo3J5qCuH3fvEtRzsE6eQUgG6CKulb7eLNRm 1oveJu3Gc1iEt0ImvUdOU9KSpS8szEVQeYwsducIBeBk+rFIkxuQDzDQkMv7pT/EG2n4dhx4F 18V1RbByOtkSd3lMIwI30xUvMytC9YV6h+8BbMi2K1kPyjP58M19kabQ0+mbt0JMtUek1h42a 9PsDkhv7bShUAOcaYZbKZSLIl/1q+pQQstjxlb9ubsIiZOcuTs7X5EnxcJWYKUeEMBEfv3CBF 9ZTW8vmo5/1RXBsB/YeoO4JxuNESUirpAXrb+WLfGTYuPUR1Hsp54wrCawAPAze4Ow2wbReDP xmJZjib9ETM34JVkS0gIDNyiSC5NrmbtnULPm4cmUgkYf4Uf8r88Schs04y4OFT7qqTnzGYXi ldb72kG8Jeu4Sd00Os7TW9WWT0aXDPktojZSYsJZ8iKl+K5JijhqyInmbNXgapUn8cVujxBNA FP3nhXFcvXeK6QE8Qd690+SWS63fTZz2aMxRwCB69KljQinP1eTvXH1Gx5kvgqd4r8TWW76N4 bZx696sruelyK362QHkJgcrSX5LIh2+vOt7OALZLzM/MXErgRYOxhD8Fp88FGDprMgw21iV72 3GzGcI8LKAYYq/5AZLvoltmTJKrrkNa2bcVt1nfdfzWxpNnA52+2W+s1UCJFBkwgICdh2NlAy 7Cq7HsEtD91USmKR4aaQtKgoyw3V0TEFNFZxibjrKmLxY= X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,KAM_SHORT,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,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: Hi, Am 03.06.24 um 05:00 schrieb Kewen Lin: > Joseph pointed out "floating types should have their mode, > not a poorly defined precision value" in the discussion[1], > as he and Richi suggested, the existing macros > {FLOAT,{,LONG_}DOUBLE}_TYPE_SIZE will be replaced with a > hook mode_for_floating_type. To be prepared for that, this > patch is to replace use of {FLOAT,{,LONG_}DOUBLE}_TYPE_SIZE > in fortran with TYPE_PRECISION of > {float,{,long_}double}_type_node. > > [1] https://gcc.gnu.org/pipermail/gcc-patches/2024-May/651209.html > > gcc/fortran/ChangeLog: > > * trans-intrinsic.cc (build_round_expr): Use TYPE_PRECISION of > long_double_type_node to replace LONG_DOUBLE_TYPE_SIZE. > * trans-types.cc (gfc_build_real_type): Use TYPE_PRECISION of > {float,double,long_double}_type_node to replace > {FLOAT,DOUBLE,LONG_DOUBLE}_TYPE_SIZE. > --- > gcc/fortran/trans-intrinsic.cc | 3 ++- > gcc/fortran/trans-types.cc | 10 ++++++---- > 2 files changed, 8 insertions(+), 5 deletions(-) > > diff --git a/gcc/fortran/trans-intrinsic.cc b/gcc/fortran/trans-intrinsi= c.cc > index 912c1000e18..96839705112 100644 > --- a/gcc/fortran/trans-intrinsic.cc > +++ b/gcc/fortran/trans-intrinsic.cc > @@ -395,7 +395,8 @@ build_round_expr (tree arg, tree restype) > don't have an appropriate function that converts directly to the = integer > type (such as kind =3D=3D 16), just use ROUND, and then convert t= he result to > an integer. We might also need to convert the result afterwards.= */ > - if (resprec <=3D INT_TYPE_SIZE && argprec <=3D LONG_DOUBLE_TYPE_SIZE) > + if (resprec <=3D INT_TYPE_SIZE > + && argprec <=3D TYPE_PRECISION (long_double_type_node)) > fn =3D builtin_decl_for_precision (BUILT_IN_IROUND, argprec); > else if (resprec <=3D LONG_TYPE_SIZE) > fn =3D builtin_decl_for_precision (BUILT_IN_LROUND, argprec); > diff --git a/gcc/fortran/trans-types.cc b/gcc/fortran/trans-types.cc > index 8466c595e06..0ef67723fcd 100644 > --- a/gcc/fortran/trans-types.cc > +++ b/gcc/fortran/trans-types.cc > @@ -873,13 +873,15 @@ gfc_build_real_type (gfc_real_info *info) > int mode_precision =3D info->mode_precision; > tree new_type; > > - if (mode_precision =3D=3D FLOAT_TYPE_SIZE) > + if (mode_precision =3D=3D TYPE_PRECISION (float_type_node)) > info->c_float =3D 1; > - if (mode_precision =3D=3D DOUBLE_TYPE_SIZE) > + if (mode_precision =3D=3D TYPE_PRECISION (double_type_node)) > info->c_double =3D 1; > - if (mode_precision =3D=3D LONG_DOUBLE_TYPE_SIZE && !info->c_float128) > + if (mode_precision =3D=3D TYPE_PRECISION (long_double_type_node) > + && !info->c_float128) > info->c_long_double =3D 1; > - if (mode_precision !=3D LONG_DOUBLE_TYPE_SIZE && mode_precision =3D= =3D 128) > + if (mode_precision !=3D TYPE_PRECISION (long_double_type_node) > + && mode_precision =3D=3D 128) > { > /* TODO: see PR101835. */ > info->c_float128 =3D 1; the Fortran part looks good to me. Thanks, Harald From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ciao.gmane.io (ciao.gmane.io [116.202.254.214]) by sourceware.org (Postfix) with ESMTPS id AA56F39524B1 for ; Mon, 3 Jun 2024 20:01:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AA56F39524B1 Authentication-Results: sourceware.org; dmarc=fail (p=quarantine dis=none) header.from=gmx.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=m.gmane-mx.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org AA56F39524B1 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=116.202.254.214 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1717444911; cv=none; b=RzR2HRq1cYN/uYhiQauY3BA1PuwB6rHTuzjYi26wSyEQczETDYxrtIvzc/ELvUlcE7KbIGVf9plckI0frD+kwTutnCcsFcE6vhVlzU7LLKKAnSGCNB4AJ/KABrTmrkDGhQm87oMfUuNhKnjwj0tqHDEtlda+4IKpJmVbCP/U9No= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1717444911; c=relaxed/simple; bh=4AZude9z+V5NB/3lZkq72aqlBmY/7EJHMpbfGt4/eaM=; h=To:From:Subject:Date:Message-ID:Mime-Version; b=L22FmyQ2CdgGxSQWj6Hh7AzmHFqy6i88BDI9EVn/1gP5ZVSoU7eq6dWjmgLBbV2A2tX4JhOkMEeZf+cJ3Qg529FT0ce8uLtZCojUc4/0XdGWpjVHnN+zYtV2PRfUhK9SG2jleCL1PC7TBPUl2jRZdVM2Ybgu14Dc1eLTsUM5emY= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1sEDsJ-0005tf-KA for gcc-patches@gcc.gnu.org; Mon, 03 Jun 2024 22:01:47 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: gcc-patches@gcc.gnu.org From: Harald Anlauf Subject: Re: [PATCH 03/52] fortran: Replace uses of {FLOAT, {, LONG_}DOUBLE}_TYPE_SIZE Date: Mon, 3 Jun 2024 22:01:40 +0200 Message-ID: <83bafaf9-bf58-4577-a98a-d890292d574d@gmx.de> References: <1866bf880d193a7ff86b4673fe17a5d3e9ab6a96.1717134752.git.linkw@linux.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit User-Agent: Mozilla Thunderbird Content-Language: en-US In-Reply-To: <1866bf880d193a7ff86b4673fe17a5d3e9ab6a96.1717134752.git.linkw@linux.ibm.com> Cc: fortran@gcc.gnu.org X-Spam-Status: No, score=-9.2 required=5.0 tests=BAYES_00,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,KAM_SHORT,SPF_HELO_NONE,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: Message-ID: <20240603200140.IJj3abHK1yxRZSulnjPRMKse0EXzFkez7swVukUca6M@z> Hi, Am 03.06.24 um 05:00 schrieb Kewen Lin: > Joseph pointed out "floating types should have their mode, > not a poorly defined precision value" in the discussion[1], > as he and Richi suggested, the existing macros > {FLOAT,{,LONG_}DOUBLE}_TYPE_SIZE will be replaced with a > hook mode_for_floating_type. To be prepared for that, this > patch is to replace use of {FLOAT,{,LONG_}DOUBLE}_TYPE_SIZE > in fortran with TYPE_PRECISION of > {float,{,long_}double}_type_node. > > [1] https://gcc.gnu.org/pipermail/gcc-patches/2024-May/651209.html > > gcc/fortran/ChangeLog: > > * trans-intrinsic.cc (build_round_expr): Use TYPE_PRECISION of > long_double_type_node to replace LONG_DOUBLE_TYPE_SIZE. > * trans-types.cc (gfc_build_real_type): Use TYPE_PRECISION of > {float,double,long_double}_type_node to replace > {FLOAT,DOUBLE,LONG_DOUBLE}_TYPE_SIZE. > --- > gcc/fortran/trans-intrinsic.cc | 3 ++- > gcc/fortran/trans-types.cc | 10 ++++++---- > 2 files changed, 8 insertions(+), 5 deletions(-) > > diff --git a/gcc/fortran/trans-intrinsic.cc b/gcc/fortran/trans-intrinsic.cc > index 912c1000e18..96839705112 100644 > --- a/gcc/fortran/trans-intrinsic.cc > +++ b/gcc/fortran/trans-intrinsic.cc > @@ -395,7 +395,8 @@ build_round_expr (tree arg, tree restype) > don't have an appropriate function that converts directly to the integer > type (such as kind == 16), just use ROUND, and then convert the result to > an integer. We might also need to convert the result afterwards. */ > - if (resprec <= INT_TYPE_SIZE && argprec <= LONG_DOUBLE_TYPE_SIZE) > + if (resprec <= INT_TYPE_SIZE > + && argprec <= TYPE_PRECISION (long_double_type_node)) > fn = builtin_decl_for_precision (BUILT_IN_IROUND, argprec); > else if (resprec <= LONG_TYPE_SIZE) > fn = builtin_decl_for_precision (BUILT_IN_LROUND, argprec); > diff --git a/gcc/fortran/trans-types.cc b/gcc/fortran/trans-types.cc > index 8466c595e06..0ef67723fcd 100644 > --- a/gcc/fortran/trans-types.cc > +++ b/gcc/fortran/trans-types.cc > @@ -873,13 +873,15 @@ gfc_build_real_type (gfc_real_info *info) > int mode_precision = info->mode_precision; > tree new_type; > > - if (mode_precision == FLOAT_TYPE_SIZE) > + if (mode_precision == TYPE_PRECISION (float_type_node)) > info->c_float = 1; > - if (mode_precision == DOUBLE_TYPE_SIZE) > + if (mode_precision == TYPE_PRECISION (double_type_node)) > info->c_double = 1; > - if (mode_precision == LONG_DOUBLE_TYPE_SIZE && !info->c_float128) > + if (mode_precision == TYPE_PRECISION (long_double_type_node) > + && !info->c_float128) > info->c_long_double = 1; > - if (mode_precision != LONG_DOUBLE_TYPE_SIZE && mode_precision == 128) > + if (mode_precision != TYPE_PRECISION (long_double_type_node) > + && mode_precision == 128) > { > /* TODO: see PR101835. */ > info->c_float128 = 1; the Fortran part looks good to me. Thanks, Harald