Refactor string benchtests
Refactor string benchtests by moving duplicated defines into bench-string.h. * benchtests/bench-memchr.c: Cleanup defines. * benchtests/bench-memcmp.c: Likewise. * benchtests/bench-memset.c: Likewise. * benchtests/bench-memset-large.c: Likewise. * benchtests/bench-memset-walk.c: Likewise. * benchtests/bench-stpcpy.c: Likewise. * benchtests/bench-stpncpy.c: Likewise. * benchtests/bench-strcat.c: Likewise. * benchtests/bench-strchr.c: Likewise. * benchtests/bench-strcmp.c: Likewise. * benchtests/bench-strcpy.c: Likewise. * benchtests/bench-strcspn.c: Likewise. * benchtests/bench-string.h: Likewise. * benchtests/bench-strlen.c: Likewise. * benchtests/bench-strncat.c: Likewise. * benchtests/bench-strncmp.c: Likewise. * benchtests/bench-strncpy.c: Likewise. * benchtests/bench-strnlen.c: Likewise. * benchtests/bench-strpbrk.c: Likewise. * benchtests/bench-strrchr.c: Likewise. * benchtests/bench-strspn.c: Likewise.
This commit is contained in:
parent
5d025ea617
commit
90d3320d7f
24
ChangeLog
24
ChangeLog
|
@ -1,3 +1,27 @@
|
||||||
|
2018-12-21 Wilco Dijkstra <wdijkstr@arm.com>
|
||||||
|
|
||||||
|
* benchtests/bench-memchr.c: Cleanup defines.
|
||||||
|
* benchtests/bench-memcmp.c: Likewise.
|
||||||
|
* benchtests/bench-memset.c: Likewise.
|
||||||
|
* benchtests/bench-memset-large.c: Likewise.
|
||||||
|
* benchtests/bench-memset-walk.c: Likewise.
|
||||||
|
* benchtests/bench-stpcpy.c: Likewise.
|
||||||
|
* benchtests/bench-stpncpy.c: Likewise.
|
||||||
|
* benchtests/bench-strcat.c: Likewise.
|
||||||
|
* benchtests/bench-strchr.c: Likewise.
|
||||||
|
* benchtests/bench-strcmp.c: Likewise.
|
||||||
|
* benchtests/bench-strcpy.c: Likewise.
|
||||||
|
* benchtests/bench-strcspn.c: Likewise.
|
||||||
|
* benchtests/bench-string.h: Likewise.
|
||||||
|
* benchtests/bench-strlen.c: Likewise.
|
||||||
|
* benchtests/bench-strncat.c: Likewise.
|
||||||
|
* benchtests/bench-strncmp.c: Likewise.
|
||||||
|
* benchtests/bench-strncpy.c: Likewise.
|
||||||
|
* benchtests/bench-strnlen.c: Likewise.
|
||||||
|
* benchtests/bench-strpbrk.c: Likewise.
|
||||||
|
* benchtests/bench-strrchr.c: Likewise.
|
||||||
|
* benchtests/bench-strspn.c: Likewise.
|
||||||
|
|
||||||
2018-12-21 Joseph Myers <joseph@codesourcery.com>
|
2018-12-21 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
* stdlib/longlong.h: Update from GCC.
|
* stdlib/longlong.h: Update from GCC.
|
||||||
|
|
|
@ -17,11 +17,8 @@
|
||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#ifndef WIDE
|
#ifndef WIDE
|
||||||
# define CHAR char
|
|
||||||
# define SMALL_CHAR 127
|
# define SMALL_CHAR 127
|
||||||
#else
|
#else
|
||||||
# include <wchar.h>
|
|
||||||
# define CHAR wchar_t
|
|
||||||
# define SMALL_CHAR 1273
|
# define SMALL_CHAR 1273
|
||||||
#endif /* WIDE */
|
#endif /* WIDE */
|
||||||
|
|
||||||
|
@ -35,10 +32,8 @@
|
||||||
# include "bench-string.h"
|
# include "bench-string.h"
|
||||||
|
|
||||||
# ifndef WIDE
|
# ifndef WIDE
|
||||||
# define MEMCHR memchr
|
|
||||||
# define SIMPLE_MEMCHR simple_memchr
|
# define SIMPLE_MEMCHR simple_memchr
|
||||||
# else
|
# else
|
||||||
# define MEMCHR wmemchr
|
|
||||||
# define SIMPLE_MEMCHR simple_wmemchr
|
# define SIMPLE_MEMCHR simple_wmemchr
|
||||||
# endif /* WIDE */
|
# endif /* WIDE */
|
||||||
|
|
||||||
|
|
|
@ -24,17 +24,8 @@
|
||||||
#endif
|
#endif
|
||||||
#include "bench-string.h"
|
#include "bench-string.h"
|
||||||
#ifdef WIDE
|
#ifdef WIDE
|
||||||
# include <inttypes.h>
|
|
||||||
# include <wchar.h>
|
|
||||||
|
|
||||||
# define MEMCMP wmemcmp
|
|
||||||
# define MEMCPY wmemcpy
|
|
||||||
# define SIMPLE_MEMCMP simple_wmemcmp
|
# define SIMPLE_MEMCMP simple_wmemcmp
|
||||||
# define CHAR wchar_t
|
|
||||||
# define UCHAR wchar_t
|
|
||||||
# define CHARBYTES 4
|
|
||||||
# define CHAR__MIN WCHAR_MIN
|
|
||||||
# define CHAR__MAX WCHAR_MAX
|
|
||||||
int
|
int
|
||||||
simple_wmemcmp (const wchar_t *s1, const wchar_t *s2, size_t n)
|
simple_wmemcmp (const wchar_t *s1, const wchar_t *s2, size_t n)
|
||||||
{
|
{
|
||||||
|
@ -49,15 +40,7 @@ simple_wmemcmp (const wchar_t *s1, const wchar_t *s2, size_t n)
|
||||||
#else
|
#else
|
||||||
# include <limits.h>
|
# include <limits.h>
|
||||||
|
|
||||||
# define MEMCMP memcmp
|
|
||||||
# define MEMCPY memcpy
|
|
||||||
# define SIMPLE_MEMCMP simple_memcmp
|
# define SIMPLE_MEMCMP simple_memcmp
|
||||||
# define CHAR char
|
|
||||||
# define MAX_CHAR 255
|
|
||||||
# define UCHAR unsigned char
|
|
||||||
# define CHARBYTES 1
|
|
||||||
# define CHAR__MIN CHAR_MIN
|
|
||||||
# define CHAR__MAX CHAR_MAX
|
|
||||||
|
|
||||||
int
|
int
|
||||||
simple_memcmp (const char *s1, const char *s2, size_t n)
|
simple_memcmp (const char *s1, const char *s2, size_t n)
|
||||||
|
@ -125,7 +108,7 @@ do_test (json_ctx_t *json_ctx, size_t align1, size_t align2, size_t len,
|
||||||
s2 = (CHAR *) (buf2 + align2);
|
s2 = (CHAR *) (buf2 + align2);
|
||||||
|
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
s1[i] = s2[i] = 1 + (23 << ((CHARBYTES - 1) * 8)) * i % CHAR__MAX;
|
s1[i] = s2[i] = 1 + (23 << ((CHARBYTES - 1) * 8)) * i % MAX_CHAR;
|
||||||
|
|
||||||
s1[len] = align1;
|
s1[len] = align1;
|
||||||
s2[len] = align2;
|
s2[len] = align2;
|
||||||
|
|
|
@ -28,16 +28,9 @@
|
||||||
#include "bench-string.h"
|
#include "bench-string.h"
|
||||||
|
|
||||||
#ifndef WIDE
|
#ifndef WIDE
|
||||||
# define MEMSET memset
|
|
||||||
# define CHAR char
|
|
||||||
# define SIMPLE_MEMSET simple_memset
|
# define SIMPLE_MEMSET simple_memset
|
||||||
# define MEMCMP memcmp
|
|
||||||
#else
|
#else
|
||||||
# include <wchar.h>
|
|
||||||
# define MEMSET wmemset
|
|
||||||
# define CHAR wchar_t
|
|
||||||
# define SIMPLE_MEMSET simple_wmemset
|
# define SIMPLE_MEMSET simple_wmemset
|
||||||
# define MEMCMP wmemcmp
|
|
||||||
#endif /* WIDE */
|
#endif /* WIDE */
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
|
@ -28,16 +28,9 @@
|
||||||
#include "bench-string.h"
|
#include "bench-string.h"
|
||||||
|
|
||||||
#ifndef WIDE
|
#ifndef WIDE
|
||||||
# define MEMSET memset
|
|
||||||
# define CHAR char
|
|
||||||
# define SIMPLE_MEMSET simple_memset
|
# define SIMPLE_MEMSET simple_memset
|
||||||
# define MEMCMP memcmp
|
|
||||||
#else
|
#else
|
||||||
# include <wchar.h>
|
|
||||||
# define MEMSET wmemset
|
|
||||||
# define CHAR wchar_t
|
|
||||||
# define SIMPLE_MEMSET simple_wmemset
|
# define SIMPLE_MEMSET simple_wmemset
|
||||||
# define MEMCMP wmemcmp
|
|
||||||
#endif /* WIDE */
|
#endif /* WIDE */
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
|
@ -30,16 +30,9 @@
|
||||||
#include "bench-string.h"
|
#include "bench-string.h"
|
||||||
|
|
||||||
#ifndef WIDE
|
#ifndef WIDE
|
||||||
# define MEMSET memset
|
|
||||||
# define CHAR char
|
|
||||||
# define SIMPLE_MEMSET simple_memset
|
# define SIMPLE_MEMSET simple_memset
|
||||||
# define MEMCMP memcmp
|
|
||||||
#else
|
#else
|
||||||
# include <wchar.h>
|
|
||||||
# define MEMSET wmemset
|
|
||||||
# define CHAR wchar_t
|
|
||||||
# define SIMPLE_MEMSET simple_wmemset
|
# define SIMPLE_MEMSET simple_wmemset
|
||||||
# define MEMCMP wmemcmp
|
|
||||||
#endif /* WIDE */
|
#endif /* WIDE */
|
||||||
|
|
||||||
#include "json-lib.h"
|
#include "json-lib.h"
|
||||||
|
|
|
@ -25,14 +25,9 @@
|
||||||
#endif /* WIDE */
|
#endif /* WIDE */
|
||||||
#include "bench-string.h"
|
#include "bench-string.h"
|
||||||
#ifndef WIDE
|
#ifndef WIDE
|
||||||
# define CHAR char
|
|
||||||
# define SIMPLE_STPCPY simple_stpcpy
|
# define SIMPLE_STPCPY simple_stpcpy
|
||||||
# define STPCPY stpcpy
|
|
||||||
#else
|
#else
|
||||||
# include <wchar.h>
|
|
||||||
# define CHAR wchar_t
|
|
||||||
# define SIMPLE_STPCPY simple_wcpcpy
|
# define SIMPLE_STPCPY simple_wcpcpy
|
||||||
# define STPCPY wcpcpy
|
|
||||||
#endif /* WIDE */
|
#endif /* WIDE */
|
||||||
|
|
||||||
CHAR *SIMPLE_STPCPY (CHAR *, const CHAR *);
|
CHAR *SIMPLE_STPCPY (CHAR *, const CHAR *);
|
||||||
|
@ -47,5 +42,4 @@ SIMPLE_STPCPY (CHAR *dst, const CHAR *src)
|
||||||
return dst - 1;
|
return dst - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef CHAR
|
|
||||||
#include "bench-strcpy.c"
|
#include "bench-strcpy.c"
|
||||||
|
|
|
@ -25,18 +25,11 @@
|
||||||
#endif /* WIDE */
|
#endif /* WIDE */
|
||||||
#include "bench-string.h"
|
#include "bench-string.h"
|
||||||
#ifndef WIDE
|
#ifndef WIDE
|
||||||
# define CHAR char
|
|
||||||
# define SIMPLE_STPNCPY simple_stpncpy
|
# define SIMPLE_STPNCPY simple_stpncpy
|
||||||
# define STUPID_STPNCPY stupid_stpncpy
|
# define STUPID_STPNCPY stupid_stpncpy
|
||||||
# define STPNCPY stpncpy
|
|
||||||
# define STRNLEN strnlen
|
|
||||||
#else
|
#else
|
||||||
# include <wchar.h>
|
|
||||||
# define CHAR wchar_t
|
|
||||||
# define SIMPLE_STPNCPY simple_wcpncpy
|
# define SIMPLE_STPNCPY simple_wcpncpy
|
||||||
# define STUPID_STPNCPY stupid_wcpncpy
|
# define STUPID_STPNCPY stupid_wcpncpy
|
||||||
# define STPNCPY wcpncpy
|
|
||||||
# define STRNLEN wcsnlen
|
|
||||||
#endif /* WIDE */
|
#endif /* WIDE */
|
||||||
|
|
||||||
CHAR *SIMPLE_STPNCPY (CHAR *, const CHAR *, size_t);
|
CHAR *SIMPLE_STPNCPY (CHAR *, const CHAR *, size_t);
|
||||||
|
@ -74,5 +67,4 @@ STUPID_STPNCPY (CHAR *dst, const CHAR *src, size_t n)
|
||||||
return dst + nc;
|
return dst + nc;
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef CHAR
|
|
||||||
#include "bench-strncpy.c"
|
#include "bench-strncpy.c"
|
||||||
|
|
|
@ -24,24 +24,15 @@
|
||||||
#endif /* WIDE */
|
#endif /* WIDE */
|
||||||
#include "bench-string.h"
|
#include "bench-string.h"
|
||||||
|
|
||||||
|
#define BIG_CHAR MAX_CHAR
|
||||||
|
|
||||||
#ifndef WIDE
|
#ifndef WIDE
|
||||||
# define STRCAT strcat
|
|
||||||
# define CHAR char
|
|
||||||
# define sfmt "s"
|
# define sfmt "s"
|
||||||
# define SIMPLE_STRCAT simple_strcat
|
# define SIMPLE_STRCAT simple_strcat
|
||||||
# define STRLEN strlen
|
|
||||||
# define STRCMP strcmp
|
|
||||||
# define BIG_CHAR CHAR_MAX
|
|
||||||
# define SMALL_CHAR 127
|
# define SMALL_CHAR 127
|
||||||
#else
|
#else
|
||||||
# include <wchar.h>
|
|
||||||
# define STRCAT wcscat
|
|
||||||
# define CHAR wchar_t
|
|
||||||
# define sfmt "ls"
|
# define sfmt "ls"
|
||||||
# define SIMPLE_STRCAT simple_wcscat
|
# define SIMPLE_STRCAT simple_wcscat
|
||||||
# define STRLEN wcslen
|
|
||||||
# define STRCMP wcscmp
|
|
||||||
# define BIG_CHAR WCHAR_MAX
|
|
||||||
# define SMALL_CHAR 1273
|
# define SMALL_CHAR 1273
|
||||||
#endif /* WIDE */
|
#endif /* WIDE */
|
||||||
|
|
||||||
|
|
|
@ -32,35 +32,26 @@
|
||||||
#endif /* WIDE */
|
#endif /* WIDE */
|
||||||
#include "bench-string.h"
|
#include "bench-string.h"
|
||||||
|
|
||||||
|
#define BIG_CHAR MAX_CHAR
|
||||||
|
|
||||||
#ifndef WIDE
|
#ifndef WIDE
|
||||||
# ifdef USE_FOR_STRCHRNUL
|
# ifdef USE_FOR_STRCHRNUL
|
||||||
|
# undef STRCHR
|
||||||
# define STRCHR strchrnul
|
# define STRCHR strchrnul
|
||||||
# define stupid_STRCHR stupid_STRCHRNUL
|
# define stupid_STRCHR stupid_STRCHRNUL
|
||||||
# define simple_STRCHR simple_STRCHRNUL
|
# define simple_STRCHR simple_STRCHRNUL
|
||||||
# else
|
|
||||||
# define STRCHR strchr
|
|
||||||
# endif /* !USE_FOR_STRCHRNUL */
|
# endif /* !USE_FOR_STRCHRNUL */
|
||||||
# define STRLEN strlen
|
|
||||||
# define CHAR char
|
|
||||||
# define BIG_CHAR CHAR_MAX
|
|
||||||
# define MIDDLE_CHAR 127
|
# define MIDDLE_CHAR 127
|
||||||
# define SMALL_CHAR 23
|
# define SMALL_CHAR 23
|
||||||
# define UCHAR unsigned char
|
|
||||||
#else
|
#else
|
||||||
# include <wchar.h>
|
|
||||||
# ifdef USE_FOR_STRCHRNUL
|
# ifdef USE_FOR_STRCHRNUL
|
||||||
|
# undef STRCHR
|
||||||
# define STRCHR wcschrnul
|
# define STRCHR wcschrnul
|
||||||
# define stupid_STRCHR stupid_WCSCHRNUL
|
# define stupid_STRCHR stupid_WCSCHRNUL
|
||||||
# define simple_STRCHR simple_WCSCHRNUL
|
# define simple_STRCHR simple_WCSCHRNUL
|
||||||
# else
|
|
||||||
# define STRCHR wcschr
|
|
||||||
# endif /* !USE_FOR_STRCHRNUL */
|
# endif /* !USE_FOR_STRCHRNUL */
|
||||||
# define STRLEN wcslen
|
|
||||||
# define CHAR wchar_t
|
|
||||||
# define BIG_CHAR WCHAR_MAX
|
|
||||||
# define MIDDLE_CHAR 1121
|
# define MIDDLE_CHAR 1121
|
||||||
# define SMALL_CHAR 851
|
# define SMALL_CHAR 851
|
||||||
# define UCHAR wchar_t
|
|
||||||
#endif /* WIDE */
|
#endif /* WIDE */
|
||||||
|
|
||||||
#ifdef USE_FOR_STRCHRNUL
|
#ifdef USE_FOR_STRCHRNUL
|
||||||
|
|
|
@ -25,24 +25,12 @@
|
||||||
#include "bench-string.h"
|
#include "bench-string.h"
|
||||||
|
|
||||||
#ifdef WIDE
|
#ifdef WIDE
|
||||||
# include <wchar.h>
|
|
||||||
|
|
||||||
# define L(str) L##str
|
# define L(str) L##str
|
||||||
# define STRCMP wcscmp
|
|
||||||
# define STRCPY wcscpy
|
|
||||||
# define STRLEN wcslen
|
|
||||||
# define MEMCPY wmemcpy
|
|
||||||
# define SIMPLE_STRCMP simple_wcscmp
|
# define SIMPLE_STRCMP simple_wcscmp
|
||||||
# define STUPID_STRCMP stupid_wcscmp
|
# define STUPID_STRCMP stupid_wcscmp
|
||||||
# define CHAR wchar_t
|
|
||||||
# define UCHAR wchar_t
|
|
||||||
# define CHARBYTES 4
|
|
||||||
# define CHARBYTESLOG 2
|
# define CHARBYTESLOG 2
|
||||||
# define CHARALIGN __alignof__ (CHAR)
|
|
||||||
# define MIDCHAR 0x7fffffff
|
# define MIDCHAR 0x7fffffff
|
||||||
# define LARGECHAR 0xfffffffe
|
# define LARGECHAR 0xfffffffe
|
||||||
# define CHAR__MAX WCHAR_MAX
|
|
||||||
# define CHAR__MIN WCHAR_MIN
|
|
||||||
|
|
||||||
/* Wcscmp uses signed semantics for comparison, not unsigned */
|
/* Wcscmp uses signed semantics for comparison, not unsigned */
|
||||||
/* Avoid using substraction since possible overflow */
|
/* Avoid using substraction since possible overflow */
|
||||||
|
@ -86,21 +74,11 @@ stupid_wcscmp (const wchar_t *s1, const wchar_t *s2)
|
||||||
# include <limits.h>
|
# include <limits.h>
|
||||||
|
|
||||||
# define L(str) str
|
# define L(str) str
|
||||||
# define STRCMP strcmp
|
|
||||||
# define STRCPY strcpy
|
|
||||||
# define STRLEN strlen
|
|
||||||
# define MEMCPY memcpy
|
|
||||||
# define SIMPLE_STRCMP simple_strcmp
|
# define SIMPLE_STRCMP simple_strcmp
|
||||||
# define STUPID_STRCMP stupid_strcmp
|
# define STUPID_STRCMP stupid_strcmp
|
||||||
# define CHAR char
|
|
||||||
# define UCHAR unsigned char
|
|
||||||
# define CHARBYTES 1
|
|
||||||
# define CHARBYTESLOG 0
|
# define CHARBYTESLOG 0
|
||||||
# define CHARALIGN 1
|
|
||||||
# define MIDCHAR 0x7f
|
# define MIDCHAR 0x7f
|
||||||
# define LARGECHAR 0xfe
|
# define LARGECHAR 0xfe
|
||||||
# define CHAR__MAX CHAR_MAX
|
|
||||||
# define CHAR__MIN CHAR_MIN
|
|
||||||
|
|
||||||
/* Strcmp uses unsigned semantics for comparison. */
|
/* Strcmp uses unsigned semantics for comparison. */
|
||||||
int
|
int
|
||||||
|
|
|
@ -16,25 +16,14 @@
|
||||||
License along with the GNU C Library; if not, see
|
License along with the GNU C Library; if not, see
|
||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
#define BIG_CHAR MAX_CHAR
|
||||||
|
|
||||||
#ifdef WIDE
|
#ifdef WIDE
|
||||||
# include <wchar.h>
|
|
||||||
# define CHAR wchar_t
|
|
||||||
# define UCHAR wchar_t
|
|
||||||
# define sfmt "ls"
|
# define sfmt "ls"
|
||||||
# define BIG_CHAR WCHAR_MAX
|
|
||||||
# define SMALL_CHAR 1273
|
# define SMALL_CHAR 1273
|
||||||
# define STRCMP wcscmp
|
|
||||||
# define MEMCMP wmemcmp
|
|
||||||
# define MEMSET wmemset
|
|
||||||
#else
|
#else
|
||||||
# define CHAR char
|
|
||||||
# define UCHAR unsigned char
|
|
||||||
# define sfmt "s"
|
# define sfmt "s"
|
||||||
# define BIG_CHAR CHAR_MAX
|
|
||||||
# define SMALL_CHAR 127
|
# define SMALL_CHAR 127
|
||||||
# define STRCMP strcmp
|
|
||||||
# define MEMCMP memcmp
|
|
||||||
# define MEMSET memset
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef STRCPY_RESULT
|
#ifndef STRCPY_RESULT
|
||||||
|
@ -48,10 +37,8 @@
|
||||||
# include "bench-string.h"
|
# include "bench-string.h"
|
||||||
# ifndef WIDE
|
# ifndef WIDE
|
||||||
# define SIMPLE_STRCPY simple_strcpy
|
# define SIMPLE_STRCPY simple_strcpy
|
||||||
# define STRCPY strcpy
|
|
||||||
# else
|
# else
|
||||||
# define SIMPLE_STRCPY simple_wcscpy
|
# define SIMPLE_STRCPY simple_wcscpy
|
||||||
# define STRCPY wcscpy
|
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
CHAR *SIMPLE_STRCPY (CHAR *, const CHAR *);
|
CHAR *SIMPLE_STRCPY (CHAR *, const CHAR *);
|
||||||
|
|
|
@ -27,18 +27,11 @@
|
||||||
#include "bench-string.h"
|
#include "bench-string.h"
|
||||||
|
|
||||||
#ifndef WIDE
|
#ifndef WIDE
|
||||||
# define STRCSPN strcspn
|
|
||||||
# define CHAR char
|
|
||||||
# define SIMPLE_STRCSPN simple_strcspn
|
# define SIMPLE_STRCSPN simple_strcspn
|
||||||
# define STUPID_STRCSPN stupid_strcspn
|
# define STUPID_STRCSPN stupid_strcspn
|
||||||
# define STRLEN strlen
|
|
||||||
#else
|
#else
|
||||||
# include <wchar.h>
|
|
||||||
# define STRCSPN wcscspn
|
|
||||||
# define CHAR wchar_t
|
|
||||||
# define SIMPLE_STRCSPN simple_wcscspn
|
# define SIMPLE_STRCSPN simple_wcscspn
|
||||||
# define STUPID_STRCSPN stupid_wcscspn
|
# define STUPID_STRCSPN stupid_wcscspn
|
||||||
# define STRLEN wcslen
|
|
||||||
#endif /* WIDE */
|
#endif /* WIDE */
|
||||||
|
|
||||||
typedef size_t (*proto_t) (const CHAR *, const CHAR *);
|
typedef size_t (*proto_t) (const CHAR *, const CHAR *);
|
||||||
|
@ -75,6 +68,4 @@ STUPID_STRCSPN (const CHAR *s, const CHAR *rej)
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef CHAR
|
|
||||||
#undef STRLEN
|
|
||||||
#include "bench-strpbrk.c"
|
#include "bench-strpbrk.c"
|
||||||
|
|
|
@ -65,6 +65,56 @@ extern impl_t __start_impls[], __stop_impls[];
|
||||||
# define GLRO(x) _##x
|
# define GLRO(x) _##x
|
||||||
# include "bench-timing.h"
|
# include "bench-timing.h"
|
||||||
|
|
||||||
|
# ifndef WIDE
|
||||||
|
# define CHAR char
|
||||||
|
# define UCHAR unsigned char
|
||||||
|
# define CHARBYTES 1
|
||||||
|
# define MAX_CHAR CHAR_MAX
|
||||||
|
# define MEMCHR memchr
|
||||||
|
# define MEMCMP memcmp
|
||||||
|
# define MEMCPY memcpy
|
||||||
|
# define MEMSET memset
|
||||||
|
# define STRCAT strcat
|
||||||
|
# define STRLEN strlen
|
||||||
|
# define STRCMP strcmp
|
||||||
|
# define STRCHR strchr
|
||||||
|
# define STRCPY strcpy
|
||||||
|
# define STRNLEN strnlen
|
||||||
|
# define STRCSPN strcspn
|
||||||
|
# define STRNCAT strncat
|
||||||
|
# define STRNCMP strncmp
|
||||||
|
# define STRNCPY strncpy
|
||||||
|
# define STRPBRK strpbrk
|
||||||
|
# define STRRCHR strrchr
|
||||||
|
# define STRSPN strspn
|
||||||
|
# define STPCPY stpcpy
|
||||||
|
# define STPNCPY stpncpy
|
||||||
|
# else
|
||||||
|
# include <wchar.h>
|
||||||
|
# define CHAR wchar_t
|
||||||
|
# define UCHAR wchar_t
|
||||||
|
# define CHARBYTES 4
|
||||||
|
# define MAX_CHAR WCHAR_MAX
|
||||||
|
# define MEMCHR wmemchr
|
||||||
|
# define MEMCMP wmemcmp
|
||||||
|
# define MEMCPY wmemcpy
|
||||||
|
# define MEMSET wmemset
|
||||||
|
# define STRCAT wcscat
|
||||||
|
# define STRLEN wcslen
|
||||||
|
# define STRCMP wcscmp
|
||||||
|
# define STRCHR wcschr
|
||||||
|
# define STRCPY wcscpy
|
||||||
|
# define STRNLEN wcsnlen
|
||||||
|
# define STRCSPN wcscspn
|
||||||
|
# define STRNCAT wcsncat
|
||||||
|
# define STRNCMP wcsncmp
|
||||||
|
# define STRNCPY wcsncpy
|
||||||
|
# define STRPBRK wcspbrk
|
||||||
|
# define STRRCHR wcsrchr
|
||||||
|
# define STRSPN wcsspn
|
||||||
|
# define STPCPY wcpcpy
|
||||||
|
# define STPNCPY wcpncpy
|
||||||
|
# endif /* WIDE */
|
||||||
|
|
||||||
# define TEST_FUNCTION test_main
|
# define TEST_FUNCTION test_main
|
||||||
# ifndef TIMEOUT
|
# ifndef TIMEOUT
|
||||||
|
|
|
@ -25,13 +25,8 @@
|
||||||
#include "bench-string.h"
|
#include "bench-string.h"
|
||||||
|
|
||||||
#ifndef WIDE
|
#ifndef WIDE
|
||||||
# define STRLEN strlen
|
|
||||||
# define CHAR char
|
|
||||||
# define MAX_CHAR CHAR_MAX
|
# define MAX_CHAR CHAR_MAX
|
||||||
#else
|
#else
|
||||||
# include <wchar.h>
|
|
||||||
# define STRLEN wcslen
|
|
||||||
# define CHAR wchar_t
|
|
||||||
# define MAX_CHAR WCHAR_MAX
|
# define MAX_CHAR WCHAR_MAX
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -24,24 +24,15 @@
|
||||||
#endif /* WIDE */
|
#endif /* WIDE */
|
||||||
#include "bench-string.h"
|
#include "bench-string.h"
|
||||||
|
|
||||||
|
#define BIG_CHAR MAX_CHAR
|
||||||
|
|
||||||
#ifndef WIDE
|
#ifndef WIDE
|
||||||
# define STRNCAT strncat
|
|
||||||
# define CHAR char
|
|
||||||
# define SIMPLE_STRNCAT simple_strncat
|
# define SIMPLE_STRNCAT simple_strncat
|
||||||
# define STUPID_STRNCAT stupid_strncat
|
# define STUPID_STRNCAT stupid_strncat
|
||||||
# define STRLEN strlen
|
|
||||||
# define MEMCMP memcmp
|
|
||||||
# define BIG_CHAR CHAR_MAX
|
|
||||||
# define SMALL_CHAR 127
|
# define SMALL_CHAR 127
|
||||||
#else
|
#else
|
||||||
# include <wchar.h>
|
|
||||||
# define STRNCAT wcsncat
|
|
||||||
# define CHAR wchar_t
|
|
||||||
# define SIMPLE_STRNCAT simple_wcsncat
|
# define SIMPLE_STRNCAT simple_wcsncat
|
||||||
# define STUPID_STRNCAT stupid_wcsncat
|
# define STUPID_STRNCAT stupid_wcsncat
|
||||||
# define STRLEN wcslen
|
|
||||||
# define MEMCMP wmemcmp
|
|
||||||
# define BIG_CHAR WCHAR_MAX
|
|
||||||
# define SMALL_CHAR 1273
|
# define SMALL_CHAR 1273
|
||||||
#endif /* WIDE */
|
#endif /* WIDE */
|
||||||
|
|
||||||
|
|
|
@ -26,14 +26,9 @@
|
||||||
#include "json-lib.h"
|
#include "json-lib.h"
|
||||||
|
|
||||||
#ifdef WIDE
|
#ifdef WIDE
|
||||||
# include <wchar.h>
|
|
||||||
|
|
||||||
# define L(str) L##str
|
# define L(str) L##str
|
||||||
# define STRNCMP wcsncmp
|
|
||||||
# define SIMPLE_STRNCMP simple_wcsncmp
|
# define SIMPLE_STRNCMP simple_wcsncmp
|
||||||
# define STUPID_STRNCMP stupid_wcsncmp
|
# define STUPID_STRNCMP stupid_wcsncmp
|
||||||
# define CHAR wchar_t
|
|
||||||
# define CHARBYTES 4
|
|
||||||
|
|
||||||
/* Wcsncmp uses signed semantics for comparison, not unsigned.
|
/* Wcsncmp uses signed semantics for comparison, not unsigned.
|
||||||
Avoid using substraction since possible overflow. */
|
Avoid using substraction since possible overflow. */
|
||||||
|
@ -73,11 +68,8 @@ stupid_wcsncmp (const CHAR *s1, const CHAR *s2, size_t n)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
# define L(str) str
|
# define L(str) str
|
||||||
# define STRNCMP strncmp
|
|
||||||
# define SIMPLE_STRNCMP simple_strncmp
|
# define SIMPLE_STRNCMP simple_strncmp
|
||||||
# define STUPID_STRNCMP stupid_strncmp
|
# define STUPID_STRNCMP stupid_strncmp
|
||||||
# define CHAR char
|
|
||||||
# define CHARBYTES 1
|
|
||||||
|
|
||||||
/* Strncmp uses unsigned semantics for comparison. */
|
/* Strncmp uses unsigned semantics for comparison. */
|
||||||
int
|
int
|
||||||
|
|
|
@ -16,25 +16,13 @@
|
||||||
License along with the GNU C Library; if not, see
|
License along with the GNU C Library; if not, see
|
||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#ifdef WIDE
|
#define BIG_CHAR MAX_CHAR
|
||||||
# include <wchar.h>
|
|
||||||
# define CHAR wchar_t
|
|
||||||
# define UCHAR wchar_t
|
|
||||||
# define BIG_CHAR WCHAR_MAX
|
|
||||||
# define SMALL_CHAR 1273
|
|
||||||
# define MEMCMP wmemcmp
|
|
||||||
# define MEMSET wmemset
|
|
||||||
# define STRNLEN wcsnlen
|
|
||||||
#else
|
|
||||||
# define CHAR char
|
|
||||||
# define UCHAR unsigned char
|
|
||||||
# define BIG_CHAR CHAR_MAX
|
|
||||||
# define SMALL_CHAR 127
|
|
||||||
# define MEMCMP memcmp
|
|
||||||
# define MEMSET memset
|
|
||||||
# define STRNLEN strnlen
|
|
||||||
#endif /* !WIDE */
|
|
||||||
|
|
||||||
|
#ifdef WIDE
|
||||||
|
# define SMALL_CHAR 1273
|
||||||
|
#else
|
||||||
|
# define SMALL_CHAR 127
|
||||||
|
#endif /* !WIDE */
|
||||||
|
|
||||||
#ifndef STRNCPY_RESULT
|
#ifndef STRNCPY_RESULT
|
||||||
# define STRNCPY_RESULT(dst, len, n) dst
|
# define STRNCPY_RESULT(dst, len, n) dst
|
||||||
|
@ -48,11 +36,9 @@
|
||||||
# ifndef WIDE
|
# ifndef WIDE
|
||||||
# define SIMPLE_STRNCPY simple_strncpy
|
# define SIMPLE_STRNCPY simple_strncpy
|
||||||
# define STUPID_STRNCPY stupid_strncpy
|
# define STUPID_STRNCPY stupid_strncpy
|
||||||
# define STRNCPY strncpy
|
|
||||||
# else
|
# else
|
||||||
# define SIMPLE_STRNCPY simple_wcsncpy
|
# define SIMPLE_STRNCPY simple_wcsncpy
|
||||||
# define STUPID_STRNCPY stupid_wcsncpy
|
# define STUPID_STRNCPY stupid_wcsncpy
|
||||||
# define STRNCPY wcsncpy
|
|
||||||
# endif /* WIDE */
|
# endif /* WIDE */
|
||||||
|
|
||||||
CHAR *SIMPLE_STRNCPY (CHAR *, const CHAR *, size_t);
|
CHAR *SIMPLE_STRNCPY (CHAR *, const CHAR *, size_t);
|
||||||
|
|
|
@ -24,17 +24,12 @@
|
||||||
#endif /* WIDE */
|
#endif /* WIDE */
|
||||||
#include "bench-string.h"
|
#include "bench-string.h"
|
||||||
|
|
||||||
|
#define BIG_CHAR MAX_CHAR
|
||||||
|
|
||||||
#ifndef WIDE
|
#ifndef WIDE
|
||||||
# define STRNLEN strnlen
|
|
||||||
# define CHAR char
|
|
||||||
# define BIG_CHAR CHAR_MAX
|
|
||||||
# define MIDDLE_CHAR 127
|
# define MIDDLE_CHAR 127
|
||||||
# define SIMPLE_STRNLEN simple_strnlen
|
# define SIMPLE_STRNLEN simple_strnlen
|
||||||
#else
|
#else
|
||||||
# include <wchar.h>
|
|
||||||
# define STRNLEN wcsnlen
|
|
||||||
# define CHAR wchar_t
|
|
||||||
# define BIG_CHAR WCHAR_MAX
|
|
||||||
# define MIDDLE_CHAR 1121
|
# define MIDDLE_CHAR 1121
|
||||||
# define SIMPLE_STRNLEN simple_wcsnlen
|
# define SIMPLE_STRNLEN simple_wcsnlen
|
||||||
#endif /* WIDE */
|
#endif /* WIDE */
|
||||||
|
|
|
@ -16,18 +16,11 @@
|
||||||
License along with the GNU C Library; if not, see
|
License along with the GNU C Library; if not, see
|
||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
#define BIG_CHAR MAX_CHAR
|
||||||
|
|
||||||
#ifndef WIDE
|
#ifndef WIDE
|
||||||
# define CHAR char
|
|
||||||
# define STRLEN strlen
|
|
||||||
# define STRCHR strchr
|
|
||||||
# define BIG_CHAR CHAR_MAX
|
|
||||||
# define SMALL_CHAR 127
|
# define SMALL_CHAR 127
|
||||||
#else
|
#else
|
||||||
# include <wchar.h>
|
|
||||||
# define CHAR wchar_t
|
|
||||||
# define STRLEN wcslen
|
|
||||||
# define STRCHR wcschr
|
|
||||||
# define BIG_CHAR WCHAR_MAX
|
|
||||||
# define SMALL_CHAR 1273
|
# define SMALL_CHAR 1273
|
||||||
#endif /* WIDE */
|
#endif /* WIDE */
|
||||||
|
|
||||||
|
@ -43,12 +36,9 @@
|
||||||
# include "bench-string.h"
|
# include "bench-string.h"
|
||||||
|
|
||||||
# ifndef WIDE
|
# ifndef WIDE
|
||||||
# define STRPBRK strpbrk
|
|
||||||
# define SIMPLE_STRPBRK simple_strpbrk
|
# define SIMPLE_STRPBRK simple_strpbrk
|
||||||
# define STUPID_STRPBRK stupid_strpbrk
|
# define STUPID_STRPBRK stupid_strpbrk
|
||||||
# else
|
# else
|
||||||
# include <wchar.h>
|
|
||||||
# define STRPBRK wcspbrk
|
|
||||||
# define SIMPLE_STRPBRK simple_wcspbrk
|
# define SIMPLE_STRPBRK simple_wcspbrk
|
||||||
# define STUPID_STRPBRK stupid_wcspbrk
|
# define STUPID_STRPBRK stupid_wcspbrk
|
||||||
# endif /* WIDE */
|
# endif /* WIDE */
|
||||||
|
|
|
@ -24,20 +24,13 @@
|
||||||
#endif
|
#endif
|
||||||
#include "bench-string.h"
|
#include "bench-string.h"
|
||||||
|
|
||||||
|
#define BIG_CHAR MAX_CHAR
|
||||||
|
|
||||||
#ifdef WIDE
|
#ifdef WIDE
|
||||||
# include <wchar.h>
|
|
||||||
# define SIMPLE_STRRCHR simple_wcsrchr
|
# define SIMPLE_STRRCHR simple_wcsrchr
|
||||||
# define STRRCHR wcsrchr
|
|
||||||
# define CHAR wchar_t
|
|
||||||
# define UCHAR wchar_t
|
|
||||||
# define BIG_CHAR WCHAR_MAX
|
|
||||||
# define SMALL_CHAR 1273
|
# define SMALL_CHAR 1273
|
||||||
#else
|
#else
|
||||||
# define SIMPLE_STRRCHR simple_strrchr
|
# define SIMPLE_STRRCHR simple_strrchr
|
||||||
# define STRRCHR strrchr
|
|
||||||
# define CHAR char
|
|
||||||
# define UCHAR unsigned char
|
|
||||||
# define BIG_CHAR CHAR_MAX
|
|
||||||
# define SMALL_CHAR 127
|
# define SMALL_CHAR 127
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -24,24 +24,15 @@
|
||||||
#endif /* WIDE */
|
#endif /* WIDE */
|
||||||
#include "bench-string.h"
|
#include "bench-string.h"
|
||||||
|
|
||||||
|
#define BIG_CHAR MAX_CHAR
|
||||||
|
|
||||||
#ifndef WIDE
|
#ifndef WIDE
|
||||||
# define STRSPN strspn
|
|
||||||
# define CHAR char
|
|
||||||
# define SIMPLE_STRSPN simple_strspn
|
# define SIMPLE_STRSPN simple_strspn
|
||||||
# define STUPID_STRSPN stupid_strspn
|
# define STUPID_STRSPN stupid_strspn
|
||||||
# define STRLEN strlen
|
|
||||||
# define STRCHR strchr
|
|
||||||
# define BIG_CHAR CHAR_MAX
|
|
||||||
# define SMALL_CHAR 127
|
# define SMALL_CHAR 127
|
||||||
#else
|
#else
|
||||||
# include <wchar.h>
|
|
||||||
# define STRSPN wcsspn
|
|
||||||
# define CHAR wchar_t
|
|
||||||
# define SIMPLE_STRSPN simple_wcsspn
|
# define SIMPLE_STRSPN simple_wcsspn
|
||||||
# define STUPID_STRSPN stupid_wcsspn
|
# define STUPID_STRSPN stupid_wcsspn
|
||||||
# define STRLEN wcslen
|
|
||||||
# define STRCHR wcschr
|
|
||||||
# define BIG_CHAR WCHAR_MAX
|
|
||||||
# define SMALL_CHAR 1273
|
# define SMALL_CHAR 1273
|
||||||
#endif /* WIDE */
|
#endif /* WIDE */
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue