From 53b2fdcdba4ced600da963147be425a21d0f6e53 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Sun, 10 Oct 2021 13:50:53 +0200 Subject: [PATCH] *: add NOINLINEs where code noticeably shrinks function old new delta display 85 1463 +1378 -73 bytes select_and_cluster - 1088 +1088 -139 bytes parse_reply - 979 +979 -109 bytes zbc_num_sqrt - 632 +632 -191 bytes show_bridge_port - 585 +585 -56 bytes sp_256_proj_point_add_8 - 576 +576 -45 bytes encode_then_append_var_plusminus - 554 +554 -118 bytes read_mode_db - 537 +537 -47 bytes fbset_main 1331 747 -584 sp_256_ecc_mulmod_8 1157 536 -621 brctl_main 2189 1548 -641 expand_one_var 2544 1872 -672 zxc_vm_process 6412 5589 -823 send_queries 1813 725 -1088 recv_and_process_peer_pkt 2245 1018 -1227 bb_dump_dump 1531 80 -1451 ------------------------------------------------------------------------------ (add/remove: 7/0 grow/shrink: 1/8 up/down: 6329/-7107) Total: -778 bytes Signed-off-by: Denys Vlasenko --- libbb/dump.c | 2 +- miscutils/bc.c | 2 +- networking/brctl.c | 2 +- networking/nslookup.c | 2 +- networking/ntpd.c | 2 +- networking/tls_sp_c32.c | 2 +- shell/hush.c | 2 +- util-linux/fbset.c | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/libbb/dump.c b/libbb/dump.c index f8bb6fd03..fcdee8343 100644 --- a/libbb/dump.c +++ b/libbb/dump.c @@ -532,7 +532,7 @@ static void conv_u(PR *pr, unsigned char *p) } } -static void display(priv_dumper_t* dumper) +static NOINLINE void display(priv_dumper_t* dumper) { unsigned char *bp; unsigned char savech = '\0'; diff --git a/miscutils/bc.c b/miscutils/bc.c index f9b08b01e..ae370ff55 100644 --- a/miscutils/bc.c +++ b/miscutils/bc.c @@ -2261,7 +2261,7 @@ static FAST_FUNC BC_STATUS zbc_num_p(BcNum *a, BcNum *b, BcNum *restrict c, size } #define zbc_num_p(...) (zbc_num_p(__VA_ARGS__) COMMA_SUCCESS) -static BC_STATUS zbc_num_sqrt(BcNum *a, BcNum *restrict b, size_t scale) +static NOINLINE BC_STATUS zbc_num_sqrt(BcNum *a, BcNum *restrict b, size_t scale) { BcStatus s; BcNum num1, num2, half, f, fprime, *x0, *x1, *temp; diff --git a/networking/brctl.c b/networking/brctl.c index c83aac6e0..956bd91f3 100644 --- a/networking/brctl.c +++ b/networking/brctl.c @@ -318,7 +318,7 @@ static void printf_xstrtou(const char *fmt) printf(fmt, xstrtou(filedata, 0)); } -static void show_bridge_port(const char *name) +static NOINLINE void show_bridge_port(const char *name) { char pathbuf[IFNAMSIZ + sizeof("/brport/forward_delay_timer") + 8]; char *sfx; diff --git a/networking/nslookup.c b/networking/nslookup.c index de7b5c0e7..6da97baf4 100644 --- a/networking/nslookup.c +++ b/networking/nslookup.c @@ -335,7 +335,7 @@ enum { OPT_debug = (1 << 0), }; -static int parse_reply(const unsigned char *msg, size_t len) +static NOINLINE int parse_reply(const unsigned char *msg, size_t len) { HEADER *header; diff --git a/networking/ntpd.c b/networking/ntpd.c index 5bd4d2d3e..204e1d7c2 100644 --- a/networking/ntpd.c +++ b/networking/ntpd.c @@ -1152,7 +1152,7 @@ fit(peer_t *p, double rd) // return 0; return 1; } -static peer_t* +static NOINLINE peer_t* select_and_cluster(void) { peer_t *p; diff --git a/networking/tls_sp_c32.c b/networking/tls_sp_c32.c index 4c0cd320b..4d4ecdd74 100644 --- a/networking/tls_sp_c32.c +++ b/networking/tls_sp_c32.c @@ -1162,7 +1162,7 @@ static void sp_256_proj_point_dbl_8(sp_point* r, sp_point* p) * p Frist point to add. * q Second point to add. */ -static void sp_256_proj_point_add_8(sp_point* r, sp_point* p, sp_point* q) +static NOINLINE void sp_256_proj_point_add_8(sp_point* r, sp_point* p, sp_point* q) { sp_digit t1[2*8]; sp_digit t2[2*8]; diff --git a/shell/hush.c b/shell/hush.c index 87fc2f445..7156297cf 100644 --- a/shell/hush.c +++ b/shell/hush.c @@ -6311,7 +6311,7 @@ static char *encode_then_expand_vararg(const char *str, int handle_squotes, int /* Expanding ARG in ${var+ARG}, ${var-ARG} */ -static int encode_then_append_var_plusminus(o_string *output, int n, +static NOINLINE int encode_then_append_var_plusminus(o_string *output, int n, char *str, int dquoted) { struct in_str input; diff --git a/util-linux/fbset.c b/util-linux/fbset.c index cc5413b40..41cc29f37 100644 --- a/util-linux/fbset.c +++ b/util-linux/fbset.c @@ -267,7 +267,7 @@ static void ss(uint32_t *x, uint32_t flag, char *buf, const char *what) * vsync high * endmode */ -static int read_mode_db(struct fb_var_screeninfo *base, const char *fn, +static NOINLINE int read_mode_db(struct fb_var_screeninfo *base, const char *fn, const char *mode) { char *token[2], *p, *s;