From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from rock.gnat.com (rock.gnat.com [205.232.38.15]) by sourceware.org (Postfix) with ESMTP id 1A7713988884 for ; Wed, 5 May 2021 08:20:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 1A7713988884 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=derodat@adacore.com Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id E27431171AD; Wed, 5 May 2021 04:20:04 -0400 (EDT) X-Virus-Scanned: Debian amavisd-new at gnat.com Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id AUjFeBP6MOni; Wed, 5 May 2021 04:20:04 -0400 (EDT) Received: from tron.gnat.com (tron.gnat.com [205.232.38.10]) by rock.gnat.com (Postfix) with ESMTP id C4166116DF6; Wed, 5 May 2021 04:20:04 -0400 (EDT) Received: by tron.gnat.com (Postfix, from userid 4862) id C34A0103; Wed, 5 May 2021 04:20:04 -0400 (EDT) Date: Wed, 5 May 2021 04:20:04 -0400 From: Pierre-Marie de Rodat To: gcc-patches@gcc.gnu.org Cc: Eric Botcazou Subject: [Ada] Implement tiered support for floating-point output operations Message-ID: <20210505082004.GA31155@adacore.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="AqsLC8rIMeq19msA" Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) X-Spam-Status: No, score=-6.5 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 May 2021 08:20:07 -0000 --AqsLC8rIMeq19msA Content-Type: text/plain; charset=us-ascii Content-Disposition: inline This changes the implementation of output operations for floating-point types from using Long_Long_Float for all floating-point types to using a base type tailored to the type being operated on. This comprises adjusting Ada.Text_IO.Float_IO and Ada.Text_IO.Complex_IO to the new approach, as well as sibling packages in the Ada.Wide_Text_IO and Ada.Wide_Wide_Text_IO hierarchies. The main issue is the loss of precision in Float (and Long_Float for x86) so the computations are performed in double precision internally by using a small generic package implementing a classical "double-double" library. This means that the precision loss is minimal for Float (12 vs 15 digits) and that the precision doubles for Long_Float (30 vs 15 digits); in both cases this is twice the precision required by the Image attribute. The input routines are also changed to use this double precision, which finally guarantees correct rounding (0.5ulp) for the Value attribute of the Float and Long_Float types. The patch also changes the fallback path of fixed-point support routines to use Long_Float instead of Long_Long_Float, so as to avoid the x87 FPU and to yield the same results on all architectures. In order to avoid breaking backward compatibility with user code, the System.Img_Real package is preserved as a forwarder to System.Img_LLF. Tested on x86_64-pc-linux-gnu, committed on trunk gcc/ada/ * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-dourea, s-imager, s-imgflt, s-imglfl and s-imgllf. (LIBGNAT_TARGET_PAIRS) [PowerPC/VxWorks]: Use s-dorepr__fma.adb. (LIBGNAT_TARGET_PAIRS) [PowerPC/VxWorksAE]: Likewise. (LIBGNAT_TARGET_PAIRS) [Aarch64/VxWorks]: Likewise. (LIBGNAT_TARGET_PAIRS) [Aarch64/QNX]: Likewise. (LIBGNAT_TARGET_PAIRS) [Aarch64/FreeBSD]: Likewise. (LIBGNAT_TARGET_PAIRS) [PowerPC/Linux]: Likewise. (LIBGNAT_TARGET_PAIRS) [Aarch64/Linux]: Likewise. (LIBGNAT_TARGET_PAIRS) [IA-64/Linux]: Likewise. (LIBGNAT_TARGET_PAIRS) [IA-64/HP-UX]: Likewise. (LIBGNAT_TARGET_PAIRS) [RISC-V/Linux]: Likewise. (LIBGNAT_TARGET_PAIRS) [PowerPC/Darwin]: Likewise. * exp_attr.adb (Expand_N_Attribute_Reference) [Attribute_Fore]: Use Fixed suffix and Long_Float type. * exp_imgv.adb (Expand_Image_Attribute): For floating-point types, use the routine of the corresponding root type. For ordinary fixed point types, use Fixed suffix and Long_Float type. (Expand_Value_Attribute): Revert latest change for Long_Long_Float. * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Remove libgnat units g-hesora.o and s-imgenu.o, add g-heasor.o, g-table.o and s-pehage.o. (GNATBIND_OBJS): Remove libgnat unit s-imgenu.o. * rtsfind.ads (RTU_Id): Add System_Img_Flt, System_Img_LFlt and System_Img_LLF. Remove System_Img_Real. (RE_Id): Rename RE_Fore_Real to RE_Fore_Fixed. Add RE_Image_Float, RE_Image_Long_Float and RE_Image_Long_Long_Float. Rename RE_Image_Ordinary_Fixed_Point to RE_Image_Fixed. (RE_Unit_Table): Adjust to above changes. * libgnat/a-nbnbre.adb (Fixed_Conversions): Use Long_Float instead of Long_Long_Float. * libgnat/a-textio.ads (Field): Remove obsolete comment. * libgnat/a-ticoau.ads (Aux): Adjust ancestor package. * libgnat/a-ticoau.adb: Remove with/use clause for System.Img_Real. (Puts): Call Aux.Set_Image instead of Set_Image_Real. * libgnat/a-ticoio.adb: Add with/use clauses for System.Img_Flt, System.Img_LFlt and System.Img_LLF. (Scalar_Float): Add third actual parameter. (Scalar_Long_Float): Likewise. (Scalar_Long_Long_Float): Likewise. * libgnat/a-tifiio.adb: Add with/use clauses for System.Img_LFlt and System.Val_LFlt. Remove the one for System.Val_LLF. Replace Long_Long_Float with Long_Float throughout. * libgnat/a-tifiio__128.adb: Likewise. * libgnat/a-tiflau.ads: Add Set_Image formal parameter. * libgnat/a-tiflau.adb: Add with/use clause for System.Img_Util, remove the one for System.Img_Real. (Put): Call Set_Image instead of Set_Image_Real. (Puts): Likewise. * libgnat/a-tiflio.adb: Add with/use clause for System.Img_Flt, System.Img_LFlt and System.Img_LLF. (Aux_Float): Add third actual parameter. (Aux_Long_Float): Likewise. (Aux_Long_Long_Float): Likewise. * libgnat/a-witeio.ads (Field): Remove obsolete comment. * libgnat/a-wtcoau.ads (Aux): Adjust ancestor package. * libgnat/a-wtcoau.adb: Remove with/use clause for System.Img_Real. (Puts): Call Aux.Set_Image instead of Set_Image_Real. * libgnat/a-wtcoio.adb: Add with/use clauses for System.Img_Flt, System.Img_LFlt and System.Img_LLF. (Scalar_Float): Add third actual parameter. (Scalar_Long_Float): Likewise. (Scalar_Long_Long_Float): Likewise. * libgnat/a-wtfiio.adb: Add with/use clauses for System.Img_LFlt and System.Val_LFlt. Remove the one for System.Val_LLF. Replace Long_Long_Float with Long_Float throughout. * libgnat/a-wtfiio__128.adb: Likewise. * libgnat/a-wtflau.ads: Add Set_Image formal parameter. * libgnat/a-wtflau.adb: Add with/use clause for System.Img_Util, remove the one for System.Img_Real. (Put): Call Set_Image instead of Set_Image_Real. (Puts): Likewise. * libgnat/a-wtflio.adb: Add with/use clause for System.Img_Flt, System.Img_LFlt and System.Img_LLF. (Aux_Float): Add third actual parameter. (Aux_Long_Float): Likewise. (Aux_Long_Long_Float): Likewise. * libgnat/a-ztexio.ads (Field): Remove obsolete comment. * libgnat/a-ztcoau.ads (Aux): Adjust ancestor package. * libgnat/a-ztcoau.adb: Remove with/use clause for System.Img_Real. (Puts): Call Aux.Set_Image instead of Set_Image_Real. * libgnat/a-ztcoio.adb: Add with/use clauses for System.Img_Flt, System.Img_LFlt and System.Img_LLF. (Scalar_Float): Add third actual parameter. (Scalar_Long_Float): Likewise. (Scalar_Long_Long_Float): Likewise. * libgnat/a-ztfiio.adb: Add with/use clauses for System.Img_LFlt and System.Val_LFlt. Remove the one for System.Val_LLF. Replace Long_Long_Float with Long_Float throughout. * libgnat/a-ztfiio__128.adb: Likewise. * libgnat/a-ztflau.ads: Add Set_Image formal parameter. * libgnat/a-ztflau.adb: Add with/use clause for System.Img_Util, remove the one for System.Img_Real. (Put): Call Set_Image instead of Set_Image_Real. (Puts): Likewise. * libgnat/a-ztflio.adb: Add with/use clause for System.Img_Flt, System.Img_LFlt and System.Img_LLF. (Aux_Float): Add third actual parameter. (Aux_Long_Float): Likewise. (Aux_Long_Long_Float): Likewise. * libgnat/s-dorepr.adb: New file. * libgnat/s-dorepr__fma.adb: Likewise. * libgnat/s-dourea.ads: Likewise. * libgnat/s-dourea.adb: Likewise. * libgnat/s-forrea.ads (Fore_Real): Rename into... (Fore_Fixed): ...this and take Long_Float parameters. * libgnat/s-forrea.adb (Fore_Real): Likewise. (Fore_Fixed): Likewise. * libgnat/s-imgrea.ads: Move to... (Set_Image_Real): Turn into mere renaming. * libgnat/s-imager.ads: ...here. (Image_Ordinary_Fixed_Point): Turn into... (Image_Fixed_Point): ...this. * libgnat/s-imgrea.adb: Add pragma No_Body. Move to... * libgnat/s-imager.adb: ...here. (Image_Ordinary_Fixed_Point): Turn into... (Image_Fixed_Point): ...this. (Is_Negative): Replace Long_Long_Float with Num. (Set_Image_Real): Likewise. Use Double_T instead of single Num throughout the algorithm. * libgnat/s-imgflt.ads: New file. * libgnat/s-imglfl.ads: Likewise. * libgnat/s-imgllf.ads: Likewise. * libgnat/s-imagef.ads: Adjust comment. * libgnat/s-imguti.ads (Max_Real_Image_Length): New named number. * libgnat/s-powflt.ads (Maxpow): Adjust. (Powten): Turn into an exact table of double Float. * libgnat/s-powlfl.ads (Maxpow): Adjust. (Powten): Turn into an exact table of double Long_Float. * libgnat/s-powllf.ads (Maxpow): Adjust. (Powten): Turn into an exact table of double Long_Long_Float. * libgnat/s-valrea.ads: Change order of formal parameters. * libgnat/s-valrea.adb: Add with clause for System.Double_Real. (Double_Real): New instantiation. (Fast2Sum): Delete. (Large_Powten): New function. (Integer_to_Real): Use Quick_Two_Sum instead of Fast2Sum. Convert the value to Double_T. Do the scaling in Double_T for base 10. * libgnat/s-valflt.ads: Remove with/use clasue for Interfaces, add it for System.Unsigned_Types. Use Unsigned. * libgnat/s-vallfl.ads: Remove with/use clasue for Interfaces, add it for System.Unsigned_Types. Use Long_Unsigned. * libgnat/s-valllf.ads: Remove with/use clasue for Interfaces, add it for System.Unsigned_Types. Use Long_Long_Unsigned. --AqsLC8rIMeq19msA Content-Type: application/gzip Content-Disposition: attachment; filename="patch.diff.gz" Content-Transfer-Encoding: base64 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 +pEPfiURZd+BOf//Af3BNeFQgwIA --AqsLC8rIMeq19msA--