[Bug middle-end/78809] Inline strcmp with small constant strings
qing.zhao at oracle dot com
gcc-bugzilla@gcc.gnu.org
Mon Oct 23 20:13:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78809
--- Comment #6 from Qing Zhao <qing.zhao at oracle dot com> ---
(A correction to comment 4:
when adding #include <string.h>, the call to strcmp(s, "a") was inlined by
glibc in the header
with the latest upstream GCC
)
with attached testing case, on GCC farm machine gcc116, I got the following
run-time performance data:
qinzhao@gcc116:~/Bugs/78809/const_cmp$ sh t_p
/home/qinzhao/Install/latest/bin/gcc -O2 t_p_1.c t_p.c -DINLINED
inlined version
41.67user 0.00system 0:41.67elapsed 99%CPU (0avgtext+0avgdata 360maxresident)k
0inputs+0outputs (0major+135minor)pagefaults 0swaps
/home/qinzhao/Install/latest/bin/gcc -O2 t_p_1.c t_p.c
non-inlined version
20.84user 0.00system 0:20.83elapsed 100%CPU (0avgtext+0avgdata 360maxresident)k
0inputs+0outputs (0major+135minor)pagefaults 0swaps
>From the data, we can see the inlined version of strcmp (by glibc) is much
slower than the direct call to strcmp. (this is for size 2)
I am using GCC farm machine gcc116:
qinzhao@gcc116:~/Bugs/78809/const_cmp$ uname -a
Linux gcc116 3.13.0-92-generic #139-Ubuntu SMP Tue Jun 28 20:45:34 UTC 2016
aarch64 aarch64 aarch64 GNU/Linux
More information about the Gcc-bugs
mailing list