| Message ID | 20260224132624.3469488-2-christopher.burr@cern.ch |
|---|---|
| State | New |
| Headers |
Return-Path: <libabigail-bounces~patchwork=sourceware.org@sourceware.org> X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id B0E004B9DB54 for <patchwork@sourceware.org>; Tue, 24 Feb 2026 13:26:48 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B0E004B9DB54 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=cern.ch header.i=@cern.ch header.a=rsa-sha256 header.s=selector1 header.b=S9OdT61q; dkim=pass (1024-bit key) header.d=cern.ch header.i=@cern.ch header.a=rsa-sha256 header.s=selector1 header.b=S9OdT61q X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from ZR1P278CU001.outbound.protection.outlook.com (mail-switzerlandnorthazlp170120005.outbound.protection.outlook.com [IPv6:2a01:111:f403:c213::5]) by sourceware.org (Postfix) with ESMTPS id 921544BA23E6 for <libabigail@sourceware.org>; Tue, 24 Feb 2026 13:26:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 921544BA23E6 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=cern.ch Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=cern.ch ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 921544BA23E6 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c213::5 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1771939594; cv=pass; b=Cw4grlkPrlvloUR5NyiUzS4Hu6xjro/0n8myEFeFLBl54dJd1uifTszFbWwtecIt7ZZ5+NsIGVhdgMa6XxI3PEr8vX/0IyfiAslh4C4tgWY80gvdUvs6I1ZtAlIHH7Ypd172gKO9yS/RVm8eRKt5MZvVxOaYYdRWtZ1zDzzx+ZQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1771939594; c=relaxed/simple; bh=zYV6QeBVpVlZb23mJk1Y6C9eGuR7GIZdISaKomybu9U=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=c0Ko/Wqc5WuSJqx5gBKMtus0pDfde0YoZQkSkkpdDYTbpsWrnEJN6CPGXwsqfL52J/7oHZT4Efnx6U1YSgEPeAgFacAQBeAgpiZMrl6QFKYsH+ifgM7iv/R/QI5Pjs+/xWjtovpcx5J60FdRSSipouyd27Q/6w86u0Af3qFGxq8= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 921544BA23E6 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GLXwvqHxMykYAYSfRaJnNvc0KDKqjDIJjWzqZo27YjmIHK1h/gKISBjHZnDFTLMqaStUxa2FAnaMADEzZA26+auNY56c5xbxaLktTeH0FuDQTbcZ/BHSeomEKVoaUnyTt4cmkMQykCx48FKEkqnoH1QggUY9DONRfExtM7dX3w1ykbEnzgyNuuE8ey4Nuw3l64cbafnJPqdHYsrQMWH2qCbZ4F5q5EcEltBwYS3gE8OK9O0kVyGkJwCk6dY2qPTojlGqIpiZwI/zvVNFSFAzqmrCoy1h8RTCCD9fDcwpja9tGfJGLKg1lSOuJHtXjwTsy/OxNP6j/7mAqJnbWy/K+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=jyau7PxiWpbTZ0cwLzhijYlu5rFLqLVNDGsy6wVG1v0=; b=MRHuWpqlR4I/xakK+157Vwsir9KsTj7dJWlSNRg3CnWRQxGItyKzlriEJHOOsmLRdJbtiAco7CdJMQDuL/675jwCHCSBhbrhZgv5+eVjPV0RMgZYqihF9BcGh8kgX0CgmtxOcADKF/7lbaSUeoCf+DN/J74LGIrHcN/7zrC4DFGOU4efMDQNKCvirIJAOlRGZHUhn1bSx6wGMR4/eQeDWgCArT+FGh+eWqbJHNTQImorGR3JX6LTwYrj10r9XgqowRLZCyOicguL0z+/XinyC3CKv5vPpT8SLMjhEe+BkCCBnyqtZF3WlWoKBhqubulwTQR86ycHjAGMGhMUwast3g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 51.107.2.244) smtp.rcpttodomain=sourceware.org smtp.mailfrom=cern.ch; dmarc=pass (p=quarantine sp=none pct=100) action=none header.from=cern.ch; dkim=pass (signature was verified) header.d=cern.ch; arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cern.ch; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jyau7PxiWpbTZ0cwLzhijYlu5rFLqLVNDGsy6wVG1v0=; b=S9OdT61qqixtop2R3qmjY1RZ73xg7x9C0tFQMMfEVuZz2LIPE7UHx8QgqRwNVhLcSqH/qULgSV7tk2NYYqhdnfhknbH7QOP6WGmyYyH9cuS3n82ql9Aizsd1Ozqa/3JyMWJxcjnViRHXL1IQ3p3UZFqs4TAiqp1u2FmT40uVLI4= Received: from DUZPR01CA0154.eurprd01.prod.exchangelabs.com (2603:10a6:10:4bd::24) by ZRZP278MB1875.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:b7::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb 2026 13:26:30 +0000 Received: from DB1PEPF000509E5.eurprd03.prod.outlook.com (2603:10a6:10:4bd:cafe::f) by DUZPR01CA0154.outlook.office365.com (2603:10a6:10:4bd::24) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.22 via Frontend Transport; Tue, 24 Feb 2026 13:26:29 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 51.107.2.244) smtp.mailfrom=cern.ch; dkim=pass (signature was verified) header.d=cern.ch;dmarc=pass action=none header.from=cern.ch; Received-SPF: Pass (protection.outlook.com: domain of cern.ch designates 51.107.2.244 as permitted sender) receiver=protection.outlook.com; client-ip=51.107.2.244; helo=mx2.crn.activeguard.cloud; pr=C Received: from mx2.crn.activeguard.cloud (51.107.2.244) by DB1PEPF000509E5.mail.protection.outlook.com (10.167.242.55) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.12 via Frontend Transport; Tue, 24 Feb 2026 13:26:28 +0000 Authentication-Results-Original: auth.opendkim.xorlab.com; dkim=pass (1024-bit key; unprotected) header.d=cern.ch header.i=@cern.ch header.a=rsa-sha256 header.s=selector1 header.b=S9OdT61q Received: from ZR1P278CU001.outbound.protection.outlook.com (mail-switzerlandnorthazlp17012053.outbound.protection.outlook.com [40.93.85.53]) by mx2.crn.activeguard.cloud (Postfix) with ESMTPS id 748737E42B for <libabigail@sourceware.org>; Tue, 24 Feb 2026 14:26:27 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cern.ch; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jyau7PxiWpbTZ0cwLzhijYlu5rFLqLVNDGsy6wVG1v0=; b=S9OdT61qqixtop2R3qmjY1RZ73xg7x9C0tFQMMfEVuZz2LIPE7UHx8QgqRwNVhLcSqH/qULgSV7tk2NYYqhdnfhknbH7QOP6WGmyYyH9cuS3n82ql9Aizsd1Ozqa/3JyMWJxcjnViRHXL1IQ3p3UZFqs4TAiqp1u2FmT40uVLI4= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=cern.ch; Received: from GVAP278MB0151.CHEP278.PROD.OUTLOOK.COM (2603:10a6:710:3f::8) by GVAP278MB0972.CHEP278.PROD.OUTLOOK.COM (2603:10a6:710:47::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb 2026 13:26:26 +0000 Received: from GVAP278MB0151.CHEP278.PROD.OUTLOOK.COM ([fe80::d451:e182:5808:68c1]) by GVAP278MB0151.CHEP278.PROD.OUTLOOK.COM ([fe80::d451:e182:5808:68c1%4]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026 13:26:26 +0000 From: Chris Burr <christopher.burr@cern.ch> To: libabigail@sourceware.org Cc: Chris Burr <christopher.burr@cern.ch> Subject: [PATCH 1/3] ir: Speedup compute_aliases_for_elf_symbol Date: Tue, 24 Feb 2026 14:26:22 +0100 Message-ID: <20260224132624.3469488-2-christopher.burr@cern.ch> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20260224132624.3469488-1-christopher.burr@cern.ch> References: <20260224132624.3469488-1-christopher.burr@cern.ch> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: FR0P281CA0260.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b5::17) To GVAP278MB0151.CHEP278.PROD.OUTLOOK.COM (2603:10a6:710:3f::8) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: GVAP278MB0151:EE_|GVAP278MB0972:EE_|DB1PEPF000509E5:EE_|ZRZP278MB1875:EE_ X-MS-Office365-Filtering-Correlation-Id: f5479a48-e1af-48f6-e2c5-08de73a85114 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|10070799003|366016|19092799006|786006|1800799024|376014|7142099003; X-Microsoft-Antispam-Message-Info-Original: J4K5RCBgMDk84mlIpWwy7IGduQkIAfp0lubjKiGkXXidLc9P2nv6Cuiajd3PyJtmJTPmV7R2qicHzc0U6fhKDNUTEzETTyO0zWbE6JtwueT3eR69e5MKhTyXaVwStbalf351ffy7+RcrWwDg0lQOLEUHyvWE9HbnQulHoUesc1/veRMm1UysHw7FRjgiWG4zcH8OK0Z8SMZzsJZIQZ1L7TObFnB54fRLlSZZPWhh3WKH2hMQ0z0NVOoHFiROKUIPQpOmKmlsTBc+yeOFyTwHz9tHn2yIgfDzIKV8F7eFeU2FvXzGmXtjdcsWOoiV6X9bdfYOn+hA72HjQKd+0Urr5D2/oUdaw6IPQ0t3Ac3VVJFNkn6FAtnH/D3RjXT3AFhDV2ZVS6tmNuExJSw+0hRz4hTDXuimr/m9CJEjd7/SeNwPuWPu5VcoEG25+NlnkN/dAHFaSrh97Hi9ptHSCJlAI0vvSlc7UqSLMoZ/J6XhigDpYHyFPQO62DBINii8nu0SqUz+lkxq8ala5wmku2pw7dAvDP2P3I5ZBaHMcfK+po4xvTPoQjkz+hakilazattfUe2LmpDikRxS4SseP1qqaot7HAO88sb+RAoh6hugpVa14LiZKVHdv6vQBgNH8e7nCgEohdXcCpWPgLVTQETLSaWvJ34QlAyW3ur7NzsWmjfljB8QPwM1TsRm3yaZNaiJ2ZGTIWJd1ZIt+uTKLNUdfrNvLbfW1RxBWDMXEbg8jYdzvHaAEOeI62atyKgXfaKbIFG5YdpEwPciInp0Ji9sPrtJ36Mr4+h3lRtCPdbXRzLZ2n2lAJD3Pm1b6aDPKKdMASn83gK78q/XkLaqgIAW89KPMlknZCT2GtnWOCH4a7oFnthkMFoLyDFSAFQZmVwLK8iQkJobfA2pIpUPT8MzxqEcIneWhzl3acpmhMFYF4EkSC2QVGHZtJ1norYJgWOK09XrGH0vpoL7lQbZ5W4QYoRDh1y/eT1QwnvUEfSuEhVYwPCpMhPYq99fsrMs3XeHbvbW3bSkx0PhfN9tLkuuhFuv2jblyb6+Rv0xopxKhsmPTo8aL0Iy66HVFTL8ez4Xw7X3DnW1rE6lraklMK71t+PdG7/pAkki/KicbE06uOpsbMX4kT0jBzRgZ4V0WORPaxZkJ7n0/gV25S7XwbuGM41enXgnVdRUNG3/Wk9QefgntfF6nMDkn2FB/3JkiJiGcp8JlOaIwvIARqfdA0/7EeZ0Pt6wqr0fLs+S41obID2P4Raa2ri/QUcgjOW1iW2D4rXYnOYH67zahQCa91qKf124w+nTYR9rxaWHRTkpkVomuQHVZQWEftjLxMSied13OOU7QFpBoCW0d2HCcJXJqfgvb81KXIQpvjq4RnLJNP5Cmex0KQySZfuM/RlRkjHJ6qhDKqgq94DhXR/vCshA1GtYvJn9pIrzFujV+WWtM2pZqNUK1lfAtdlPuLALOM+w/r2jRsLhLBYIHH6jzt1BcMksx7hM6AnzcR1S60bxqhmEunNWK4cqU3SlgHKEV9viWs2Npir4oY1dtXOraLIW2D5Pb8kV/IeqDfcwab2/1p8= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:GVAP278MB0151.CHEP278.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230040)(10070799003)(366016)(19092799006)(786006)(1800799024)(376014)(7142099003); DIR:OUT; SFP:1102; X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVAP278MB0972 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB1PEPF000509E5.eurprd03.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 5b5a0eef-4d1c-49bd-4319-08de73a84faf X-Microsoft-Antispam: BCL:0; ARA:13230040|82310400026|14060799003|376014|35042699022|19092799006|1800799024|786006|36860700013|7142099003; X-Microsoft-Antispam-Message-Info: PwadunltdZRY/ftwSKWtNUkFJgi5Il25sFeBE06kImnrKy1yZ8zDg/dk2mkZtR/flbdaVuk1IsDIwj2jIkekpNGhmWGzyhrDBdfJXQGK5LmLE9pEThCmcMuGEI8WYdxXYYgr+YrSQWhhWePfozbAr0WKN3iIfZ1xsNPZduNs8wN/eTYzbAlWX4I4rnPMndOZ8TpfFWoknfDxTJhYGM+geiVa9SmbfFRiUG/DragkJX9N1C4hJjdsSmlNbk2IksK2a1ra/vFaGEaQbrDGW3YtqmJd6/alRFYkAEip+9FFFwARMmrYD2AWxyET0900fsCXf50lk97PRSPBxvyYHmw5lBSv0veQATOS13PnKXVy005X/OtxNyXdwX1MjICJ0EH70rr+Z+8OtECIFMryXGyUxL8YjJthTuCoLTEjMkCfoOrruacgw+IB8qdNBLYYXvTp69h2wsMAbp5Y/Wo0mxEsDKRkJ8+sH+sSNE6T+qDOoDeZkr4jIe+GWB1s+nqNtU9YhI4THP/+FYAS5o0VhNGBjRn/OSPcomYx3GUz5pHJ08wziZQHP9/DwyN/EXmqLfwCAB88dVImdks2Yb6m6nguI/C7bMqZ2aqI+23ccS8cdkfjofG36uLgw+hlfJICsBzC0nkaazrnPvBMNuJZ4iVTgerYsnLZ7GZF1c+3Kk7VKZoRFiTs6UmBawLZEBVwCcjf9za/7ejV8nz+5xrHdhU1A0gltwIHbBs4tqzFtJSOXlL+dOHHaxqXvv9CmIe8jqgdSA++xH8nMvcESgxL+EukK/HyLEKvCxA3C/njlT8uGRS5v/DZCgTNsQkUL1aS481FQLEs3peRgGcQPMNWgW4GuVL5+nSGVPIs6Z/l9dHjnmpuFRKONibiY57e9/lAnh0U7SJ20p8hX3besrGBCjOC/z8iRjOdcgm9SLh1kHSFbpc1j5loy53wq6NV/Mgs6RRFgAFvcHsFo/B0G/Vg9eDNS0gsTXLCXiilMTz9OsdJuiKfMYQ5xZRrlCXOy+EsINK7dcqgz2e8ButoZm/WNTYT4OmL15W3w8riUDo3m12VFdyQQpHWlZps6LvFIwka4SbQvbGNRfVwUG/pEq56dKWiaCAsZZGlzJYUWQVW43aNJGEuwDCwXyZK3OEr92xrepF9sh5r9gGknSFSVQHO19U26DDZX9+B8M+x427JUWYhceBBLLWJzflBdCOKvp/0pPFvKU+s2eHyvWKv9n1M1uxJpMl47B+OL9UUSEr+Cu+hgfASofFdnehTpRS+CAesEPvMYZft2y5yOHuETXA1NgKE2xlRg4Zk1m80v21yFfmU6VD0LBKTgldySrRnHGQVC0nW49bpGMJJ5Cxx2nEs1qOBXSwe6todkIPG90Fb9AzFbkDy8B3VuMr6L+kg8jt4zfaQh/dh/h1oLZVEb+aK91TI5yxC9jiYM8fLTawzcaZ5lI/FSfwleG+GWR9AccTzaW8SAmYlanuiFY/MPfSJ/EwQGlU4F/LR1ax4AQbFekw0tlwYDPsmTfjZS8OHxludNekbZiwJVI6FT/+flODLiCjd5HcuE+wPI21muqWaUpm5OlkJ9qOmCHEMmMidSIA9Jmd33zf/MLAdXkwzqWW2Dh+UUnTFOl9nASkCGFx4HgKSCvaj3hRutY4q3HWhinFiBVhGfUDJzGijIwim4ST7TzJG/A== X-Forefront-Antispam-Report: CIP:51.107.2.244; CTRY:CH; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:mx2.crn.activeguard.cloud; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(82310400026)(14060799003)(376014)(35042699022)(19092799006)(1800799024)(786006)(36860700013)(7142099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: A3vyW7DFauLWYtZjkgTjNL8M/biE+sD31FKDaxq51wGYRQ8+0oKP903fDh7wBGBa+IkijZDVDRnwmIbnmtqsAim/4nIDREqjTkIoxPF+LVE+4g06KQJEEBY/kH+Hn/uiSLVIadZgfob9NjDPK3e9RH2WqDp1MgEdsMuJ0FZbRv8Tx7Ff0lWbzsvzjyw1CUjM5IWI3jsaiZ81fjBwcxEMlW9OuYaRlhIbR7aZF/pWtY99vYNaKhIqP5ANkJIAmK2fWYlOx8PkDiqjCUoiWTveMbG1iDKs1QmiUq2shDRJATZu1Ed8RolBBrQue+OtibOe+bY1Ym6/HmwBgjhAn1O9eUc6NKYB7F6/TdLgXGX4fwKs0sZTRrPugB9OeyR4amRTql6IVq+LLwUCFh+pYtRfJNCiAapW32WsS8kCHgDWhiWOn7U88/Hmqv8gXpd9DEyw X-OriginatorOrg: cern.ch X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 13:26:28.3964 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f5479a48-e1af-48f6-e2c5-08de73a85114 X-MS-Exchange-CrossTenant-Id: c80d3499-4a40-4a8c-986e-abce017d6b19 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=c80d3499-4a40-4a8c-986e-abce017d6b19; Ip=[51.107.2.244]; Helo=[mx2.crn.activeguard.cloud] X-MS-Exchange-CrossTenant-AuthSource: DB1PEPF000509E5.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: ZRZP278MB1875 X-Spam-Status: No, score=-9.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, JMQ_SPF_NEUTRAL, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Mailing list of the Libabigail project <libabigail.sourceware.org> List-Unsubscribe: <https://sourceware.org/mailman/options/libabigail>, <mailto:libabigail-request@sourceware.org?subject=unsubscribe> List-Archive: <https://sourceware.org/pipermail/libabigail/> List-Post: <mailto:libabigail@sourceware.org> List-Help: <mailto:libabigail-request@sourceware.org?subject=help> List-Subscribe: <https://sourceware.org/mailman/listinfo/libabigail>, <mailto:libabigail-request@sourceware.org?subject=subscribe> Errors-To: libabigail-bounces~patchwork=sourceware.org@sourceware.org |
| Series |
Speedup abidiff for large symbol diffs
|
|
Commit Message
Chris Burr
Feb. 24, 2026, 1:26 p.m. UTC
When symbols have no pre-linked alias chain (e.g. when loaded from
abixml), compute_aliases_for_elf_symbol scans the entire symbol
table to find aliases, making each call O(N) where N is the total
number of symbols. This function is called from
get_aliases_id_string, which is invoked by the reporting path
(show_linkage_name_and_aliases) for every added or deleted
unreferenced symbol. With ~47K added symbols, this results in
O(N^2) comparisons via elf_symbol::operator== (which itself calls
textually_equals and walks alias chains), dominating abidiff
runtime.
The symtab is an unordered_map keyed by symbol name. Since
textually_equals requires matching names, only entries under the
same name key can possibly match. Replace the full table scan
with a direct hash lookup of sym.get_name(), reducing the per-call
cost from O(N) to O(1).
On a comparison of two versions of libCling.so (~57K symbol
changes), this reduces abidiff wall time from ~9 minutes to ~20
seconds.
* src/abg-ir.cc (compute_aliases_for_elf_symbol): In the
no-alias-chain fallback, look up sym.get_name() in the
symtab rather than iterating all entries.
Signed-off-by: Chris Burr <christopher.burr@cern.ch>
---
src/abg-ir.cc | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
Comments
Hello Chris, Chris Burr <christopher.burr@cern.ch> a écrit: > When symbols have no pre-linked alias chain (e.g. when loaded from > abixml), compute_aliases_for_elf_symbol scans the entire symbol > table to find aliases, making each call O(N) where N is the total > number of symbols. This function is called from > get_aliases_id_string, which is invoked by the reporting path > (show_linkage_name_and_aliases) for every added or deleted > unreferenced symbol. With ~47K added symbols, this results in > O(N^2) comparisons via elf_symbol::operator== (which itself calls > textually_equals and walks alias chains), dominating abidiff > runtime. > > The symtab is an unordered_map keyed by symbol name. Since > textually_equals requires matching names, only entries under the > same name key can possibly match. Replace the full table scan > with a direct hash lookup of sym.get_name(), reducing the per-call > cost from O(N) to O(1). > > On a comparison of two versions of libCling.so (~57K symbol > changes), this reduces abidiff wall time from ~9 minutes to ~20 > seconds. > > * src/abg-ir.cc (compute_aliases_for_elf_symbol): In the > no-alias-chain fallback, look up sym.get_name() in the > symtab rather than iterating all entries. > > Signed-off-by: Chris Burr <christopher.burr@cern.ch> I have applied to this to the master branch at https://sourceware.org/cgit/libabigail/commit/?id=c7032a2b4a08d1b78b91d297e74e7c33230f7165. Many thanks. [...] Cheers,
diff --git a/src/abg-ir.cc b/src/abg-ir.cc index 034a57e3..8ae643fd 100644 --- a/src/abg-ir.cc +++ b/src/abg-ir.cc @@ -2877,9 +2877,15 @@ compute_aliases_for_elf_symbol(const elf_symbol& sym, for (; a && !a->is_main_symbol(); a = a->get_next_alias()) aliases.push_back(a); else - for (string_elf_symbols_map_type::const_iterator i = symtab.begin(); - i != symtab.end(); - ++i) + { + // No pre-linked alias chain (e.g. symbols loaded from abixml). + // Look up by name in the symtab (O(1) hash lookup) instead of + // scanning the entire table (which was O(N) per call). + string_elf_symbols_map_type::const_iterator i = + symtab.find(sym.get_name()); + if (i == symtab.end()) + return; + for (elf_symbols::const_iterator j = i->second.begin(); j != i->second.end(); ++j) @@ -2896,6 +2902,7 @@ compute_aliases_for_elf_symbol(const elf_symbol& sym, if (*s == sym) aliases.push_back(*j); } + } } /// Test if two symbols alias.