http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51364

--- Comment #8 from Domingo Alvarez <mingodad at gmail dot com> 2011-12-18 
23:30:43 UTC ---
(In reply to comment #7)
> An executable with decimal float support is very big because the runtime
> support is in static libraries, not in shared libraries (DLLs).  That will
> probably change if it ever gets widespread use.

Thanks for the answer but there is something strange because the jump from a
small executable to a big one +2.5MB is a bit strange, in one test program
consisting of compiling the printf.c of sqlite3 after some defines to allow it
compile outside sqlite3 source tree, the executable using _Decimal64 and
_Decimal128 is 2.49MB and if I remove a call to "isnan" the size go down to
480KB and if I use _Decimal64 in place of _Decimal128 it goes down to 228KB.

With other program that only do some calculations with _Decimal64 and one use
of _Decimal128 result in an executable of 135KB if I add a call to "isnan"
there is no change at all on executable size.

So I got lost on understando the logic that makes gcc add 2MB of static code.

By the results of the second program it seems that it's possible to use
_Decimal64 _Decimal128 and have a reasonable executable size, but suddenly it
jumps to 2.5MB.

I tested lua 5.1.4 as well and it goes from using double from 150KB to using
_Decimal64 to 2.48MB and I tried to cut code where _Math is done on numbers but
without get any executable reduction.

So resuming I think there is possibility to use _Decimal64 without load 2.5MB
it only needs some adjusts to the way gcc is generating code.

Reply via email to