mailing list of musl libc
 help / color / mirror / code / Atom feed
* [PATCH] remove ineffective compiler assist from printf
@ 2017-07-04 19:53 Alexander Monakov
  0 siblings, 0 replies; only message in thread
From: Alexander Monakov @ 2017-07-04 19:53 UTC (permalink / raw)
  To: musl

The switch statement has no 'default:' case and the function ends
immediately following the switch, so the extra comparison did not
communicate any extra information to the compiler.
---
Someone reported this on IRC a few weeks ago. MAXSTATE enum value is unused
after this change. Removal reduces code size slightly with gcc-6.

Alexander

 src/stdio/vfprintf.c  | 2 --
 src/stdio/vfwprintf.c | 2 --
 2 files changed, 4 deletions(-)

diff --git a/src/stdio/vfprintf.c b/src/stdio/vfprintf.c
index 8c81efc2..15356f53 100644
--- a/src/stdio/vfprintf.c
+++ b/src/stdio/vfprintf.c
@@ -107,8 +107,6 @@ union arg
 
 static void pop_arg(union arg *arg, int type, va_list *ap)
 {
-	/* Give the compiler a hint for optimizing the switch. */
-	if ((unsigned)type > MAXSTATE) return;
 	switch (type) {
 	       case PTR:	arg->p = va_arg(*ap, void *);
 	break; case INT:	arg->i = va_arg(*ap, int);
diff --git a/src/stdio/vfwprintf.c b/src/stdio/vfwprintf.c
index b8fff208..6e7492a7 100644
--- a/src/stdio/vfwprintf.c
+++ b/src/stdio/vfwprintf.c
@@ -119,8 +119,6 @@ union arg
 
 static void pop_arg(union arg *arg, int type, va_list *ap)
 {
-	/* Give the compiler a hint for optimizing the switch. */
-	if ((unsigned)type > MAXSTATE) return;
 	switch (type) {
 	       case PTR:	arg->p = va_arg(*ap, void *);
 	break; case INT:	arg->i = va_arg(*ap, int);
-- 
2.11.0



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2017-07-04 19:53 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-04 19:53 [PATCH] remove ineffective compiler assist from printf Alexander Monakov

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).