Message ID | 1493928654-18768-2-git-send-email-Julia.Lawall@lip6.fr |
---|---|
State | Accepted |
Commit | a63be500c6663a98cedda15c1bb380e9a34349e8 |
Headers | show |
On Thu, May 04, 2017 at 10:10:46PM +0200, Julia Lawall wrote: > Drop static on a local variable, when the variable is initialized before > any use on every possible execution path through the function. The static > has no benefit, and dropping it reduces the code size. > > The semantic patch that fixes this problem is as follows: > (http://coccinelle.lip6.fr/) > > // <smpl> > @bad exists@ > position p; > identifier x; > type T; > @@ > > static T x@p; > ... > x = <+...x...+> > > @@ > identifier x; > expression e; > type T; > position p != bad.p; > @@ > > -static > T x@p; > ... when != x > when strict > ?x = e; > // </smpl> > > The change in code size is indicates by the following output from the size > command. > > before: > text data bss dec hex filename > 16671 48 16 16735 415f drivers/mtd/chips/cfi_cmdset_0020.o > > after: > text data bss dec hex filename > 16639 48 8 16695 4137 drivers/mtd/chips/cfi_cmdset_0020.o > > Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Applied patches 1 and 2 to l2-mtd.git/next, for 4.13.
diff --git a/drivers/mtd/chips/cfi_cmdset_0020.c b/drivers/mtd/chips/cfi_cmdset_0020.c index 94d3eb4..7d34296 100644 --- a/drivers/mtd/chips/cfi_cmdset_0020.c +++ b/drivers/mtd/chips/cfi_cmdset_0020.c @@ -666,7 +666,7 @@ static int cfi_staa_write_buffers (struct mtd_info *mtd, loff_t to, size_t totlen = 0, thislen; int ret = 0; size_t buflen = 0; - static char *buffer; + char *buffer; if (!ECCBUF_SIZE) { /* We should fall back to a general writev implementation.
Drop static on a local variable, when the variable is initialized before any use on every possible execution path through the function. The static has no benefit, and dropping it reduces the code size. The semantic patch that fixes this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @bad exists@ position p; identifier x; type T; @@ static T x@p; ... x = <+...x...+> @@ identifier x; expression e; type T; position p != bad.p; @@ -static T x@p; ... when != x when strict ?x = e; // </smpl> The change in code size is indicates by the following output from the size command. before: text data bss dec hex filename 16671 48 16 16735 415f drivers/mtd/chips/cfi_cmdset_0020.o after: text data bss dec hex filename 16639 48 8 16695 4137 drivers/mtd/chips/cfi_cmdset_0020.o Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> --- drivers/mtd/chips/cfi_cmdset_0020.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)