From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-DB5-obe.outbound.protection.outlook.com (mail-db5eur02on2083.outbound.protection.outlook.com [40.107.249.83]) by sourceware.org (Postfix) with ESMTPS id 0BDA93858017 for ; Wed, 8 Mar 2023 11:05:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0BDA93858017 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5Y4Cv+7jW0MS7smVt7wQXzWaPIAIfuyxFNxdfsPO0z4=; b=Ixade9o6n/Eix5Smzu/Ow8U4o9R6hQYh0tSAl+aT/JI60POwFKWr8ZqVtEaPQLVy981MKNz7yenhFNQ3u/+vJLzosQZ4iWSkpukzSv+PHEVrca1+SP4MsknbipgtUwKJWV0Y0E2qtsfkqKSaRzc2Jtky5yJsPVDAq/YB2z0DorI= Received: from ZR0P278CA0171.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:45::9) by AS8PR08MB7789.eurprd08.prod.outlook.com (2603:10a6:20b:526::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.23; Wed, 8 Mar 2023 11:05:49 +0000 Received: from VI1EUR03FT063.eop-EUR03.prod.protection.outlook.com (2603:10a6:910:45:cafe::c2) by ZR0P278CA0171.outlook.office365.com (2603:10a6:910:45::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.17 via Frontend Transport; Wed, 8 Mar 2023 11:05:49 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VI1EUR03FT063.mail.protection.outlook.com (100.127.144.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.29 via Frontend Transport; Wed, 8 Mar 2023 11:05:49 +0000 Received: ("Tessian outbound c2bcb4c18c29:v135"); Wed, 08 Mar 2023 11:05:48 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: d88ffed65456a994 X-CR-MTA-TID: 64aa7808 Received: from ce6538d9a63c.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id DE86316B-19DC-4EC7-BEE5-5131BA69F352.1; Wed, 08 Mar 2023 11:05:42 +0000 Received: from EUR01-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id ce6538d9a63c.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 08 Mar 2023 11:05:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cRsOXrWWqLUdo2m7rYnuMKtYTExojJy94iDTx+eXsGlvcRkOxrVyVGXQP6jCsfFBuRm0WlbsNKfsBpC5bVaVaipyYy+aSibXofRbEa3eflXukMAJmCn+kNdkkfXlCLxsE+VpZIFk+WPDduvOHjAZKhIhugInnF371klaMTLxtW2Kn8h+Vippjg6lDxEjWkNHAN9kxfH8neVfa+uJgEJ1Po3Eye5OBRsPiF5Iwroa5mWGeYagc1596emd1iPe93yFVRY1t9meDH0E/1qkC1WLbSaUsIVsx7zOAblSr39iVh/9fbHEGDktCPIYuu8tY56fAu9zt0RLkMyi8vOexgXTcw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5Y4Cv+7jW0MS7smVt7wQXzWaPIAIfuyxFNxdfsPO0z4=; b=Rn9b45MVidUpgKUqHCsEQexmfEP30h9mtV2vugAimXbepHLmzL0I0e4qtNYaxNqY+RUBjllp5yX9NLW7yDmtrckw8IlCZlbiRr7KNjm80+nfP6bL+lWYDDVrPjQhhV6kE9yxn4kRlIwUS4YCXE/IMel67KAxgm4mfDmgQWK3IV6MSTzrPviGmqoXpsFnXazO7FtJrisirPyDdOnHEmB1bgtBdyyNzSoHHVwPZfZ5DdOY+cU5qiNP9BbltspCkCdwQIMHoLauKulHwiez9ICRp9BXrMOY46uC1DA+JRY/Elz09ROzi3Sl5ObXbEUmdeH8CCRR1SHUKiw1GIh8WH5XYQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5Y4Cv+7jW0MS7smVt7wQXzWaPIAIfuyxFNxdfsPO0z4=; b=Ixade9o6n/Eix5Smzu/Ow8U4o9R6hQYh0tSAl+aT/JI60POwFKWr8ZqVtEaPQLVy981MKNz7yenhFNQ3u/+vJLzosQZ4iWSkpukzSv+PHEVrca1+SP4MsknbipgtUwKJWV0Y0E2qtsfkqKSaRzc2Jtky5yJsPVDAq/YB2z0DorI= Received: from PAWPR08MB8982.eurprd08.prod.outlook.com (2603:10a6:102:33f::20) by DU0PR08MB9534.eurprd08.prod.outlook.com (2603:10a6:10:44e::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.29; Wed, 8 Mar 2023 11:05:39 +0000 Received: from PAWPR08MB8982.eurprd08.prod.outlook.com ([fe80::dc17:8fa2:cce5:3573]) by PAWPR08MB8982.eurprd08.prod.outlook.com ([fe80::dc17:8fa2:cce5:3573%7]) with mapi id 15.20.6156.025; Wed, 8 Mar 2023 11:05:39 +0000 From: Wilco Dijkstra To: 'GNU C Library' Subject: [PATCH] Benchtests: Remove simple_strcspn/strpbrk/strsep Thread-Topic: [PATCH] Benchtests: Remove simple_strcspn/strpbrk/strsep Thread-Index: AQHZUa3IfyEKJTMjAUuRWaVKEWo7/g== Date: Wed, 8 Mar 2023 11:05:39 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: PAWPR08MB8982:EE_|DU0PR08MB9534:EE_|VI1EUR03FT063:EE_|AS8PR08MB7789:EE_ X-MS-Office365-Filtering-Correlation-Id: 1c6aa868-ce24-449e-4a14-08db1fc5131d x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: AQ0NN1kdfvLIGRdYiDUJTRHB9VwVqkq9m1c325vD1Qk1uv8bxpV0hfG2Enw9a6nrwCFL/cvARBzPDEjqCf8xd5H+VN/N93wHAHWc16iAc8GfzauTZS42PMXw4TRCRRjCI7HFjF4lCJJD6x1AH0D+trWXLAn6kWF+e7OIkXN8X3NqUGEP8fvwdhBIUutWS331EDDsfDWJivlkOaK5tUgpOmlA7WM21p2dBMERojkkOXNygeckF59UxWvri4H0GXY65QJD8qk5e429+ZSZVgK8Sw+DB0Q1LWp3sqbpR84b9hEoEhkd4wLoKVAjEeEeKmPSB6kjqYWsHqghB9VfwZTrcgYyPzJ7ktyVYipty8Xd2idYgqhmzxA9CUwxWbi7Ew6T7gCfRPsZgiY91c+Bo9oesJwP3WFXQ2r6sqdvD0f95uJbTQ2tPCQwxWybCCJG2e1pUYILOQ2L947k8O3klJJ6FanhGtmUJh5OTFvcd3nbl6homYMGT7VAv2BEKdoVyOTEd/u/r73Cdtu5dtIBb2VGWg+6YsexRlq1RdplkXkp/nFRNdmzBBVB3Df2BZpL6vkcQgJEXGYlXEto2y2+Pv4bILvRYKvgjuaYt+ZHT803WYmfYpb4xEa8lkpRYMqSEay8zjRQbAUGoRfG/bt6K7Mbnk1VL1x/4u/g5Pgk3+vWzmcACV47L6X3iXW/Lj1pxDyLlOhe9AUfleSe+cKg9kXkbZODiHVzS8FI9WjVFcxhme0= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAWPR08MB8982.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(346002)(396003)(39860400002)(376002)(136003)(366004)(451199018)(7696005)(38070700005)(71200400001)(55016003)(41300700001)(86362001)(83380400001)(33656002)(8676002)(316002)(6916009)(66476007)(64756008)(66556008)(478600001)(76116006)(66946007)(91956017)(66446008)(8936002)(5660300002)(52536014)(186003)(26005)(9686003)(122000001)(2906002)(38100700002)(6506007)(133343001);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9534 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VI1EUR03FT063.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 90d5ed87-1b03-4e87-1e97-08db1fc50d26 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6yquRG6WhRaL2kBsr0B4MnIRqQUM0+NrmuTtyZg0Vc5GEt6C6Ty63oCNeAm+R8rphP9DzFcIvGQWfpJK4fcuovkc3GHYTuFcz4UDXiBUC5QiEG85qXIrczMrancScrCTJULh/ltr3866bwrsvDc7I84Ho+wzFzSmPrM/1zdqw8tVsONHugf5YRjQfhQYO4DiIjxWVuPig625I0WRL51VlGErs3/WIdqoivkDCgA7nWsARRBuIj79C2QwwA14KMb5UPBjGMZUI40XH2OP4eqRHbEFbO7c+9KuH6rpDUCk8s7WG/Srmw69B8q2AdUrS47Uh/B1wf5ed6/5lTBBfO+mBoD51qFFqiLGO+BL9bXZqu8PzI3eBc09QMW3Irf4v/Sv0eIv+TzP3blqncafCOiNoXvv9j4+dQ7sq6wBB8ion1saRBLM9OU6srcqBUABfaiVLZYr1WaeuW/OlBPKqIHpBmTvrXAWFsbyuykqw4kCHq5y4WTsM2ElbZ3JqIuS/+cW96hs4N/e3/5xOnywTPb9/7OoMUgjQag4vmBKQ/HeGgZ5OqveU5odXTugvK6Ni3+fzzUO5DieZXrAgfb0epxONv+h+zSwrggw/0x0CS5TyqnLe01M02fIhfPjDlKw1l5lgu8ZBdQv0lZZ+tJ/PVU85XHIgl0Jn7wb6A91Ruiw0DikwOUKDhWpSk+a9se/JEf41fa3kfdi4RLFkhyYZH9ttNB9gwinS/edvtMOwjuziA4= X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230025)(4636009)(39860400002)(396003)(346002)(376002)(136003)(451199018)(40470700004)(36840700001)(46966006)(86362001)(336012)(83380400001)(33656002)(82310400005)(55016003)(316002)(40480700001)(40460700003)(186003)(82740400003)(9686003)(6916009)(70586007)(8676002)(70206006)(5660300002)(8936002)(36860700001)(26005)(41300700001)(478600001)(6506007)(47076005)(7696005)(2906002)(81166007)(52536014)(356005)(133343001);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2023 11:05:49.1356 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1c6aa868-ce24-449e-4a14-08db1fc5131d X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: VI1EUR03FT063.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB7789 X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,KAM_LOTSOFHASH,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: =0A= Remove simple_strcspn/strpbrk/strsep which are significantly slower than th= e generic=0A= implementations. Also remove oldstrsep and oldstrtok since they are practic= ally identical=0A= to the generic implementation. Adjust iteration count to reduce benchmark = time.=0A= =0A= ---=0A= =0A= diff --git a/benchtests/bench-strcspn.c b/benchtests/bench-strcspn.c=0A= index 2388f33d5441b302ffe34a9bb4ee7ed70db7306b..fa74d305ae66c8f220b2f35d873= 3520a62a84968 100644=0A= --- a/benchtests/bench-strcspn.c=0A= +++ b/benchtests/bench-strcspn.c=0A= @@ -26,29 +26,8 @@=0A= #endif /* WIDE */=0A= #include "bench-string.h"=0A= =0A= -#ifndef WIDE=0A= -# define SIMPLE_STRCSPN simple_strcspn=0A= -#else=0A= -# define SIMPLE_STRCSPN simple_wcscspn=0A= -#endif /* WIDE */=0A= -=0A= typedef size_t (*proto_t) (const CHAR *, const CHAR *);=0A= -size_t SIMPLE_STRCSPN (const CHAR *, const CHAR *);=0A= =0A= -IMPL (SIMPLE_STRCSPN, 0)=0A= IMPL (STRCSPN, 1)=0A= =0A= -size_t=0A= -SIMPLE_STRCSPN (const CHAR *s, const CHAR *rej)=0A= -{=0A= - const CHAR *r, *str =3D s;=0A= - CHAR c;=0A= -=0A= - while ((c =3D *s++) !=3D '\0')=0A= - for (r =3D rej; *r !=3D '\0'; ++r)=0A= - if (*r =3D=3D c)=0A= - return s - str - 1;=0A= - return s - str - 1;=0A= -}=0A= -=0A= #include "bench-strpbrk.c"=0A= diff --git a/benchtests/bench-strpbrk.c b/benchtests/bench-strpbrk.c=0A= index e96fb0efbf06fcb6c329917f73a90149d2bcb944..55199b73c9233bcedf52bd8e45d= ca628371c2803 100644=0A= --- a/benchtests/bench-strpbrk.c=0A= +++ b/benchtests/bench-strpbrk.c=0A= @@ -35,31 +35,10 @@=0A= # endif /* WIDE */=0A= # include "bench-string.h"=0A= =0A= -# ifndef WIDE=0A= -# define SIMPLE_STRPBRK simple_strpbrk=0A= -# else=0A= -# define SIMPLE_STRPBRK simple_wcspbrk=0A= -# endif /* WIDE */=0A= -=0A= typedef CHAR *(*proto_t) (const CHAR *, const CHAR *);=0A= -CHAR *SIMPLE_STRPBRK (const CHAR *, const CHAR *);=0A= =0A= -IMPL (SIMPLE_STRPBRK, 0)=0A= IMPL (STRPBRK, 1)=0A= =0A= -CHAR *=0A= -SIMPLE_STRPBRK (const CHAR *s, const CHAR *rej)=0A= -{=0A= - const CHAR *r;=0A= - CHAR c;=0A= -=0A= - while ((c =3D *s++) !=3D '\0')=0A= - for (r =3D rej; *r !=3D '\0'; ++r)=0A= - if (*r =3D=3D c)=0A= - return (CHAR *) s - 1;=0A= - return NULL;=0A= -}=0A= -=0A= #endif /* !STRPBRK_RESULT */=0A= =0A= #include "json-lib.h"=0A= @@ -69,7 +48,7 @@ do_one_test (json_ctx_t *json_ctx, impl_t *impl, const CH= AR *s,=0A= const CHAR *rej, RES_TYPE exp_res)=0A= {=0A= RES_TYPE res =3D CALL (impl, s, rej);=0A= - size_t i, iters =3D INNER_LOOP_ITERS;=0A= + size_t i, iters =3D INNER_LOOP_ITERS8 / CHARBYTES;=0A= timing_t start, stop, cur;=0A= =0A= if (res !=3D exp_res)=0A= diff --git a/benchtests/bench-strsep.c b/benchtests/bench-strsep.c=0A= index 4b203aff30db1592120db5f0b39b06a6e9cd4a13..d7df3fa0a9aae04918ad54fc792= 7a1da18ceb402 100644=0A= --- a/benchtests/bench-strsep.c=0A= +++ b/benchtests/bench-strsep.c=0A= @@ -20,90 +20,14 @@=0A= #define TEST_NAME "strsep"=0A= #include "bench-string.h"=0A= =0A= -char *=0A= -simple_strsep (char **s1, char *s2)=0A= -{=0A= - char *begin;=0A= - char *s;=0A= - size_t j =3D 0;=0A= -=0A= - begin =3D *s1;=0A= - s =3D begin;=0A= - if (begin =3D=3D NULL)=0A= - return NULL;=0A= - ssize_t s2len =3D strlen (s2);=0A= - while (*s)=0A= - {=0A= - for (j =3D 0; j < s2len; j++)=0A= - {=0A= - if (*s =3D=3D s2[j])=0A= - {=0A= - s[0] =3D '\0';=0A= - *s1 =3D s + 1;=0A= - return begin;=0A= - }=0A= - }=0A= - s++;=0A= - }=0A= - *s1 =3D NULL;=0A= - return begin;=0A= -}=0A= -=0A= -char *=0A= -oldstrsep (char **stringp, const char *delim)=0A= -{=0A= - char *begin, *end;=0A= -=0A= - begin =3D *stringp;=0A= - if (begin =3D=3D NULL)=0A= - return NULL;=0A= -=0A= - /* A frequent case is when the delimiter string contains only one=0A= - character. Here we don't need to call the expensive `strpbrk'=0A= - function and instead work using `strchr'. */=0A= - if (delim[0] =3D=3D '\0' || delim[1] =3D=3D '\0')=0A= - {=0A= - char ch =3D delim[0];=0A= -=0A= - if (ch =3D=3D '\0')=0A= - end =3D NULL;=0A= - else=0A= - {=0A= - if (*begin =3D=3D ch)=0A= - end =3D begin;=0A= - else if (*begin =3D=3D '\0')=0A= - end =3D NULL;=0A= - else=0A= - end =3D strchr (begin + 1, ch);=0A= - }=0A= - }=0A= - else=0A= - /* Find the end of the token. */=0A= - end =3D strpbrk (begin, delim);=0A= -=0A= - if (end)=0A= - {=0A= - /* Terminate the token and set *STRINGP past NUL character. */=0A= - *end++ =3D '\0';=0A= - *stringp =3D end;=0A= - }=0A= - else=0A= - /* No more delimiters; this is the last token. */=0A= - *stringp =3D NULL;=0A= -=0A= - return begin;=0A= -}=0A= -=0A= typedef char *(*proto_t) (const char **, const char *);=0A= =0A= -IMPL (simple_strsep, 0)=0A= IMPL (strsep, 1)=0A= -IMPL (oldstrsep, 2)=0A= =0A= static void=0A= do_one_test (impl_t * impl, const char *s1, const char *s2)=0A= {=0A= - size_t i, iters =3D INNER_LOOP_ITERS_SMALL;=0A= + size_t i, iters =3D INNER_LOOP_ITERS;=0A= timing_t start, stop, cur;=0A= =0A= TIMING_NOW (start);=0A= diff --git a/benchtests/bench-strspn.c b/benchtests/bench-strspn.c=0A= index 707613cbcf5ac556e6d5a0c3a95c19be1dcadfc6..cc98ffb38bd5d7085efa8c1d1fb= 7aba6c46c1b3f 100644=0A= --- a/benchtests/bench-strspn.c=0A= +++ b/benchtests/bench-strspn.c=0A= @@ -28,41 +28,20 @@=0A= #define BIG_CHAR MAX_CHAR=0A= =0A= #ifndef WIDE=0A= -# define SIMPLE_STRSPN simple_strspn=0A= # define SMALL_CHAR 127=0A= #else=0A= -# define SIMPLE_STRSPN simple_wcsspn=0A= # define SMALL_CHAR 1273=0A= #endif /* WIDE */=0A= =0A= typedef size_t (*proto_t) (const CHAR *, const CHAR *);=0A= -size_t SIMPLE_STRSPN (const CHAR *, const CHAR *);=0A= =0A= -IMPL (SIMPLE_STRSPN, 0)=0A= IMPL (STRSPN, 1)=0A= =0A= -size_t=0A= -SIMPLE_STRSPN (const CHAR *s, const CHAR *acc)=0A= -{=0A= - const CHAR *r, *str =3D s;=0A= - CHAR c;=0A= -=0A= - while ((c =3D *s++) !=3D '\0')=0A= - {=0A= - for (r =3D acc; *r !=3D '\0'; ++r)=0A= - if (*r =3D=3D c)=0A= - break;=0A= - if (*r =3D=3D '\0')=0A= - return s - str - 1;=0A= - }=0A= - return s - str - 1;=0A= -}=0A= -=0A= static void=0A= do_one_test (json_ctx_t *json_ctx, impl_t *impl, const CHAR *s,=0A= const CHAR *acc, size_t exp_res)=0A= {=0A= - size_t res =3D CALL (impl, s, acc), i, iters =3D INNER_LOOP_ITERS;=0A= + size_t res =3D CALL (impl, s, acc), i, iters =3D INNER_LOOP_ITERS8 / CHA= RBYTES;=0A= timing_t start, stop, cur;=0A= =0A= if (res !=3D exp_res)=0A= diff --git a/benchtests/bench-strtok.c b/benchtests/bench-strtok.c=0A= index 711bdaab58ff297855b03d62057cefd066f4e1c5..b5789d7bf243c40810f38efd40f= 0bb9c870327ca 100644=0A= --- a/benchtests/bench-strtok.c=0A= +++ b/benchtests/bench-strtok.c=0A= @@ -20,47 +20,14 @@=0A= #define TEST_NAME "strtok"=0A= #include "bench-string.h"=0A= =0A= -char *=0A= -oldstrtok (char *s, const char *delim)=0A= -{=0A= - static char *olds;=0A= - char *token;=0A= -=0A= - if (s =3D=3D NULL)=0A= - s =3D olds;=0A= -=0A= - /* Scan leading delimiters. */=0A= - s +=3D strspn (s, delim);=0A= - if (*s =3D=3D '\0')=0A= - {=0A= - olds =3D s;=0A= - return NULL;=0A= - }=0A= -=0A= - /* Find the end of the token. */=0A= - token =3D s;=0A= - s =3D strpbrk (token, delim);=0A= - if (s =3D=3D NULL)=0A= - /* This token finishes the string. */=0A= - olds =3D strchr (token, '\0');=0A= - else=0A= - {=0A= - /* Terminate the token and make OLDS point past it. */=0A= - *s =3D '\0';=0A= - olds =3D s + 1;=0A= - }=0A= - return token;=0A= -}=0A= -=0A= typedef char *(*proto_t) (const char *, const char *);=0A= =0A= -IMPL (oldstrtok, 0)=0A= IMPL (strtok, 1)=0A= =0A= static void=0A= do_one_test (impl_t * impl, const char *s1, const char *s2)=0A= {=0A= - size_t i, iters =3D INNER_LOOP_ITERS_SMALL;=0A= + size_t i, iters =3D INNER_LOOP_ITERS_MEDIUM;=0A= timing_t start, stop, cur;=0A= TIMING_NOW (start);=0A= for (i =3D 0; i < iters; ++i)=0A= @@ -74,7 +41,6 @@ do_one_test (impl_t * impl, const char *s1, const char *s= 2)=0A= TIMING_DIFF (cur, start, stop);=0A= =0A= TIMING_PRINT_MEAN ((double) cur, (double) iters);=0A= -=0A= }=0A= =0A= =0A= =0A=