This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [GLIBC][PATCH] Remove strcmp inlines



On 12/12/2016 10:40, Zack Weinberg wrote:
> On Mon, Dec 12, 2016 at 7:11 AM, Wilco Dijkstra <Wilco.Dijkstra@arm.com> wrote:
>> Remove the str(n)cmp inlines from string/bits/string2.h.  The strncmp
>> optimization seems unlikely to ever be useful, but if it occurs in
>> real code it should be added to GCC.  Expanding strcmp of small strings
>> does appear useful (benchmarking shows it is 2-3x faster), so this would
>> be useful to implement in GCC.
> 
> I'm inclined to say that the strcmp expansion should stick around
> until after it _is_ added to GCC.  Code such as
> 
> int main(int argc, char **argv)
> {
>     return (argc == 2 &&
>         (!strcmp(argv[1], "-w") ||
>          !strcmp(argv[1], "-x") ||
>          !strcmp(argv[1], "-z") ||
>          !strcmp(argv[1], "-t")));
> }
> 
> is reasonably likely to appear in real life and is significantly
> improved by the expansion.

But I hardly see this as a performance hotstop for any significant workload,
but rather as a microptimization that has driven string2.h creation as a
whole.

Also the idea is to avoid rely on specific libc implementation to actually
get these kind of optimization (if it is worth).


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]