[git commit] *: add NOINLINEs where code noticeably shrinks
Denys Vlasenko
vda.linux at googlemail.com
Sun Oct 10 11:50:53 UTC 2021
commit: https://git.busybox.net/busybox/commit/?id=53b2fdcdba4ced600da963147be425a21d0f6e53
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master
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 <vda.linux at googlemail.com>
---
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;
More information about the busybox-cvs
mailing list