On Thu, 09 Aug 2012 01:24:18 +0200 John Spencer wrote: > On 08/09/2012 01:08 AM, Isaac Dunham wrote: > > > > Also, how much "bloat" does solar designer's proposal (unroll inside > > BF_body) add? > On 08/08/2012 07:28 AM, Rich Felker wrote: > > The size difference between the versions is roughly 50% (7k vs 11.5k > with -Os and roughly 9k vs 13.5k with -O3). That's not for Solar Designer's proposal, it's for Luka's original patch. The proposal should be somewhere in between; I have a modified one that's running ~1.9k more as .o (which I have _not_ made pretty; it's just for a test!) But just for comparison, I did a check: $ size src/misc/crypt_blowfish*o text data bss dec hex filename 17089 8 0 17097 42c9 src/misc/crypt_blowfish.lo 8738 0 0 8738 2222 src/misc/crypt_blowfish.o 13840 12 0 13852 361c src/misc/crypt_blowfish_old.lo 11430 4 0 11434 2caa src/misc/crypt_blowfish_old.o 17617 8 0 17625 44d9 src/misc/crypt_blowfish_rich.lo 6845 0 0 6845 1abd src/misc/crypt_blowfish_rich.o All compiled with same flags, using GCC 4.1 on Lucid. (-Os = .o; -O3 -fPIC = .lo). > +1 for the size (and clean code) vs speed tradeoff > crypt is a function that very rarely gets called. better keep it > non-bloated. It's interesting that in the shared version (the only case where crypt() size matters to apps not using it), size seems to be inverted, with the old manually unrolled version weighing about 4k less. Isaac Dunham