]> git.ipfire.org Git - thirdparty/gcc.git/commit
ada: Rewrite Set_Image_*_Unsigned routines to remove recursion.
authorVasiliy Fofanov <fofanov@adacore.com>
Wed, 26 Jul 2023 08:33:18 +0000 (08:33 +0000)
committerMarc Poulhiès <poulhies@adacore.com>
Thu, 3 Aug 2023 12:07:36 +0000 (14:07 +0200)
commit65a31e22a81f94df87f8248f08a0308aa3d64431
tree52fa6811d8b3074e277ed9f8030b4863fc969ef4
parent3b21dae599fe172c786836da508bad91372b4d09
ada: Rewrite Set_Image_*_Unsigned routines to remove recursion.

This rewriting removes algorithm inefficiencies due to unnecessary
recursion and copying. The new version has much smaller and statically known
stack requirements and is additionally up to 2x faster.

gcc/ada/

* libgnat/s-imageb.adb (Set_Image_Based_Unsigned): Rewritten.
* libgnat/s-imagew.adb (Set_Image_Width_Unsigned): Likewise.
gcc/ada/libgnat/s-imageb.adb
gcc/ada/libgnat/s-imagew.adb