From: Sam S. <sd...@gn...> - 2007-12-06 19:20:46
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Bruno, I found the way comelem.d:N_N_equal is written (see cmp1.c, attached) to be counterintuitive, ugly, and unreadable, so I rewrote it in the more algebraic way, using a single return (see cmp1.c, attached). Then I thought that you probably has a reason why you wrote it the way you did, and the only reason I could think of was optimization, so I decided to compare the assembly for the 2 version. Since I can hardly read assembly (I can guess what "jmp" does, but not what "movzbl" does), all I did was compare the assembly length: 165 378 2502 cmp1-O0.s 163 386 2527 cmp1-O2.s 181 417 2769 cmp2-O0.s 163 382 2487 cmp2-O2.s i.e.: the algebraic version optimizes to slightly smaller size than the ugly one, but the unoptimized algebraic version is about 10% larger than the ugly one. Can you provide some insight into this issue? Specifically, why did you use the ugly version - is it really better? Thanks! Sam. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHWEtMPp1Qsf2qnMcRAmOaAJ0U/vzBnaQ7oU3z2ZVkWqAhGRcWLgCdHV1A L7PlpFGcy5o4F477G2FVn0A= =DN/4 -----END PGP SIGNATURE----- |