On Mon, 26 Oct 2020, Jan Hubicka wrote: > Hi, > this patch adds missing string builtins to builtin_fnspec. > Bootstrapped/regtested x86_64-linux, OK?
OK. Thanks, Richard. > gcc/ChangeLog: > > 2020-10-26 Jan Hubicka <hubi...@ucw.cz> > > * builtins.c (builtin_fnspec): Add bzero, memcmp, memcmp_eq, bcmp, > strncmp, strncmp_eq, strncasecmp, rindex, strlen, strlnen, strcasecmp, > strcspn, strspn, strcmp, strcmp_eq. > > diff --git a/gcc/builtins.c b/gcc/builtins.c > index e7d4ff38083..3a3eb5562df 100644 > --- a/gcc/builtins.c > +++ b/gcc/builtins.c > @@ -12960,6 +12960,15 @@ builtin_fnspec (tree callee) > return ".cO3R3"; > case BUILT_IN_BCOPY: > return ".cR3O3"; > + case BUILT_IN_BZERO: > + return ".cO2"; > + case BUILT_IN_MEMCMP: > + case BUILT_IN_MEMCMP_EQ: > + case BUILT_IN_BCMP: > + case BUILT_IN_STRNCMP: > + case BUILT_IN_STRNCMP_EQ: > + case BUILT_IN_STRNCASECMP: > + return ".cR3R3"; > > /* The following functions read memory pointed to by their > first argument. */ > @@ -12987,9 +12996,13 @@ builtin_fnspec (tree callee) > return ".cR "; > > case BUILT_IN_INDEX: > + case BUILT_IN_RINDEX: > case BUILT_IN_STRCHR: > + case BUILT_IN_STRLEN: > case BUILT_IN_STRRCHR: > return ".cR "; > + case BUILT_IN_STRNLEN: > + return ".cR2"; > > /* These read memory pointed to by the first argument. > Allocating memory does not have any side-effects apart from > @@ -13014,6 +13027,11 @@ builtin_fnspec (tree callee) > /* These read memory pointed to by the first and second arguments. */ > case BUILT_IN_STRSTR: > case BUILT_IN_STRPBRK: > + case BUILT_IN_STRCASECMP: > + case BUILT_IN_STRCSPN: > + case BUILT_IN_STRSPN: > + case BUILT_IN_STRCMP: > + case BUILT_IN_STRCMP_EQ: > return ".cR R "; > /* Freeing memory kills the pointed-to memory. More importantly > the call has to serve as a barrier for moving loads and stores > -- Richard Biener <rguent...@suse.de> SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany; GF: Felix Imend