diff mbox

[1/9] mtd: cfi_cmdset_0020: Drop unnecessary static

Message ID 1493928654-18768-2-git-send-email-Julia.Lawall@lip6.fr
State Accepted
Commit a63be500c6663a98cedda15c1bb380e9a34349e8
Headers show

Commit Message

Julia Lawall May 4, 2017, 8:10 p.m. UTC
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(-)

Comments

Brian Norris May 11, 2017, 6:49 p.m. UTC | #1
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 mbox

Patch

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.