[Ada] Fast implementation of floating-point mathematical functions
authorEric Botcazou <ebotcazou@adacore.com>
Mon, 28 Mar 2022 07:30:16 +0000 (09:30 +0200)
committerPierre-Marie de Rodat <derodat@adacore.com>
Wed, 18 May 2022 08:41:00 +0000 (08:41 +0000)
commit8b49556e4ee617e0920a9335685c7961971c3d0a
treefe60d094ffe527133f82800aa9172894328148db
parent54cf6609e0c52123db5c600db197647491c33395
[Ada] Fast implementation of floating-point mathematical functions

This adds a package renaming unit to the GNAT hierarchy so as to expose
the underlying implementation of floating-point mathematical functions,
thus also making it possible to use their vector implementation, if any.

The change also contains a small improvement to the Hide_Public_Entities
mechanism in Sem_Ch7 that makes it possible to clear the Is_Public flag
within instances of generic packages that do not have a body.

gcc/ada/

* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-gfmafu$(objext).
(SIMD_PATH_TARGET_PAIRS): New variable.
(TRASYM_DWARF_COMMON_OBJS): Minor tweak.
(x86-64/Linux): Use SIMD_PATH_TARGET_PAIRS.
(x32/Linux): Likewise.
* doc/gnat_rm/the_gnat_library.rst (Generic_Fast_Math_Functions):
New entry.
* gnat_rm.texi: Regenerate.
* impunit.adb (Non_Imp_File_Names_95): Add g-gfmafu.
* sem_ch7.adb (Has_Referencer): Do not set In_Nested_Instance for
instances of generic packages that do not have a body.
* libgnat/a-nalofl__simd.ads: New SIMD-enabled version.
* libgnat/a-nuaufl__simd.ads: Likewise.
* libgnat/g-gfmafu.ads: New package renaming unit.
gcc/ada/Makefile.rtl
gcc/ada/doc/gnat_rm/the_gnat_library.rst
gcc/ada/gnat_rm.texi
gcc/ada/impunit.adb
gcc/ada/libgnat/a-nalofl__simd.ads [new file with mode: 0644]
gcc/ada/libgnat/a-nuaufl__simd.ads [new file with mode: 0644]
gcc/ada/libgnat/g-gfmafu.ads [new file with mode: 0644]
gcc/ada/sem_ch7.adb