diff --git a/ChangeLog b/ChangeLog index e2d9335524..fc7ce6e72f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,27 @@ +2018-12-21 Wilco Dijkstra + + * 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 * stdlib/longlong.h: Update from GCC. diff --git a/benchtests/bench-memchr.c b/benchtests/bench-memchr.c index 2603cdca99..73f8a88cfd 100644 --- a/benchtests/bench-memchr.c +++ b/benchtests/bench-memchr.c @@ -17,11 +17,8 @@ . */ #ifndef WIDE -# define CHAR char # define SMALL_CHAR 127 #else -# include -# define CHAR wchar_t # define SMALL_CHAR 1273 #endif /* WIDE */ @@ -35,10 +32,8 @@ # include "bench-string.h" # ifndef WIDE -# define MEMCHR memchr # define SIMPLE_MEMCHR simple_memchr # else -# define MEMCHR wmemchr # define SIMPLE_MEMCHR simple_wmemchr # endif /* WIDE */ diff --git a/benchtests/bench-memcmp.c b/benchtests/bench-memcmp.c index b566f48ae9..3c1e9047c9 100644 --- a/benchtests/bench-memcmp.c +++ b/benchtests/bench-memcmp.c @@ -24,17 +24,8 @@ #endif #include "bench-string.h" #ifdef WIDE -# include -# include -# define MEMCMP wmemcmp -# define MEMCPY wmemcpy # 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 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 # include -# define MEMCMP memcmp -# define MEMCPY memcpy # 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 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); 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; s2[len] = align2; diff --git a/benchtests/bench-memset-large.c b/benchtests/bench-memset-large.c index 1f7bf81fd1..88b89da9aa 100644 --- a/benchtests/bench-memset-large.c +++ b/benchtests/bench-memset-large.c @@ -28,16 +28,9 @@ #include "bench-string.h" #ifndef WIDE -# define MEMSET memset -# define CHAR char # define SIMPLE_MEMSET simple_memset -# define MEMCMP memcmp #else -# include -# define MEMSET wmemset -# define CHAR wchar_t # define SIMPLE_MEMSET simple_wmemset -# define MEMCMP wmemcmp #endif /* WIDE */ #include diff --git a/benchtests/bench-memset-walk.c b/benchtests/bench-memset-walk.c index 753d6f36f3..8b42cc3880 100644 --- a/benchtests/bench-memset-walk.c +++ b/benchtests/bench-memset-walk.c @@ -28,16 +28,9 @@ #include "bench-string.h" #ifndef WIDE -# define MEMSET memset -# define CHAR char # define SIMPLE_MEMSET simple_memset -# define MEMCMP memcmp #else -# include -# define MEMSET wmemset -# define CHAR wchar_t # define SIMPLE_MEMSET simple_wmemset -# define MEMCMP wmemcmp #endif /* WIDE */ #include diff --git a/benchtests/bench-memset.c b/benchtests/bench-memset.c index a47620cbfc..85bb2b314a 100644 --- a/benchtests/bench-memset.c +++ b/benchtests/bench-memset.c @@ -30,16 +30,9 @@ #include "bench-string.h" #ifndef WIDE -# define MEMSET memset -# define CHAR char # define SIMPLE_MEMSET simple_memset -# define MEMCMP memcmp #else -# include -# define MEMSET wmemset -# define CHAR wchar_t # define SIMPLE_MEMSET simple_wmemset -# define MEMCMP wmemcmp #endif /* WIDE */ #include "json-lib.h" diff --git a/benchtests/bench-stpcpy.c b/benchtests/bench-stpcpy.c index 490cf88414..77ffb0f5c2 100644 --- a/benchtests/bench-stpcpy.c +++ b/benchtests/bench-stpcpy.c @@ -25,14 +25,9 @@ #endif /* WIDE */ #include "bench-string.h" #ifndef WIDE -# define CHAR char # define SIMPLE_STPCPY simple_stpcpy -# define STPCPY stpcpy #else -# include -# define CHAR wchar_t # define SIMPLE_STPCPY simple_wcpcpy -# define STPCPY wcpcpy #endif /* WIDE */ CHAR *SIMPLE_STPCPY (CHAR *, const CHAR *); @@ -47,5 +42,4 @@ SIMPLE_STPCPY (CHAR *dst, const CHAR *src) return dst - 1; } -#undef CHAR #include "bench-strcpy.c" diff --git a/benchtests/bench-stpncpy.c b/benchtests/bench-stpncpy.c index 488ed42db2..40c82cf716 100644 --- a/benchtests/bench-stpncpy.c +++ b/benchtests/bench-stpncpy.c @@ -25,18 +25,11 @@ #endif /* WIDE */ #include "bench-string.h" #ifndef WIDE -# define CHAR char # define SIMPLE_STPNCPY simple_stpncpy # define STUPID_STPNCPY stupid_stpncpy -# define STPNCPY stpncpy -# define STRNLEN strnlen #else -# include -# define CHAR wchar_t # define SIMPLE_STPNCPY simple_wcpncpy # define STUPID_STPNCPY stupid_wcpncpy -# define STPNCPY wcpncpy -# define STRNLEN wcsnlen #endif /* WIDE */ 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; } -#undef CHAR #include "bench-strncpy.c" diff --git a/benchtests/bench-strcat.c b/benchtests/bench-strcat.c index 9930188e31..6b3b084ae1 100644 --- a/benchtests/bench-strcat.c +++ b/benchtests/bench-strcat.c @@ -24,24 +24,15 @@ #endif /* WIDE */ #include "bench-string.h" +#define BIG_CHAR MAX_CHAR + #ifndef WIDE -# define STRCAT strcat -# define CHAR char # define sfmt "s" # define SIMPLE_STRCAT simple_strcat -# define STRLEN strlen -# define STRCMP strcmp -# define BIG_CHAR CHAR_MAX # define SMALL_CHAR 127 #else -# include -# define STRCAT wcscat -# define CHAR wchar_t # define sfmt "ls" # define SIMPLE_STRCAT simple_wcscat -# define STRLEN wcslen -# define STRCMP wcscmp -# define BIG_CHAR WCHAR_MAX # define SMALL_CHAR 1273 #endif /* WIDE */ diff --git a/benchtests/bench-strchr.c b/benchtests/bench-strchr.c index 56d58fcd51..a773069989 100644 --- a/benchtests/bench-strchr.c +++ b/benchtests/bench-strchr.c @@ -32,35 +32,26 @@ #endif /* WIDE */ #include "bench-string.h" +#define BIG_CHAR MAX_CHAR + #ifndef WIDE # ifdef USE_FOR_STRCHRNUL +# undef STRCHR # define STRCHR strchrnul # define stupid_STRCHR stupid_STRCHRNUL # define simple_STRCHR simple_STRCHRNUL -# else -# define STRCHR strchr # endif /* !USE_FOR_STRCHRNUL */ -# define STRLEN strlen -# define CHAR char -# define BIG_CHAR CHAR_MAX # define MIDDLE_CHAR 127 # define SMALL_CHAR 23 -# define UCHAR unsigned char #else -# include # ifdef USE_FOR_STRCHRNUL +# undef STRCHR # define STRCHR wcschrnul # define stupid_STRCHR stupid_WCSCHRNUL # define simple_STRCHR simple_WCSCHRNUL -# else -# define STRCHR wcschr # endif /* !USE_FOR_STRCHRNUL */ -# define STRLEN wcslen -# define CHAR wchar_t -# define BIG_CHAR WCHAR_MAX # define MIDDLE_CHAR 1121 # define SMALL_CHAR 851 -# define UCHAR wchar_t #endif /* WIDE */ #ifdef USE_FOR_STRCHRNUL diff --git a/benchtests/bench-strcmp.c b/benchtests/bench-strcmp.c index 325cfc5a48..f5e8b9cc95 100644 --- a/benchtests/bench-strcmp.c +++ b/benchtests/bench-strcmp.c @@ -25,24 +25,12 @@ #include "bench-string.h" #ifdef WIDE -# include - # define L(str) L##str -# define STRCMP wcscmp -# define STRCPY wcscpy -# define STRLEN wcslen -# define MEMCPY wmemcpy # define SIMPLE_STRCMP simple_wcscmp # define STUPID_STRCMP stupid_wcscmp -# define CHAR wchar_t -# define UCHAR wchar_t -# define CHARBYTES 4 # define CHARBYTESLOG 2 -# define CHARALIGN __alignof__ (CHAR) # define MIDCHAR 0x7fffffff # define LARGECHAR 0xfffffffe -# define CHAR__MAX WCHAR_MAX -# define CHAR__MIN WCHAR_MIN /* Wcscmp uses signed semantics for comparison, not unsigned */ /* Avoid using substraction since possible overflow */ @@ -86,21 +74,11 @@ stupid_wcscmp (const wchar_t *s1, const wchar_t *s2) # include # define L(str) str -# define STRCMP strcmp -# define STRCPY strcpy -# define STRLEN strlen -# define MEMCPY memcpy # define SIMPLE_STRCMP simple_strcmp # define STUPID_STRCMP stupid_strcmp -# define CHAR char -# define UCHAR unsigned char -# define CHARBYTES 1 # define CHARBYTESLOG 0 -# define CHARALIGN 1 # define MIDCHAR 0x7f # define LARGECHAR 0xfe -# define CHAR__MAX CHAR_MAX -# define CHAR__MIN CHAR_MIN /* Strcmp uses unsigned semantics for comparison. */ int diff --git a/benchtests/bench-strcpy.c b/benchtests/bench-strcpy.c index c0435a895c..e5fd27ffba 100644 --- a/benchtests/bench-strcpy.c +++ b/benchtests/bench-strcpy.c @@ -16,25 +16,14 @@ License along with the GNU C Library; if not, see . */ +#define BIG_CHAR MAX_CHAR + #ifdef WIDE -# include -# define CHAR wchar_t -# define UCHAR wchar_t # define sfmt "ls" -# define BIG_CHAR WCHAR_MAX # define SMALL_CHAR 1273 -# define STRCMP wcscmp -# define MEMCMP wmemcmp -# define MEMSET wmemset #else -# define CHAR char -# define UCHAR unsigned char # define sfmt "s" -# define BIG_CHAR CHAR_MAX # define SMALL_CHAR 127 -# define STRCMP strcmp -# define MEMCMP memcmp -# define MEMSET memset #endif #ifndef STRCPY_RESULT @@ -48,10 +37,8 @@ # include "bench-string.h" # ifndef WIDE # define SIMPLE_STRCPY simple_strcpy -# define STRCPY strcpy # else # define SIMPLE_STRCPY simple_wcscpy -# define STRCPY wcscpy # endif CHAR *SIMPLE_STRCPY (CHAR *, const CHAR *); diff --git a/benchtests/bench-strcspn.c b/benchtests/bench-strcspn.c index 9b9f7035a9..5ac8a596a7 100644 --- a/benchtests/bench-strcspn.c +++ b/benchtests/bench-strcspn.c @@ -27,18 +27,11 @@ #include "bench-string.h" #ifndef WIDE -# define STRCSPN strcspn -# define CHAR char # define SIMPLE_STRCSPN simple_strcspn # define STUPID_STRCSPN stupid_strcspn -# define STRLEN strlen #else -# include -# define STRCSPN wcscspn -# define CHAR wchar_t # define SIMPLE_STRCSPN simple_wcscspn # define STUPID_STRCSPN stupid_wcscspn -# define STRLEN wcslen #endif /* WIDE */ typedef size_t (*proto_t) (const CHAR *, const CHAR *); @@ -75,6 +68,4 @@ STUPID_STRCSPN (const CHAR *s, const CHAR *rej) return i; } -#undef CHAR -#undef STRLEN #include "bench-strpbrk.c" diff --git a/benchtests/bench-string.h b/benchtests/bench-string.h index f8389982e9..f173a57efa 100644 --- a/benchtests/bench-string.h +++ b/benchtests/bench-string.h @@ -65,6 +65,56 @@ extern impl_t __start_impls[], __stop_impls[]; # define GLRO(x) _##x # 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 +# 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 # ifndef TIMEOUT diff --git a/benchtests/bench-strlen.c b/benchtests/bench-strlen.c index 576849400f..4c26890e23 100644 --- a/benchtests/bench-strlen.c +++ b/benchtests/bench-strlen.c @@ -25,13 +25,8 @@ #include "bench-string.h" #ifndef WIDE -# define STRLEN strlen -# define CHAR char # define MAX_CHAR CHAR_MAX #else -# include -# define STRLEN wcslen -# define CHAR wchar_t # define MAX_CHAR WCHAR_MAX #endif diff --git a/benchtests/bench-strncat.c b/benchtests/bench-strncat.c index a47f0db286..7e0112273b 100644 --- a/benchtests/bench-strncat.c +++ b/benchtests/bench-strncat.c @@ -24,24 +24,15 @@ #endif /* WIDE */ #include "bench-string.h" +#define BIG_CHAR MAX_CHAR + #ifndef WIDE -# define STRNCAT strncat -# define CHAR char # define SIMPLE_STRNCAT simple_strncat # define STUPID_STRNCAT stupid_strncat -# define STRLEN strlen -# define MEMCMP memcmp -# define BIG_CHAR CHAR_MAX # define SMALL_CHAR 127 #else -# include -# define STRNCAT wcsncat -# define CHAR wchar_t # define SIMPLE_STRNCAT simple_wcsncat # define STUPID_STRNCAT stupid_wcsncat -# define STRLEN wcslen -# define MEMCMP wmemcmp -# define BIG_CHAR WCHAR_MAX # define SMALL_CHAR 1273 #endif /* WIDE */ diff --git a/benchtests/bench-strncmp.c b/benchtests/bench-strncmp.c index 92cf0d2145..65ebb3445d 100644 --- a/benchtests/bench-strncmp.c +++ b/benchtests/bench-strncmp.c @@ -26,14 +26,9 @@ #include "json-lib.h" #ifdef WIDE -# include - # define L(str) L##str -# define STRNCMP wcsncmp # define SIMPLE_STRNCMP simple_wcsncmp # define STUPID_STRNCMP stupid_wcsncmp -# define CHAR wchar_t -# define CHARBYTES 4 /* Wcsncmp uses signed semantics for comparison, not unsigned. Avoid using substraction since possible overflow. */ @@ -73,11 +68,8 @@ stupid_wcsncmp (const CHAR *s1, const CHAR *s2, size_t n) #else # define L(str) str -# define STRNCMP strncmp # define SIMPLE_STRNCMP simple_strncmp # define STUPID_STRNCMP stupid_strncmp -# define CHAR char -# define CHARBYTES 1 /* Strncmp uses unsigned semantics for comparison. */ int diff --git a/benchtests/bench-strncpy.c b/benchtests/bench-strncpy.c index 62daef6b84..79953759bf 100644 --- a/benchtests/bench-strncpy.c +++ b/benchtests/bench-strncpy.c @@ -16,25 +16,13 @@ License along with the GNU C Library; if not, see . */ -#ifdef WIDE -# include -# 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 */ +#define BIG_CHAR MAX_CHAR +#ifdef WIDE +# define SMALL_CHAR 1273 +#else +# define SMALL_CHAR 127 +#endif /* !WIDE */ #ifndef STRNCPY_RESULT # define STRNCPY_RESULT(dst, len, n) dst @@ -48,11 +36,9 @@ # ifndef WIDE # define SIMPLE_STRNCPY simple_strncpy # define STUPID_STRNCPY stupid_strncpy -# define STRNCPY strncpy # else # define SIMPLE_STRNCPY simple_wcsncpy # define STUPID_STRNCPY stupid_wcsncpy -# define STRNCPY wcsncpy # endif /* WIDE */ CHAR *SIMPLE_STRNCPY (CHAR *, const CHAR *, size_t); diff --git a/benchtests/bench-strnlen.c b/benchtests/bench-strnlen.c index 5c10a16e90..8a7641669a 100644 --- a/benchtests/bench-strnlen.c +++ b/benchtests/bench-strnlen.c @@ -24,17 +24,12 @@ #endif /* WIDE */ #include "bench-string.h" +#define BIG_CHAR MAX_CHAR + #ifndef WIDE -# define STRNLEN strnlen -# define CHAR char -# define BIG_CHAR CHAR_MAX # define MIDDLE_CHAR 127 # define SIMPLE_STRNLEN simple_strnlen #else -# include -# define STRNLEN wcsnlen -# define CHAR wchar_t -# define BIG_CHAR WCHAR_MAX # define MIDDLE_CHAR 1121 # define SIMPLE_STRNLEN simple_wcsnlen #endif /* WIDE */ diff --git a/benchtests/bench-strpbrk.c b/benchtests/bench-strpbrk.c index 4217699376..4f9d802598 100644 --- a/benchtests/bench-strpbrk.c +++ b/benchtests/bench-strpbrk.c @@ -16,18 +16,11 @@ License along with the GNU C Library; if not, see . */ +#define BIG_CHAR MAX_CHAR + #ifndef WIDE -# define CHAR char -# define STRLEN strlen -# define STRCHR strchr -# define BIG_CHAR CHAR_MAX # define SMALL_CHAR 127 #else -# include -# define CHAR wchar_t -# define STRLEN wcslen -# define STRCHR wcschr -# define BIG_CHAR WCHAR_MAX # define SMALL_CHAR 1273 #endif /* WIDE */ @@ -43,12 +36,9 @@ # include "bench-string.h" # ifndef WIDE -# define STRPBRK strpbrk # define SIMPLE_STRPBRK simple_strpbrk # define STUPID_STRPBRK stupid_strpbrk # else -# include -# define STRPBRK wcspbrk # define SIMPLE_STRPBRK simple_wcspbrk # define STUPID_STRPBRK stupid_wcspbrk # endif /* WIDE */ diff --git a/benchtests/bench-strrchr.c b/benchtests/bench-strrchr.c index 029ea184e8..42189124ed 100644 --- a/benchtests/bench-strrchr.c +++ b/benchtests/bench-strrchr.c @@ -24,20 +24,13 @@ #endif #include "bench-string.h" +#define BIG_CHAR MAX_CHAR + #ifdef WIDE -# include # 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 #else # define SIMPLE_STRRCHR simple_strrchr -# define STRRCHR strrchr -# define CHAR char -# define UCHAR unsigned char -# define BIG_CHAR CHAR_MAX # define SMALL_CHAR 127 #endif diff --git a/benchtests/bench-strspn.c b/benchtests/bench-strspn.c index 35afdd467c..14a983744e 100644 --- a/benchtests/bench-strspn.c +++ b/benchtests/bench-strspn.c @@ -24,24 +24,15 @@ #endif /* WIDE */ #include "bench-string.h" +#define BIG_CHAR MAX_CHAR + #ifndef WIDE -# define STRSPN strspn -# define CHAR char # define SIMPLE_STRSPN simple_strspn # define STUPID_STRSPN stupid_strspn -# define STRLEN strlen -# define STRCHR strchr -# define BIG_CHAR CHAR_MAX # define SMALL_CHAR 127 #else -# include -# define STRSPN wcsspn -# define CHAR wchar_t # define SIMPLE_STRSPN simple_wcsspn # define STUPID_STRSPN stupid_wcsspn -# define STRLEN wcslen -# define STRCHR wcschr -# define BIG_CHAR WCHAR_MAX # define SMALL_CHAR 1273 #endif /* WIDE */