From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02olkn2085.outbound.protection.outlook.com [40.92.44.85]) by sourceware.org (Postfix) with ESMTPS id F2C083858D28 for ; Wed, 12 Apr 2023 05:34:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org F2C083858D28 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=maskray.me Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=maskray.me ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Fkroi56G/yyE63dXSmzGvoMQPmvFkwDSKqrnNVnqxkYF7sdqK3tkzZpVfh0CTmwPT/1fyvi0ITl8Ah73pTUBVhCnEntWE2RDSGohKGnl6o8U7NHkT+yi4MH5rph6JAAd1Z1tjDukSnsN6I18sJJ9qnc/PbAm88YrTpq4/bDUE2Yp+eghIiLm7XHBj72m4scO36tcaVU8C+dzPBKSymkUsWpXpZP8M/cfzA7QQT+2n77XKdK/qhvQ5rH239ar8WFffYzfu/3sCA4ONZ6MML2MLXw1r1kR4qtrmC8FrDQKfCoDD3oFxL9E/FU1IYWeQrElHgQsVg/suayDU4HqejAiIg== 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=5OUs8N/RCabXiawcN8fLpsNXkWtuc3JW7UzZugJXjik=; b=iyHvfUQD9O2Xml33Ccp0e4lfJjofaPF8KZfrXso0dSu2nW7/ngsTibhHugGfjVkZyFL63+mIxW+BkkXj3OJdyWZ2KMqgYtmmVG2OTnaL7aR4ZC395hPfYS4Y/Mh7nGSRm4VMtY6v2+7yWIr/14pNsAzghCAMuOj0kDi0lwOA3+cJxcHrCvwmX69qHX3BSnMzWOIMlsKfEGbJ5GwLZ6fulaAf2FD/X/Jt6CVk9lFmAjoKXW3tZ7zHSWXJAd0jepeBG1iNcFsbvQF0DKH2f7dw88tRs+lyo7Dk90TypZw0sk6KIPf97ZKW+7pIqgVo5DySUtKpiEpxuUlFPu30pjiwig== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from DS7PR12MB5765.namprd12.prod.outlook.com (2603:10b6:8:74::19) by SJ2PR12MB8110.namprd12.prod.outlook.com (2603:10b6:a03:4fc::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6277.34; Wed, 12 Apr 2023 05:34:04 +0000 Received: from DS7PR12MB5765.namprd12.prod.outlook.com ([fe80::37be:452f:ad44:f37c]) by DS7PR12MB5765.namprd12.prod.outlook.com ([fe80::37be:452f:ad44:f37c%3]) with mapi id 15.20.6277.033; Wed, 12 Apr 2023 05:34:04 +0000 X-Gm-Message-State: AAQBX9cUJhebhqa6Q9c5MgiBW/AGY/rCFZsI1AFspig/95CdDzln2Vzj 5a4IMSzUrU4fiEuioNqIVk1FyiwvfERsAdcSLRw= X-Google-Smtp-Source: AKy350auZ6z1YrillKgHl2A/umQfcAcSa2DoTOdWeMwc5Y6nb3pjaKDCUJ4oBvvpBUR2KUIaHHOsP37UW5fIe0dMv0g= X-Received: by 2002:a17:902:c3cc:b0:1a2:4524:975f with SMTP id j12-20020a170902c3cc00b001a24524975fmr4542208plj.0.1681277643066; Tue, 11 Apr 2023 22:34:03 -0700 (PDT) References: <745eb337-facd-244a-bd02-d9b8b1f653a5@acm.org> In-Reply-To: From: Fangrui Song Date: Tue, 11 Apr 2023 22:33:51 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: bfd: optimize bfd_elf_hash To: Nathan Sidwell Cc: Alan Modra , Nick Clifton , binutils Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-TMN: [98nZdg8qV/oBKi0x7qB/uQrENXLOzMHq] X-ClientProxiedBy: MW4PR04CA0151.namprd04.prod.outlook.com (2603:10b6:303:85::6) To DS7PR12MB5765.namprd12.prod.outlook.com (2603:10b6:8:74::19) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB5765:EE_|SJ2PR12MB8110:EE_ X-MS-Office365-Filtering-Correlation-Id: ec640dc2-6951-4c58-4091-08db3b178770 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DC/shxpbkgNOYaL1P6iGBoWWTc0RXfjVfWCXR5E9VFlGz9N7VwCl25iNaLoLgFXku1xODtSDa8xVeGJx3To3L8vfwaWcsE6qxMXfMrb9xWyxwVbXOaRVqIi6saK3VEIgO/QCGLvhTFVkgKnrHNMfap9YOp0YnV1lsYJQF/qaiDJT8kH2CjBVc2CpNUKve3lbG/WkW/kv4bDr1PocF9d2PJzR3k8ZtmHEqWuwNJTKkToAEvvbCHgZkRzhrK+tQqRY9WCciDl0SZKNZm3ql4ztlgSkzn6W+MxBJk/p3QoRnJoFGELv6CO90k9gG1YBWwVtz8eT47uUyZ+tgwF08DAQ/xGW5GMYWZz7yQLA2w3KsWo+XYHM3JsO6jYDvZaHLtBVFRsVc6IpzLPIhKK/OzgfsavcQZLL5KAnzLvbtzazqsSaDECjEyP+gHRlSCkHObH42ix9BsbSD3VGn7XqgS9ZWiDRCfltMdCAAPwFVeCAPfGJoM1ZeI3e/Tt2IjYbtopePExopHRtdA0sP/v0LxtEjf5QJ9WDycl71rNXb4Pl0DS9ymumP/23boDP3cSZ23omvlBJ7q24hhylfB1VglDYrIQxJJMkgreuoo9bNJmMIvo= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?enR3K0VjVDFUSzNjYVNpNUp1WSthczFEY0ZrM0g1Nk9RdElrNWtlOFRwbGEx?= =?utf-8?B?cTdQK3N0QzVJNUR1cDBGU3k3dDI1UWhxMXFWMytxRmc1cFJzbjRUemhXMFA3?= =?utf-8?B?bGZPNlo4QlU2ZnYvRG1kSWllaTgyUHVpcU1wSm8rSUhjaVZlUWREREVEU3JJ?= =?utf-8?B?QVdUZ0dPbU0vSUcrVWptdTZ6eHRuN1lab01vVGlQT25DOEdFcUxpQ0tSL29S?= =?utf-8?B?MnkyWUFNOWl1NzZjWWVobmxSbG1FWWpwQ255Q1VsZUlDcElFZHE2amNUNGhy?= =?utf-8?B?bW8yd0x2endSTThoYVBYSXNucjcwanBXc1FtNm92eEloY3NQV1BvSGdOQ2pC?= =?utf-8?B?cUZDL1llR0k2NjNGd2JXSnd2SjIrMktOUlpoRzZ4VlVROXdjUmZ2VC9NYk1h?= =?utf-8?B?d0xVZWV3NExNMkJ1cEZSZ0orNUNjaHU3OFZPMWxkQXplZHZGSGhLaWZmSWwx?= =?utf-8?B?V3U3ZDBKcURkQ3g4NDIvWnJDbHEwZUpITXZzNGl1a09UbDdhZCtGWGI5dUYx?= =?utf-8?B?SUxrU01JdHNmb1haak1XK2Y2dXY1bkFuRDBuS0c4YkRNU1pKV3k0TXhUMzJx?= =?utf-8?B?a1AwUXF5N1ZwLzhXWU9taWYvcnF1VUprc1FnVFNsa0tyY2NvbXFYODFiZ2Nj?= =?utf-8?B?QWFqUnJTejcrQ3RwM3dMT09ZVkpRTDRCOXdvM3J2aExaLzhyZ2dKS09YZG1l?= =?utf-8?B?RFdmbkhod1J0ZWNjNUN2aXNrNmU0WnVRSXFZMGJqL3pOVGJadU1hanBlVmZF?= =?utf-8?B?UlZobmdhOExGMlcxcjJlU0hjdkRROG5PZnN2VkVDVVdjOUgrczVkWWhNWXpj?= =?utf-8?B?YUdrR0VCTmFMY3dGRk4yd3QzRUdZLzJnRjB4MEEyQzR2UHN6K2ZMSDVRUTBz?= =?utf-8?B?MzkyeUtGSGJxakJWU3BWWE1RWjNuQjVXbHZIaVd3THlnRjZPRzdxdHFWWW5t?= =?utf-8?B?aTlHQzlJcWNKSGkwdmxlRG5GSHk2T3FGYUQzTW94dU5YYVg4ZW9aODd2ckJ4?= =?utf-8?B?RzZOTkhTZHpIUEhCSnZpNTFjeUZZTHcvNHByVXBCeUtQczI1ZFlaSW1kd2JX?= =?utf-8?B?dDcxUnhwVU9NaExoMFRMenVhVTdVY3k0Rjk2M3FqUlBzcDZuVWZYTDlJMUhX?= =?utf-8?B?RTI0TlpDb2NNejVQYWFtc0NkbjBjd3JLZEZSZU9rcEN3dnM1cG5Va3VENjg3?= =?utf-8?B?eVArbCtMV3VCVjJYWW5VUXl1SGk2bVBBZE9CL25GWGZtdWY0R3pUNDQyZDBC?= =?utf-8?B?ZmVQU0tZL1BrMkNWODVueFphNjR0SjNGNWxTeUx4S0xJTlBkMStzL3Jib0hi?= =?utf-8?B?Z1VhSStNYVd0ZWxFTUVQaklxa3M1ZVduR1dmMk02ZzFSbkYyeGtOanlIN1RF?= =?utf-8?B?QUhXVUJSYmpRTW50V2h1ZzJSTUxmU1pHV0VwZTQweXhjYTBHOXhFemxxUlNa?= =?utf-8?B?YWlNbktSTHJicjY3cURydjVISGJsMzFGbHNQQXh6dGF2czlCTlRzang2aFpY?= =?utf-8?B?TjBHZGdEM0hPOG9JbDlFUDFsOU9XVDFXbGtlbGUwN3BaTWNOU2R1L3hNdHov?= =?utf-8?Q?uDcVzk9doUfBbiMgUmd9qhuvs0UbSWb6PTgd+kXZJdZuP+?= X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-71ea3.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: ec640dc2-6951-4c58-4091-08db3b178770 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB5765.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2023 05:34:04.8857 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8110 X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,KAM_DMARC_STATUS,KAM_INFOUSMEBIZ,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On Tue, Apr 11, 2023 at 5:36=E2=80=AFAM Alan Modra via Binutils wrote: > > On Sun, Apr 09, 2023 at 06:55:13PM -0400, Nathan Sidwell via Binutils wro= te: > > * elf.c (bfd_elf_hash): Refactor to optimize loop. > > (bfd_elf_gnu_hash): Refactor to use 32-bit type. > > Looks good to me. > > -- > Alan Modra > Australia Development Lab, IBM Thanks for the patch! The generic ABI code fragment may have an oversight. When long represents a 64-bit integer, elf_hash((const unsigned char *)"\xff\x0f\x0f\x0f\x0f\x0f\x12") returns 0x100000002, larger than UINT32_MAX. It is unclear whether a value larger than UINT32_MAX is intended. I then investigated the binutils-gdb implementation and found that in a 2003 commit (https://sourceware.org/git/?p=3Dbinutils-gdb.git;a=3Dcommit;= h=3D32dfa85d9015feea4a06d423fe58f6eaf841456e), Andrew Haley appeared to have noticed the issue and made a change to "Mask lower 32 bits of hash." This change made me more convinced that the generic ABI code fragment had an oversight. If the generic ABI code fragment is indeed an oversight, this optimized version looks good to me. I asked https://groups.google.com/g/generic-abi/c/8J_jtjsonrE ("What if the result of elf_hash is larger than UINT32_MAX?").