[Bug target/96173] double to _Decimal64 or _Decimal128 conversion with BID generates 3 MB of code
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Jul 12 00:58:22 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96173
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |WONTFIX
Status|UNCONFIRMED |RESOLVED
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
_Decimal128 and _Decimal64 are all software based so there are functions which
implement everything. The main thing which is actually taking up the space is
the functions for the conversions.
The functions for the conversions are all stored in one .o file:
.text 0x00000000004005d0 0x10567
/home/apinski/upstream-gcc/lib/gcc/x86_64-pc-linux-gnu/11.0.0/libgcc.a(bid_binarydecimal.o)
0x00000000004005d0 __bid32_to_binary32
0x0000000000400bf0 __bid64_to_binary32
0x0000000000401460 __bid128_to_binary32
0x0000000000401f10 __bid32_to_binary64
0x0000000000402460 __bid64_to_binary64
0x0000000000402b60 __bid128_to_binary64
0x0000000000403680 __bid32_to_binary80
0x0000000000403e30 __bid64_to_binary80
0x0000000000404870 __bid128_to_binary80
0x0000000000405640 __bid32_to_binary128
0x0000000000405c10 __bid64_to_binary128
0x0000000000406430 __bid128_to_binary128
0x0000000000406fc0 __binary32_to_bid32
0x0000000000407650 __binary64_to_bid32
0x0000000000408100 __binary80_to_bid32
0x0000000000408be0 __binary128_to_bid32
0x0000000000409990 __binary32_to_bid64
0x0000000000409fb0 __binary64_to_bid64
0x000000000040a730 __binary80_to_bid64
0x000000000040b280 __binary128_to_bid64
0x000000000040c040 __binary32_to_bid128
0x000000000040cfa0 __binary64_to_bid128
0x000000000040e160 __binary80_to_bid128
0x000000000040f330 __binary128_to_bid128
Since most of the time when using _Decimal128/_Decimal64, you will be using
many of these files, it won't change the size overall to have these functions
in different .o file.
More information about the Gcc-bugs
mailing list