How to inline string.h function on linux?
Posted
by
tz1
on Stack Overflow
See other posts from Stack Overflow
or by tz1
Published on 2011-03-03T23:03:45Z
Indexed on
2011/03/03
23:24 UTC
Read the original article
Hit count: 302
I want to optimize some code such that all the functions in string.h will be inlined. I'm on x86_64.
I've tried -O3, -minline-all-stringops and when I do "nm a.out" it shows it is calling the glibc version.
Checking with gcc -S, I see the calls.
What am I missing? There are dozens of #ifdef _SOME_SETTING_ in string.h, and bits/string3.h shows the inline version, but I don't know how to get there.
for example:
$ cat test.cinclude
main() { char *a, b; strcpy(b,a); } /
When compiled with:
gcc -minline-all-stringops -O6 -I. -S -o test.S test.c
.file "test.c" .text .p2align 4,,15
.globl main .type main, @function main: .LFB12: .cfi_startproc subq $8, %rsp .cfi_def_cfa_offset 16 xorl %esi, %esi xorl %edi, %edi call strcpy addq $8, %rsp .cfi_def_cfa_offset 8 ret .cfi_endproc .LFE12: .size main, .-main .ident "GCC: (GNU) 4.5.1 20100924 (Red Hat 4.5.1-4)" .section .note.GNU-stack,"",@progbits */
© Stack Overflow or respective owner