*: code shrink via NOINLINE

function                                             old     new   delta
expand_vars_to_list                                    -    2118   +2118
lzo1x_optimize                                         -    1429   +1429
run_pipe                                             358    1775   +1417
arith_apply                                            -    1335   +1335
mainQSort3                                             -    1198   +1198
logdir_open                                            -    1163   +1163
rewrite                                                -    1039   +1039
dump_identity                                          -     987    +987
do_shm                                                 -     884    +884
cpio_o                                                 -     863    +863
cpio_main                                           1450     560    -890
ipcs_main                                           3442    2523    -919
bb_dump_dump                                        2611    1488   -1123
process_dev                                         4572    3405   -1167
logdirs_reopen                                      1308      86   -1222
arith                                               2084     707   -1377
mainSort                                            2622    1202   -1420
do_lzo_compress                                     2276     799   -1477
run_list                                            2491     943   -1548
expand_variables                                    2280     135   -2145
------------------------------------------------------------------------------
(add/remove: 9/0 grow/shrink: 1/10 up/down: 12433/-13288)    Total: -855 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2009-10-08 12:28:08 +02:00
parent 57ce977a97
commit a7bb3c1396
10 changed files with 41 additions and 10 deletions

View File

@@ -214,3 +214,34 @@ Result (non-static busybox built against glibc):
text data bss dec hex filename
634416 2736 23856 661008 a1610 busybox
632580 2672 22944 658196 a0b14 busybox_noalign
Keeping code small
Set CONFIG_EXTRA_CFLAGS="-fno-inline-functions-called-once",
produce "make bloatcheck", see the biggest auto-inlined functions.
Now, set CONFIG_EXTRA_CFLAGS back to "", but add NOINLINE
to some of these functions. In 1.16.x timeframe, the results were
(annotated "make bloatcheck" output):
function old new delta
expand_vars_to_list - 1712 +1712 win
lzo1x_optimize - 1429 +1429 win
arith_apply - 1326 +1326 win
read_interfaces - 1163 +1163 loss, leave w/o NOINLINE
logdir_open - 1148 +1148 win
check_deps - 1148 +1148 loss
rewrite - 1039 +1039 win
run_pipe 358 1396 +1038 win
write_status_file - 1029 +1029 almost the same, leave w/o NOINLINE
dump_identity - 987 +987 win
mainQSort3 - 921 +921 win
parse_one_line - 916 +916 loss
summarize - 897 +897 almost the same
do_shm - 884 +884 win
cpio_o - 863 +863 win
subCommand - 841 +841 loss
receive - 834 +834 loss
855 bytes saved in total.