[PATCH] drivers/video/fbdev/sis/sis_main.c: avoid repeated strlen() calls

Subsystems: framebuffer layer, sis framebuffer driver, the rest

STALE4075d

2 messages, 2 authors, 2015-06-12 · open the first message on its own page

[PATCH] drivers/video/fbdev/sis/sis_main.c: avoid repeated strlen() calls

From: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Date: 2015-06-09 13:05:06

gcc is not smart enough to realize that strlen(strbuf1) cannot be
changed by the loop body, so it is forced to recompute it, at least in
the branch containing the assignment. Avoid this by using an
equivalent stopping condition.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
---
 drivers/video/fbdev/sis/sis_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/video/fbdev/sis/sis_main.c b/drivers/video/fbdev/sis/sis_main.c
index fcf610edf217..ea95f8bf3922 100644
--- a/drivers/video/fbdev/sis/sis_main.c
+++ b/drivers/video/fbdev/sis/sis_main.c
@@ -172,7 +172,7 @@ static void sisfb_search_mode(char *name, bool quiet)
 
 	if(strlen(name) <= 19) {
 		strcpy(strbuf1, name);
-		for(i = 0; i < strlen(strbuf1); i++) {
+		for(i = 0; strbuf1[i]; i++) {
 			if(strbuf1[i] < '0' || strbuf1[i] > '9') strbuf1[i] = ' ';
 		}
 
-- 
2.1.3

Re: [PATCH] drivers/video/fbdev/sis/sis_main.c: avoid repeated strlen() calls

From: Tomi Valkeinen <hidden>
Date: 2015-06-12 09:36:31


On 09/06/15 16:04, Rasmus Villemoes wrote:
gcc is not smart enough to realize that strlen(strbuf1) cannot be
changed by the loop body, so it is forced to recompute it, at least in
the branch containing the assignment. Avoid this by using an
equivalent stopping condition.
Does it matter? Is sisfb calling sisfb_search_mode thousands of times?

 Tomi
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help