From patchwork Mon Feb 3 13:04:05 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alfie Richards X-Patchwork-Id: 105917 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 131B9385843B for ; Mon, 3 Feb 2025 13:12:42 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazlp170100000.outbound.protection.outlook.com [IPv6:2a01:111:f403:c201::]) by sourceware.org (Postfix) with ESMTPS id 24FE23858C5F for ; Mon, 3 Feb 2025 13:04:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 24FE23858C5F Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 24FE23858C5F Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c201:: ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587886; cv=pass; b=dz9p6xSCVG/OqPzziLdjILcTwiQPW9OXCHGe+Y8Gt++RjIhmUnYN+g97dY6KqGkDf3DxTQZhPjj5qnh+YZ68adLsx/QVByu21jC2JOLPlIou1tUdVN6amHk5UyQLWQHvokdSDL3mfCDSaunw0wUrVT6DfQtN+0sJ0K+jv2SXYC0= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587886; c=relaxed/simple; bh=C27J54Jj+tCjoW15Ya843wUdnySfm43cNqVXfNZHfAs=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=WhUp1DWiRn0Ra0LjyUWS0Ue2yPmlp1Q6r6IqneQtu7cG5vkjzW0OF2eym5m2SsIyqcqsp2W8muKOjzyL3/LeFHhiXg/3L1HYUzgAIoXKr7WAONqztbPa+Z2EpRBwbsEXnqu6bJ55/V4ZI32J/cd8369+J03dJA5R6CNRdk40mh4= ARC-Authentication-Results: i=3; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 24FE23858C5F Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=jHQtMyCz; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=jHQtMyCz ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=JrRwJK0tzmgitm2aI4RO/Oa89YS3x/cfRQ6IBpq1welNHfpHUR9fNutGNrnmx5Nbt4X22FiWEjzu4bz3bBssteMJJTxOUrtizf7hsFUlscgVwq29JHur/lTu/I1NYGfh6CfIuZastEnrMOPeeht1ctS96b3cqDaooLhhqHKskW3y7DgklBW5AVC4cVGqRdodlxVWeJhPVLYODF33RVNp4cGPu0hVV7u7FRgyt3FAjU1O7xvfCN0wtce1JNoyLRO9BCBKhzx4Z0M9KfBG9QwmGBDrs2SiRZ1t79ARNgTGpEO+y3I8jQvMLav/qB3J9U1ypo0vqE4p4ZFfP1VwNv4QMQ== ARC-Message-Signature: i=2; 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=FuHaJcftRvXp5hTzUm52h+bqo8hm/XkAHWQEATj4Px0=; b=tYShq/qUOLQMrU24xeUV6L0OM+mN6qzR7N8piduNJUKTOIAl9J4Zsu7ZnF5+M5liu7aFGQiII3sZNm6zdiAl65pJId6OjhmTgBCf+8tYeXKEp7fU54g0k5GhmHBzh0OdYEnX/yB3ZUUPoOJHzqW+/fdLAXQPEH2LiIZP+pcJPi+0CkP0ZzEJW7IgOAuFK+a8pOAD4vn6spE1GdtnNIdr7RKxbHsS6glTTXraNWwv0mNGgH5wRpFrMTEw/q9v4MuT5WCHTkeoPvr6Qiq8uk/2WzSbrqFlzKd+9Nn3Mp1axjlSwDH2UdYCvfSCXtJUewUUPZCFoMzsVKH//hBEbeVczw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=0 ltdi=1) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FuHaJcftRvXp5hTzUm52h+bqo8hm/XkAHWQEATj4Px0=; b=jHQtMyCzolM96547/wBfZQMmfk4WBgB4D+eKeglGbmtM2xLB9rPW89UKPcucB41rIT3v3/t0fKBjWtRROS4iOHRasQ4dsepjuOIta+KMm6ybK3NcBmcxjRKMcFd2WjGPvJmM24+SbQDHT7WPA08/yU93HwB4mfPDHK5y1TjH/4Q= Received: from AM6PR10CA0047.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:80::24) by AS8PR08MB8134.eurprd08.prod.outlook.com (2603:10a6:20b:54f::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.24; Mon, 3 Feb 2025 13:04:40 +0000 Received: from AMS1EPF00000040.eurprd04.prod.outlook.com (2603:10a6:209:80:cafe::30) by AM6PR10CA0047.outlook.office365.com (2603:10a6:209:80::24) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.23 via Frontend Transport; Mon, 3 Feb 2025 13:04:40 +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=arm.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 AMS1EPF00000040.mail.protection.outlook.com (10.167.16.37) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:04:39 +0000 Received: ("Tessian outbound 57745bc349d8:v560"); Mon, 03 Feb 2025 13:04:39 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 3ccd6a28d40e4e01 X-TessianGatewayMetadata: kNNPWAB9jCd4EZJ7bew9yA0t46Xy8ih6aPrlSfR8Ye7wz/fkB26aKunHTYnN1VgoZGiEQ3vEUTgL0veIUaIepGoq0njNMp1aLOHAdgJ/nBUUtM/WVNb0HJoCgJciWNGl9e3T8bklE1ccQIYzPpsa9U8eyLBlLeEjJ7Ml3mpSp90= X-CR-MTA-TID: 64aa7808 Received: from L546cf4442caf.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id CFD0B862-9411-461B-88E5-0A8A31E12E6C.1; Mon, 03 Feb 2025 13:04:32 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id L546cf4442caf.2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Mon, 03 Feb 2025 13:04:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=E+byfnsokvt8I6OcvegN1/YjcNsc8/4wuIuSceZND6WWszuHJtypJT8Q9aMkDzjTKc5Y4KqCtG+dOoRJssNrfOZJaBcEUL2vOxm+4J1yQcNRv8HCUUt3U2eAZ4cQ1zDpLd0y+Mo0homcDzcrTOwu77GBO5LMjXEy/TZYgZbYsFnyOUlxX6UtqcVYoBc7s2HufkN6OSfablIiWNqtmt1G4d98IdZDOCh9kvMu+J9ly52QOgPnZ64+xVXXn4lMtdQ78AMhBW00Ej1GrB5g7xZux9rx6wx7NZX+e/VNIGdFVVTCTPnazhqQGMNcFWE8JZGJ9eWrMySAmeogTCJogosShw== 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=FuHaJcftRvXp5hTzUm52h+bqo8hm/XkAHWQEATj4Px0=; b=c8vaW7Y4OagvnXtuT1mQ9SlUHyFGat6pw9JXhmMeHgZHAIJLxHa/VEQkshdeIXZ8U8UBGr1KL7WCTxyCoQIBXvtsGhii7wtGqANY41JXgQk/xlwXy0ZKDjtZ6cEC4P78li5S4cYncb/OgWmX5tANEOil//9xrd5HOQG7IyTcEYIRIPWQRkogdE9Xlwpkp2H6HC+cLugalBvNIBadZALmeiRJtMySetqGVO8V4dNuWncLLRJND0fQRaK6ermI5DigJ9/LMK/yyp0w70XG+AzZ69h3mxqcGpREBmoRduXkJKN/Tgl438xb39SFAQBqFgYoEbmQLHXUQ1u2Sg1i6Lk9jA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 172.205.89.229) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FuHaJcftRvXp5hTzUm52h+bqo8hm/XkAHWQEATj4Px0=; b=jHQtMyCzolM96547/wBfZQMmfk4WBgB4D+eKeglGbmtM2xLB9rPW89UKPcucB41rIT3v3/t0fKBjWtRROS4iOHRasQ4dsepjuOIta+KMm6ybK3NcBmcxjRKMcFd2WjGPvJmM24+SbQDHT7WPA08/yU93HwB4mfPDHK5y1TjH/4Q= Received: from DB9PR05CA0010.eurprd05.prod.outlook.com (2603:10a6:10:1da::15) by VI0PR08MB10969.eurprd08.prod.outlook.com (2603:10a6:800:250::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.21; Mon, 3 Feb 2025 13:04:26 +0000 Received: from DB1PEPF0003922D.eurprd03.prod.outlook.com (2603:10a6:10:1da:cafe::b6) by DB9PR05CA0010.outlook.office365.com (2603:10a6:10:1da::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.24 via Frontend Transport; Mon, 3 Feb 2025 13:04:26 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=arm.com; Received-SPF: Fail (protection.outlook.com: domain of arm.com does not designate 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; Received: from nebula.arm.com (172.205.89.229) by DB1PEPF0003922D.mail.protection.outlook.com (10.167.8.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:04:26 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX06.Arm.com (10.240.25.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:25 +0000 Received: from ip-10-248-139-135.eu-west-1.compute.internal (10.252.78.54) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 3 Feb 2025 13:04:24 +0000 From: Alfie Richards To: CC: , , , , , , , Alfie Richards Subject: [PATCH v1 01/16] Add PowerPC FMV symbol tests. Date: Mon, 3 Feb 2025 13:04:05 +0000 Message-ID: <20250203130421.2192732-2-alfie.richards@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250203130421.2192732-1-alfie.richards@arm.com> References: <20250203130421.2192732-1-alfie.richards@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DB1PEPF0003922D:EE_|VI0PR08MB10969:EE_|AMS1EPF00000040:EE_|AS8PR08MB8134:EE_ X-MS-Office365-Filtering-Correlation-Id: b147b02c-a9b2-49e6-df20-08dd4453515f x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|36860700013|82310400026|376014|1800799024; X-Microsoft-Antispam-Message-Info-Original: 7HWntk7FQ1dhYfe0ISUEv0gZSY/62CLC6mKWoCTLz3jIOcZAK+DwP1sKQqONP9B12sBdW9ryO/f/VRMLbQTWYg2fvNQFK2zYwQbH7cm5QGQ+2EeCX4qNjj/15KMAsrhlaOjLIrX5f4aTIBe8ejnS6bH2rvngOJQVU1mWHwpftY+rxstEgudEI5kz1BvbSg1223wJxLivpQtDg0aAv4qWmtFhwS6QTO5NpaAza5FeL+h8TLD6m14sM3yQIs4CLFuvyrAP0GhvBJZBExScZ1/1xNKM2GJSJS/s93NuR2qnnkDKtBfYvU2m/plIT2LJxMSmh1GJWo8xCvKENTcgyYi4+eG8yKbZg8jmzqZO/1bzkV6gvR1IJximZA9WIpUhC0yvhfgLJ11gYSbOmf9er2ccXvGHybnCJPckpAr5pjrD1V292jOWWczfPbya+08LON7Y2GxOhwI2WYZrrpRNHdq9RILJB3YzrkkYzVRMvOW1Q4e7ruGpE9BG0pD1wIZjnSnu2AxxLuzWO7370IFqKrBzWWsH79Zi5YhWti6dSFUIxpFu18Sgmuvtsag/5f1y3Wx6KCavo1I1TRuJf0y6sHrxNWmfY2vJ9AA5Aj1/t6Cqsnv9tN6fablNsDvnCAM4y8gAkLnnQ5SvSQiAokZyRKIn7bSvziXbAiP5G5d+lMDJBlxAO5gQq+fk/Z1C6vhQOA0lo/BlitRIuDQaEtLvMn6+FSHa9phPdwlW0/Evxpv537fGEszsj2s6jnRE8BOFpk+Ssuq1KsxO25I8nO6skhZT5T54joDMmWb8giV510j0p6IU0tvrVyo8P7GjWMPSUbg36PH9B/q6Ah3voYFLFnWSCNoCCFQYPvwqdUCRo/k1T7eITrCNTxdVx1XUs1RLLdw3YaBbZBLNOlEySFTTHpoHW5i+Ha1cE1MwAt3v/qjLXLrEXxpLoJg0/4+I6lN3BmnItLoqKZ8KpMjKro8UW1JPnJKMTpwJmF47/HmY7Ds8S0uuHYgUYFBOQN33kZD3zmuC3sBgHp32VBvKFzmpbg300/VSjaUR9odYhxJRicTazEeM6kQP7OY3ZS7F3v2xB8jvG9Xj7qBRzNNpXp2iLaeZ4n4PniSXd5WIdOVT5k3TP1CCUc6cPLWdTWqNn6Nv4+Maqn1B1ngSvNgMCMue3NSZpT6gtEbqJuHJVXchFvNyHTx6r/+/OOh7w+1T248kRPtf3QjCq0gxO/w7YYifVM6R5489Hgf8I6Xmq37izzTL9GkkjeHFxT7PEqUI/uHw9NR7WmAgaeSzV8yql4c6OfRdrdwcuGpQsiykS3QyVdMXLVyNSta7CmyLe49GDHhIka+B0flo024NXMuBdagwc9S620ryX18bW0E4J+JoqGcdvM1R/yeOnEAIPRHWtJs97JYiskm6jteY+zDjBGwv+VaHb4CzofMbwR6r5jCsO/hPbID1PUsOnzwslDZEffwIzlaiMMuvhJ9JhXEM8kr9eF2jeyBEPPWkJ47q7j/h5hiJPpw= X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(36860700013)(82310400026)(376014)(1800799024); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB10969 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:10:1da::15]; domain=DB9PR05CA0010.eurprd05.prod.outlook.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AMS1EPF00000040.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 2b812224-b2f3-46f6-f34a-08dd44534995 X-Microsoft-Antispam: BCL:0; ARA:13230040|14060799003|1800799024|376014|36860700013|35042699022|82310400026; X-Microsoft-Antispam-Message-Info: =?utf-8?q?fzwcTxyiCIJeMkcKyOjJHaL/q51XwBc?= =?utf-8?q?ZpBbneat/RBus3kUdG9Xj31IDidFETrQCTRsn5UIxhE4bAuOMZmPN1fVvSMF87HP5?= =?utf-8?q?gzOxEE3kgO5EuuxKwds7Cnk6KMNY9VUL21SuUohXd5XrGFP6tsXixMK0EhrAkfLzr?= =?utf-8?q?+qIhJhYXCdQSIQ2Pd18wO2Fjb0KRJAOtMCDdJ54QcqCzVwZ0dz/+74PoWVZH3Pssl?= =?utf-8?q?NmiUlx7PLL8hDHN37W7QZVe0XRHw/s9fzqfwcBQMdXPXoX9behCZPTK/GhgHRc1Py?= =?utf-8?q?2NrQ88+96sgjppxLlypBRphHmU4MpCn35NKRK4Mgoy/iiGRl4WVz3YR3vF9UHZ/Ag?= =?utf-8?q?z99U90+4ya7zYmHwu7wv0+ysxJyAN+bm5Ka4qR2egnpGwps0Bj+0Ur3kDwbvhK8fN?= =?utf-8?q?wDpb3h/SnThHBVk0OlcmIs2SoSZAvcQbkYIuXJQ/armxuvOjyBg6+nZP9vraxCbVr?= =?utf-8?q?9rWv3/CcuMNu3vEaO0BioTtLt4u9jTHJGaeM2iku8qX/MgHffdMOa2wX46Lsn5lLP?= =?utf-8?q?++OuPeixBhVvl1zLk/Ghnp+c/VJDRRYPuB61mjPH6JVQdeU+I+wgVzz8RkuqfhHkp?= =?utf-8?q?NwviXDD6f+GIN87QdPi6anNS84LedwnVby3wviDWE5h7aIyHKEyQU1fzj4C/sbs1M?= =?utf-8?q?kMKYLGX63LROTFwZwd7DiswbzchOw4SYgNDKuI3db1rRJwsA4iXaVLNxLouFd9Ou1?= =?utf-8?q?GIQ63jOydcPEbCQv5csJk8LKVvGTInmIi1qr5wjXRzFLaCLB46+6C/cHAzBaIS8rI?= =?utf-8?q?ZO+MlZpDIATyGcuqQz+oDxUY5N0NgCihea8FQ18GssK1o7ccATlNo7PuzkRTSV/1C?= =?utf-8?q?RxDqIAElB5+ZQGSEDl7+SKE2L2m1BwOhRYmUnozreUt1UWXYtGgT5385l6lMLN6lM?= =?utf-8?q?7eqAnj13NpJ9ZcKZRNWNKj3eK8cbpz8hzK8i741kmNoVsTdjaPJUT0NHKJ/QPyo0V?= =?utf-8?q?FbUx7hTRm7cXp2P8NEILUYE98xYHpSjTZz97wwbZCkKdPQRdYu2Jx6qvmSlxO+o7g?= =?utf-8?q?3j0K1Tv0kdSiOULkBTblJ5fhxF1dGFhuOMaBrnwTH8M/HyvhGnjJm7182DXaiLJi2?= =?utf-8?q?nWOv29FhqQcNYNzuazkcPB4tAjrjYXVRXrNQAOK3mKVWQ17ZhldVma8ciaNMCgq7W?= =?utf-8?q?lqPnL101m8ntMVcGTH24D4TNXrdiPpV6box3J9QG8OLmAoBFlk8E4YpEZtXVmOIyq?= =?utf-8?q?mW+aR7y4VftXynxq2vsosPhbA6gnMw3OxwplkmJwM5ew/trrT+XB1k+1gcwm4jfJ7?= =?utf-8?q?xi+n1/SGfApq/c/QbbVbRPAaPvbFSTFR4gNTUZx1dyZqynRgtc0wxjoRTPuZj5OTE?= =?utf-8?q?uBFPAfqAvG/ze/l1Cu1sX64UppnSrDQZnM4+U0LjfOLG1niq/RbkftoRIcrDaVONt?= =?utf-8?q?pbFtUw5bNHHrs3fTruCIv0hbnMRzB6l8SbZWQWSUiMDMubv5+FDFnY=3D?= 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:64aa7808-outbound-1.mta.getcheckrecipient.com; CAT:NONE; SFS:(13230040)(14060799003)(1800799024)(376014)(36860700013)(35042699022)(82310400026); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2025 13:04:39.4065 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b147b02c-a9b2-49e6-df20-08dd4453515f 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: AMS1EPF00000040.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8134 X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org This tests the mangling of function assembly names when annotated with target_clones attributes. gcc/testsuite/ChangeLog: * g++.target/powerpc/mvc-symbols1.C: New test. * g++.target/powerpc/mvc-symbols2.C: New test. * g++.target/powerpc/mvc-symbols3.C: New test. * g++.target/powerpc/mvc-symbols4.C: New test. --- .../g++.target/powerpc/mvc-symbols1.C | 47 +++++++++++++++++++ .../g++.target/powerpc/mvc-symbols2.C | 35 ++++++++++++++ .../g++.target/powerpc/mvc-symbols3.C | 41 ++++++++++++++++ .../g++.target/powerpc/mvc-symbols4.C | 29 ++++++++++++ 4 files changed, 152 insertions(+) create mode 100644 gcc/testsuite/g++.target/powerpc/mvc-symbols1.C create mode 100644 gcc/testsuite/g++.target/powerpc/mvc-symbols2.C create mode 100644 gcc/testsuite/g++.target/powerpc/mvc-symbols3.C create mode 100644 gcc/testsuite/g++.target/powerpc/mvc-symbols4.C diff --git a/gcc/testsuite/g++.target/powerpc/mvc-symbols1.C b/gcc/testsuite/g++.target/powerpc/mvc-symbols1.C new file mode 100644 index 00000000000..9424382bf14 --- /dev/null +++ b/gcc/testsuite/g++.target/powerpc/mvc-symbols1.C @@ -0,0 +1,47 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__((target_clones("default", "cpu=power6", "cpu=power6x"))) +int foo () +{ + return 1; +} + +__attribute__((target_clones("cpu=power6x", "cpu=power6", "default"))) +int foo (int) +{ + return 2; +} + +int bar() +{ + return foo (); +} + +int bar(int x) +{ + return foo (x); +} + +/* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.cpu_power6:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.cpu_power6x:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tbl _Z3foov\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.quad\t_Z3foov\.default\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.quad\t_Z3foov\.cpu_power6\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.quad\t_Z3foov\.cpu_power6x\n" 0 } } */ + +/* { dg-final { scan-assembler-times "\n_Z3fooi\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.cpu_power6:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.cpu_power6x:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tbl _Z3fooi\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.quad\t_Z3fooi\.default\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.quad\t_Z3fooi\.cpu_power6\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.quad\t_Z3fooi\.cpu_power6x\n" 1 } } */ diff --git a/gcc/testsuite/g++.target/powerpc/mvc-symbols2.C b/gcc/testsuite/g++.target/powerpc/mvc-symbols2.C new file mode 100644 index 00000000000..edf54480efd --- /dev/null +++ b/gcc/testsuite/g++.target/powerpc/mvc-symbols2.C @@ -0,0 +1,35 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__((target_clones("default", "cpu=power6", "cpu=power6x"))) +int foo () +{ + return 1; +} + +__attribute__((target_clones("cpu=power6x", "cpu=power6", "default"))) +int foo (int) +{ + return 2; +} + +/* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.cpu_power6:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.cpu_power6x:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.quad\t_Z3foov\.default\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.quad\t_Z3foov\.cpu_power6\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.quad\t_Z3foov\.cpu_power6x\n" 0 } } */ + +/* { dg-final { scan-assembler-times "\n_Z3fooi\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.cpu_power6:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.cpu_power6x:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.quad\t_Z3fooi\.default\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.quad\t_Z3fooi\.cpu_power6\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.quad\t_Z3fooi\.cpu_power6x\n" 1 } } */ diff --git a/gcc/testsuite/g++.target/powerpc/mvc-symbols3.C b/gcc/testsuite/g++.target/powerpc/mvc-symbols3.C new file mode 100644 index 00000000000..ca79c7f979c --- /dev/null +++ b/gcc/testsuite/g++.target/powerpc/mvc-symbols3.C @@ -0,0 +1,41 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__((target_clones("default", "cpu=power6", "cpu=power6x"))) +int foo (); + +__attribute__((target_clones("cpu=power6x", "cpu=power6", "default"))) +int foo (int); + +int bar() +{ + return foo (); +} + +int bar(int x) +{ + return foo (x); +} + +/* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.cpu_power6:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.cpu_power6x:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tbl _Z3foov\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.quad\t_Z3foov\.default\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.quad\t_Z3foov\.cpu_power6\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.quad\t_Z3foov\.cpu_power6x\n" 0 } } */ + +/* { dg-final { scan-assembler-times "\n_Z3fooi\.default:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.cpu_power6:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.cpu_power6x:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tbl _Z3fooi\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.quad\t_Z3foov\.default\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.quad\t_Z3fooi\.cpu_power6\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.quad\t_Z3fooi\.cpu_power6x\n" 1 } } */ diff --git a/gcc/testsuite/g++.target/powerpc/mvc-symbols4.C b/gcc/testsuite/g++.target/powerpc/mvc-symbols4.C new file mode 100644 index 00000000000..ec111f53d93 --- /dev/null +++ b/gcc/testsuite/g++.target/powerpc/mvc-symbols4.C @@ -0,0 +1,29 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__((target_clones("default", "cpu=power6", "cpu=power6x"))) +int foo (); + +__attribute__((target_clones("cpu=power6x", "cpu=power6", "default"))) +int foo (int); + +/* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.cpu_power6:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.cpu_power6x:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, @gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\tlis \[\\d\]+,_Z3foov\.default@ha\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\tlis \[\\d\]+,_Z3foov\.cpu_power6@ha\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\tlis \[\\d\]+,_Z3foov\.cpu_power6x@ha\n" 0 } } */ + +/* { dg-final { scan-assembler-times "\n_Z3fooi\.default:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.cpu_power6:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.cpu_power6x:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, @gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\tlis \[\\d\]+,_Z3fooi\.default@ha\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\tlis \[\\d\]+,_Z3fooi\.cpu_power6@ha\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\tlis \[\\d\]+,_Z3fooi\.cpu_power6x@ha\n" 0 } } */ From patchwork Mon Feb 3 13:04:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alfie Richards X-Patchwork-Id: 105912 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id DE0BB385801B for ; Mon, 3 Feb 2025 13:07:08 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DE0BB385801B Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=OeBvrZkP; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=OeBvrZkP X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazlp170130004.outbound.protection.outlook.com [IPv6:2a01:111:f403:c200::4]) by sourceware.org (Postfix) with ESMTPS id CCEAD3858C3A for ; Mon, 3 Feb 2025 13:05:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CCEAD3858C3A Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org CCEAD3858C3A Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c200::4 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587901; cv=pass; b=FlHzsuI4WBBli6VFM/O6/3TnE1xV5qbFq2teWg1u1CScvlqkFHdwM52jh1baj2EMifQRzeLiLW71LnZs4CjjSKrhmzCSNs55TLhshDfw0y+nhb055qZfTv1WCyG4YxM0NU6aBHKapS/E55hq+HK0KGt2LE+RWCH7uajD9OfNyc4= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587901; c=relaxed/simple; bh=ts5sWWtCCpe7eI47fCGiV3tF1mydOVievkKQIC+PMyU=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=pQWf7Ar7J479b2PTVDW3BK7rbbgNkoxzGGMgjWxgtRMn9gegDdrMH/q7fBMA2LRsCPOnTgO1RxGp9RSZWWTuRUyYRP3vW3G9Gs/ZPcI7Q7dQ8DUqXIFGgdBbXS3EYMIp2jostWPkGgVIKS6+UQKbdKC2cYX5hus4X89iNH1Xa3M= ARC-Authentication-Results: i=3; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CCEAD3858C3A ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=RsM+CjkjTo9Nsd4XpFWil9vOSDqmBa/c7DoxdG5V9jEhDGIVPv/lAF4qJdFEsW05t1Y3s4L60Hj0PR/z7KzAUrB+qmmnRCKm0X68lu1uihSW+bpaG02kDK/tpgDo4lE9E6aoXy1/TYuamSJtibHOWHMc5bTAHLB7vbLaEjiXXs1eC30Z15L8cJGRVnzAFIbBTqgrTUhbVfIBbnOlHSAAzpWeQaVYxC0RfPpwuulhT2q3sBnYKzuFQXgK3BxnqRFIMe9vOZFbPPb9Oe5jLJRSN7vfa9Rv0yAkwDWoqyM0sEx9RTR2xZpF5gVjLtQijWlQR4s6taL1evAwHMTQ3AHT8w== ARC-Message-Signature: i=2; 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=mwchYDH1ocnzGnQf5znmBXLFLPPfYTgO9sQtNuY1X+E=; b=D33kJGFB1JkHIum1NMyuIAIKk/86W+z6kmXupLk+clWCn4LymGkjWn+lDl5NKMMl5VS3TuHJ4axW80Ca3KVFfwdg9/rcZEIgBre4CUF7zWDN0oKCZ4zvX8b8P1V0WdrK+8fE49PVvS3mESvMu+nlPlKhcldmuDVKr6kVPCLiUKPDPwUVtUzDPGxIkybeNr3BnGIx82alIL4SRLuC8bHAD8wHWBcLg9iqODEfpEC56ICR61032HdbO1yXW67pYrEUTehRdrwBrXwgIOGsBt97GzWE4mXXNBh8RfP55qvpkYQP0/9ZyHXSa9NYE43sZf47K6qTzAgABMoTpvSy3b6RLA== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=0 ltdi=1) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mwchYDH1ocnzGnQf5znmBXLFLPPfYTgO9sQtNuY1X+E=; b=OeBvrZkP0tMHUREmg/uxogVLzFlfVvGY2cfdGIzBmiLQmmBA3larcG+JZ0FiBul3q+dZXZ58ZT8IJREDSc9AUFVwZ66l55A/Q40G4UQmrkoBVR4ymR2AdyJIQBwuawJgLjSJCw/6KLqqW73KcEKS3eDo4nJVEQI7yR0twneM864= Received: from AM6P194CA0012.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:90::25) by AS2PR08MB9022.eurprd08.prod.outlook.com (2603:10a6:20b:5fc::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.24; Mon, 3 Feb 2025 13:04:57 +0000 Received: from AM3PEPF0000A78F.eurprd04.prod.outlook.com (2603:10a6:209:90:cafe::23) by AM6P194CA0012.outlook.office365.com (2603:10a6:209:90::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.25 via Frontend Transport; Mon, 3 Feb 2025 13:04:57 +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=arm.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 AM3PEPF0000A78F.mail.protection.outlook.com (10.167.16.118) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:04:56 +0000 Received: ("Tessian outbound ca1ab514ff10:v560"); Mon, 03 Feb 2025 13:04:56 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 0ed0337d999d0505 X-TessianGatewayMetadata: 1mKLvCy3XcThkM9ggTQg5uezNxNXu/zmQaNtpeXXgRynhhbQRSAMqjt7J0UE5JPIX3gwdiiBJumtsgkvKJUkLMtTbdYE46KE/FVK1p4LZuSb6Pbk2mG64Awxa3NtNY1ylpPCA2MlnmFJA1vRnWR4ielHbyHYN+TaJbwZ4Ux+pNU= X-CR-MTA-TID: 64aa7808 Received: from Lcd312fbf0128.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 90FFF6E5-D8CC-4E91-9582-90375C9EB297.1; Mon, 03 Feb 2025 13:04:49 +0000 Received: from DUZPR83CU001.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id Lcd312fbf0128.2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Mon, 03 Feb 2025 13:04:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JuYPVmMOzEKGfpu57RRhhfUSJYvxaQ6QMV7zKmhoFp9met709X1JaqDV2P3sWjLdEKPebgH+HVakAn6Xzfo7ZxSN3+q/urff0eHSIaMVw7owHH20iyYUlqyNgGI02iFS4GAfb+kUV6I9v7rmPzp9CQWlYIgZfC4D4/wInCyPIkbpqJIU0rUV4djiA9YMOUbmL6/hwsQokoj2Lo3wd+WLgwE+F5Sr6bmYUuzddpY6q/SGugaSyAiKnzSJPfkczAOCrKPZd/2UmMke6e8bBw2nkBnlsKuI2LrnS5T7TMu2zG3xOz9gjsku/OScHhK5iFpNN/3gyZiMLmRZyjKwJZBx5A== 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=mwchYDH1ocnzGnQf5znmBXLFLPPfYTgO9sQtNuY1X+E=; b=rla9e7Ssgojpm9yEIVrTQqgoY9ygELqxI3BQUooV9nCn5YbQvY2dtZ2/mXBAWR15Fducs4ylqOg4oviJnXqrjXfQjUwArdRyTMAFsTl3rfPCU+wy9CE+TSP+uM01qTR1ojsnUQmXD+lvaZkQnOoC9TpopbHIG3bzGtfaQkmfQJ/0T/xzLxVsyACOfwoeULmDcFzTRBgqZTsx1YffKUzZZw4WVHkfgn/OAEay2+MC0JGNoklveRvRR1fdeuooYJaQgp5KztIDCDcGvbYz2OP87XGDKjf+wwHI0ByaHUUT4AVGclfRFrhG8BUv5SwFJSkH7toz+eNLMhC3cfdQOud4iA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 172.205.89.229) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mwchYDH1ocnzGnQf5znmBXLFLPPfYTgO9sQtNuY1X+E=; b=OeBvrZkP0tMHUREmg/uxogVLzFlfVvGY2cfdGIzBmiLQmmBA3larcG+JZ0FiBul3q+dZXZ58ZT8IJREDSc9AUFVwZ66l55A/Q40G4UQmrkoBVR4ymR2AdyJIQBwuawJgLjSJCw/6KLqqW73KcEKS3eDo4nJVEQI7yR0twneM864= Received: from DUZPR01CA0089.eurprd01.prod.exchangelabs.com (2603:10a6:10:46a::12) by AS2PR08MB8997.eurprd08.prod.outlook.com (2603:10a6:20b:5f9::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.25; Mon, 3 Feb 2025 13:04:40 +0000 Received: from DU2PEPF00028CFE.eurprd03.prod.outlook.com (2603:10a6:10:46a:cafe::ed) by DUZPR01CA0089.outlook.office365.com (2603:10a6:10:46a::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.25 via Frontend Transport; Mon, 3 Feb 2025 13:04:52 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=arm.com; Received-SPF: Fail (protection.outlook.com: domain of arm.com does not designate 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; Received: from nebula.arm.com (172.205.89.229) by DU2PEPF00028CFE.mail.protection.outlook.com (10.167.242.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:04:39 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX05.Arm.com (10.240.25.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:26 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:25 +0000 Received: from ip-10-248-139-135.eu-west-1.compute.internal (10.252.78.54) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 3 Feb 2025 13:04:25 +0000 From: Alfie Richards To: CC: , , , , , , , Alfie Richards Subject: [PATCH v1 02/16] Add x86 FMV symbol tests Date: Mon, 3 Feb 2025 13:04:06 +0000 Message-ID: <20250203130421.2192732-3-alfie.richards@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250203130421.2192732-1-alfie.richards@arm.com> References: <20250203130421.2192732-1-alfie.richards@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DU2PEPF00028CFE:EE_|AS2PR08MB8997:EE_|AM3PEPF0000A78F:EE_|AS2PR08MB9022:EE_ X-MS-Office365-Filtering-Correlation-Id: fa419b9c-94ea-461e-ce11-08dd44535b85 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|36860700013|376014|82310400026|1800799024; X-Microsoft-Antispam-Message-Info-Original: zJeEFCnxki+db3QqpjvChGyzR8BFKdlEzETdhIz+ZL2bnotVrLOjVRxyYetZ7hwINGNKFZ06ainV30WP4TRS6KUDNW8NnEyBXJVWh5sdqFdl6ODD2TaCC+LZMSvX6BaKOLaTUFR2OINlj9LHcpWgAM6gntiSyP679Si132h1SXxFOTAtgfbRc1dSMIb0KkVwq2l/plFNYTNOa1nIH4n8qS9flnr72lPvVGoqGdy+3zmh0+DGtheWTK9+SEbGbpN3dlC9pUk2Zpaq9+xeRqN2lDQZbrzT3ZHAHS+i+xbBTqBRwmgCZWhTNoKPF9UKiT/AKqCOkpdMue8wxOu1bqZTSQskh641hnpa5/BdBh5T/VRrcP0yO4wti38daB36WeOE3FkdMU7uF97OBxYqXdFxN2+doMrZeT471DqB82iFMfkV5FXMlH0o0x0M8DwJmL4OWDbi15AG9+ibqKQcmpcwX2dbA7QRf+StO2E1bOxgD8/rO6WBsxc1xGKi4GLkwDg9si/ERJYaeu6B6Kbe7ltOgAEU6iHQztDyNKnrorkDPkF2Y4sF3V7mfwfJuCQDFkd84jaPH9ic0W9P/wdQ4InxkHKqgVrU55eUnouzni+69f72Q6nELmlwOWVIlPgPyVPLQZu/iFBjWPP4x/8D9JphbbZlr6QqJSE/cicbhP+PKzJ8CG4yqiA6gF7XZPOMmuDugp8Q88QZoa9KiGGw34B34qymZ/B0G5jEbsiqXTbxPS1zwHStjvdhJLijoo7B5sjBeE1S8NhYIZa8ih8Xjl/Ew1mvc/bbZLKwX5wu77fbMUyQOhvu4Cgcqtzl6zTkJ3vkU9Zx1K4BY+8RV+I/job0cB0xwxsa42AAT0hLuOl06QOW72cSof5PYBkpu80589HEKLAip0NIgaQ3QixQXS84C3urIeP1UuI5sy0spfgoG8Gv/8t4ocWBn6U4HqXPpcMB93fmBnmJdSVkYGnwZAsIV0nkmAZ6DHpr/Jzi8kA7fqSOA0Vc4A1KGPe6b4gbkISuGKGE0wemKiztcaabmCMkNSBmWHio98nMIOAwN8xvF79XOhjSBJ6vItbwRQzeSUXm5zFi1A0qc2W6NJUml4rk+pZxMdRs326hdc0W3/LUKxhQw0SCPMldQDzg1rFIFn/AjurCIPq73jB+6QxZk9sK45gaTqz0IqWpE8L3WPAka3JmMzpSUpiaM8T6hAerS8gye+bvRuXSaaZYyqtmQgH25XIeVhe9yjXGLREqbW4aF2XXQP5o3FkOnpc5K5HMSwWjXKtQ3r5GpmblOOUz3P6DiFgJPPVznltlvGmi9265PJfoFqpKfNReCH05yaWvt2ZarCTss6D/hZUhxy0r77aqdXdHCwq//tYY5lI43PR7/hQT6zJ/vG0x50C9RtbNezYgMZFDKjpCKTXI+8wbNP6mbSqeY8ULvufyHbtzm1hd9OPwLF16rF8y+2mcXFINpkAtP+ftqDpGWxTuj4+7HhOK4A/0worY1llBuQb4M20ewHg= X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8997 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:10:46a::12]; domain=DUZPR01CA0089.eurprd01.prod.exchangelabs.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM3PEPF0000A78F.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: edfc2c45-1fa9-4192-742a-08dd44535166 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|35042699022|14060799003|36860700013|376014|82310400026; X-Microsoft-Antispam-Message-Info: =?utf-8?q?8kHQB4bcEo2zjK17VQeIYh7ZYzEJYOU?= =?utf-8?q?sW8zFGDs82MAT7CdFgKELgzlAgAxOyo0BgX5Hn2Whdvgox8a3miCvPBzGD9A0x+i6?= =?utf-8?q?3OsznEvZ+M4BsC2pr3WN372KGkpbYSHehpoCYOGfuhjkT8lUOpgmoCrDLfYyV9ADa?= =?utf-8?q?duuoSKRvJsH9IQlw03glco3LJBq4Q2sm7KT6gr3ZVQa+rKWm2QyB8W4NhSwTTHVVa?= =?utf-8?q?7LFMLTtEfw2f1gK6ZZGDnSCJUOpbLgEGixQpOEhFjPJzoIHJqeVXSoNoZHtIw1xU+?= =?utf-8?q?6k1q6xG7P6ug+10KUUE2guowuR/nO2yxh5sTdlKHy8zQjIT7xOeePJLWxsCSWOyNf?= =?utf-8?q?rHUOUaVgeTfFGTcduAORiXCLe6VEQNsY3Z3gQ6gmc9Sol7Gnr2F/9iGKQFHkqPw8r?= =?utf-8?q?dJwVdAeU0Xpexcrks4r47ekofrW+l2kw+CfOGLyff50CpkbkgDX9zjLxtBZ6gEuHf?= =?utf-8?q?4CGyiVrq6WPXn424xxSbQ9+uZa0KKik2WMmTUqmHaO6kvV53FmGgDeibRQHlDRWK+?= =?utf-8?q?HqHu6FL6hVldJV7jEJPFu/krpWeURrIaZF+CG2TCDFhov69BU6fn+JCFCh1xA+PxR?= =?utf-8?q?RpT5NCg533s9O0CLV23BTNYuaEECqUYRSKugpRv/cxlm2AUDz4k8qvitZ9aD12Nug?= =?utf-8?q?n+OUAXJyu5OQ3qcJUa06LqJOKBEc8BpSRRJ8yRx0xnR/4eSQ+n6IhV7F+SFbBWc3l?= =?utf-8?q?BFqNpVzDHp5+Lf1WmH9Hxe6Q9cGqdJmjsbA7RauMyNYYamh+KBqgAilhReWpMR/xR?= =?utf-8?q?EagFhlC7fTJ7c9++vAnbk5ouYbKdDxeDzHBPbHr/EqtJOJM+F3a3hXn9jgFeZX/GZ?= =?utf-8?q?m2evEoFm8Z7Zk9tCsl+9E4a2tiIJzqQ5edxkauRRYhAQlHIgBvscN98E/jqORUNNO?= =?utf-8?q?Fjb3xwrztVXIxnfl8wNGmiQAXE3M7hwCk9UdxveRvO2G2smFF2rUvX4MKFZLXI7KL?= =?utf-8?q?XGBKYFKKLr5g1DdMhFoEOU153MQcJxD9egqcPQuUD1NwYnvwVwqyby5aZeFl3hAXB?= =?utf-8?q?mTFHDuEuCwbtRnYBgZ90YRrC2JBJDiwzrVhudsFtVp67t8xAGXP34hRP4RdF2rtc/?= =?utf-8?q?bbEoAoToUzgLC+C7HstgnhsL1if0Qp3dEuIMwJy5Hs1Eq9S0zwOnY6KGUiEJYsGEs?= =?utf-8?q?acxjrntTF5qL3WOFPxaS8/dE0gWsC7u8Asn8HhbgXNL+NKuxDIWEopNxfJy7NR1YT?= =?utf-8?q?KNRqgTf40q6KOTUDKitr8ghJ4eV6oA6MPmqHW4IgIAJbKQayWVY8bWqTDFFjZqbTs?= =?utf-8?q?3JT3hncmYPXqjK/UgFHTydLJWJWMuy3fDq/Un9dj+rY9ZWoDUUUY/YOXdfvk7hvu0?= =?utf-8?q?iLpmgJ1bs/gPWPP0k69dA36Rqwn1cGy//2PnZc1OgSdZuriffgXtzlWt+CfYcc7nE?= =?utf-8?q?BZpWSfCMsbX+XZmln/kuWfc9YHD/7Z9nPDOgZJRTeNFvySo8JsAYrU=3D?= 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:64aa7808-outbound-1.mta.getcheckrecipient.com; CAT:NONE; SFS:(13230040)(1800799024)(35042699022)(14060799003)(36860700013)(376014)(82310400026); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2025 13:04:56.3854 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fa419b9c-94ea-461e-ce11-08dd44535b85 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: AM3PEPF0000A78F.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9022 X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org This is for testing the x86 mangling of FMV versioned function assembly names. gcc/testsuite/ChangeLog: * g++.target/i386/mv-symbols1.C: New test. * g++.target/i386/mv-symbols2.C: New test. * g++.target/i386/mv-symbols3.C: New test. * g++.target/i386/mv-symbols4.C: New test. * g++.target/i386/mv-symbols5.C: New test. * g++.target/i386/mvc-symbols1.C: New test. * g++.target/i386/mvc-symbols2.C: New test. * g++.target/i386/mvc-symbols3.C: New test. * g++.target/i386/mvc-symbols4.C: New test. --- gcc/testsuite/g++.target/i386/mv-symbols1.C | 68 ++++++++++++++++++++ gcc/testsuite/g++.target/i386/mv-symbols2.C | 56 ++++++++++++++++ gcc/testsuite/g++.target/i386/mv-symbols3.C | 44 +++++++++++++ gcc/testsuite/g++.target/i386/mv-symbols4.C | 50 ++++++++++++++ gcc/testsuite/g++.target/i386/mv-symbols5.C | 56 ++++++++++++++++ gcc/testsuite/g++.target/i386/mvc-symbols1.C | 44 +++++++++++++ gcc/testsuite/g++.target/i386/mvc-symbols2.C | 29 +++++++++ gcc/testsuite/g++.target/i386/mvc-symbols3.C | 35 ++++++++++ gcc/testsuite/g++.target/i386/mvc-symbols4.C | 23 +++++++ 9 files changed, 405 insertions(+) create mode 100644 gcc/testsuite/g++.target/i386/mv-symbols1.C create mode 100644 gcc/testsuite/g++.target/i386/mv-symbols2.C create mode 100644 gcc/testsuite/g++.target/i386/mv-symbols3.C create mode 100644 gcc/testsuite/g++.target/i386/mv-symbols4.C create mode 100644 gcc/testsuite/g++.target/i386/mv-symbols5.C create mode 100644 gcc/testsuite/g++.target/i386/mvc-symbols1.C create mode 100644 gcc/testsuite/g++.target/i386/mvc-symbols2.C create mode 100644 gcc/testsuite/g++.target/i386/mvc-symbols3.C create mode 100644 gcc/testsuite/g++.target/i386/mvc-symbols4.C diff --git a/gcc/testsuite/g++.target/i386/mv-symbols1.C b/gcc/testsuite/g++.target/i386/mv-symbols1.C new file mode 100644 index 00000000000..1290299aea5 --- /dev/null +++ b/gcc/testsuite/g++.target/i386/mv-symbols1.C @@ -0,0 +1,68 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__((target("default"))) +int foo () +{ + return 1; +} + +__attribute__((target("arch=slm"))) +int foo () +{ + return 3; +} + +__attribute__((target("sse4.2"))) +int foo () +{ + return 5; +} + +__attribute__((target("sse4.2"))) +int foo (int) +{ + return 6; +} + +__attribute__((target("arch=slm"))) +int foo (int) +{ + return 4; +} + +__attribute__((target("default"))) +int foo (int) +{ + return 2; +} + +int bar() +{ + return foo (); +} + +int bar(int x) +{ + return foo (x); +} + +/* When updating any of the symbol names in these tests, make sure to also + update any tests for their absence in mvc-symbolsN.C */ + +/* { dg-final { scan-assembler-times "\n_Z3foov:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.arch_slm:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.sse4.2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tcall\t_Z7_Z3foovv\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z7_Z3foovv, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z7_Z3foovv,_Z3foov\.resolver\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n_Z3fooi:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.arch_slm:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.sse4.2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tcall\t_Z7_Z3fooii\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z7_Z3fooii, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z7_Z3fooii,_Z3fooi\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/g++.target/i386/mv-symbols2.C b/gcc/testsuite/g++.target/i386/mv-symbols2.C new file mode 100644 index 00000000000..8b75565d78d --- /dev/null +++ b/gcc/testsuite/g++.target/i386/mv-symbols2.C @@ -0,0 +1,56 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__((target("default"))) +int foo () +{ + return 1; +} + +__attribute__((target("arch=slm"))) +int foo () +{ + return 3; +} + +__attribute__((target("sse4.2"))) +int foo () +{ + return 5; +} + +__attribute__((target("sse4.2"))) +int foo (int) +{ + return 6; +} + +__attribute__((target("arch=slm"))) +int foo (int) +{ + return 4; +} + +__attribute__((target("default"))) +int foo (int) +{ + return 2; +} + +/* When updating any of the symbol names in these tests, make sure to also + update any tests for their absence in mvc-symbolsN.C */ + +/* { dg-final { scan-assembler-times "\n_Z3foov:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.arch_slm:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.sse4.2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z7_Z3foovv, @gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z7_Z3foovv,_Z3foov\.resolver\n" 0 } } */ + +/* { dg-final { scan-assembler-times "\n_Z3fooi:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.arch_slm:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.sse4.2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z7_Z3fooii, @gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z7_Z3fooii,_Z3fooi\.resolver\n" 0 } } */ diff --git a/gcc/testsuite/g++.target/i386/mv-symbols3.C b/gcc/testsuite/g++.target/i386/mv-symbols3.C new file mode 100644 index 00000000000..a5cf3445a43 --- /dev/null +++ b/gcc/testsuite/g++.target/i386/mv-symbols3.C @@ -0,0 +1,44 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__((target("default"))) +int foo (); + +__attribute__((target("arch=slm"))) +int foo (); + +__attribute__((target("sse4.2"))) +int foo (); + +__attribute__((target("sse4.2"))) +int foo (int); + +__attribute__((target("arch=slm"))) +int foo (int); + +__attribute__((target("default"))) +int foo (int); + +int bar() +{ + return foo (); +} + +/* When updating any of the symbol names in these tests, make sure to also + update any tests for their absence in mvc-symbolsN.C */ + +/* { dg-final { scan-assembler-times "\n_Z3foov:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.arch_slm:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.sse4.2:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tcall\t_Z7_Z3foovv\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z7_Z3foovv, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z7_Z3foovv,_Z3foov\.resolver\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n_Z3fooi:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.arch_slm:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.sse4.2:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z7_Z3fooii, @gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z7_Z3fooii,_Z3fooi\.resolver\n" 0 } } */ diff --git a/gcc/testsuite/g++.target/i386/mv-symbols4.C b/gcc/testsuite/g++.target/i386/mv-symbols4.C new file mode 100644 index 00000000000..bb10f126f67 --- /dev/null +++ b/gcc/testsuite/g++.target/i386/mv-symbols4.C @@ -0,0 +1,50 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__((target("default"))) +int foo () +{ + return 1; +} + +__attribute__((target("arch=slm"))) +int foo (); + +__attribute__((target("sse4.2"))) +int foo (); + +__attribute__((target("sse4.2"))) +int foo (int); + +__attribute__((target("arch=slm"))) +int foo (int); + +__attribute__((target("default"))) +int foo (int) +{ + return 2; +} + +int bar() +{ + return foo (); +} + +/* When updating any of the symbol names in these tests, make sure to also + update any tests for their absence in mvc-symbolsN.C */ + +/* { dg-final { scan-assembler-times "\n_Z3foov:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.arch_slm:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.sse4.2:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tcall\t_Z7_Z3foovv\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z7_Z3foovv, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z7_Z3foovv,_Z3foov\.resolver\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n_Z3fooi:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.arch_slm:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.sse4.2:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z7_Z3fooii, @gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z7_Z3fooii,_Z3fooi\.resolver\n" 0 } } */ diff --git a/gcc/testsuite/g++.target/i386/mv-symbols5.C b/gcc/testsuite/g++.target/i386/mv-symbols5.C new file mode 100644 index 00000000000..d36e4c304c2 --- /dev/null +++ b/gcc/testsuite/g++.target/i386/mv-symbols5.C @@ -0,0 +1,56 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__((target("default"))) +int foo (); + +__attribute__((target("arch=slm"))) +int foo () +{ + return 3; +} + +__attribute__((target("sse4.2"))) +int foo () +{ + return 5; +} + +__attribute__((target("sse4.2"))) +int foo (int) +{ + return 6; +} + +__attribute__((target("arch=slm"))) +int foo (int) +{ + return 4; +} + +__attribute__((target("default"))) +int foo (int); + +int bar() +{ + return foo (); +} + +/* When updating any of the symbol names in these tests, make sure to also + update any tests for their absence in mvc-symbolsN.C */ + +/* { dg-final { scan-assembler-times "\n_Z3foov:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.arch_slm:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.sse4.2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tcall\t_Z7_Z3foovv\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z7_Z3foovv, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z7_Z3foovv,_Z3foov\.resolver\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n_Z3fooi:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.arch_slm:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.sse4.2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z7_Z3fooii, @gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z7_Z3fooii,_Z3fooi\.resolver\n" 0 } } */ diff --git a/gcc/testsuite/g++.target/i386/mvc-symbols1.C b/gcc/testsuite/g++.target/i386/mvc-symbols1.C new file mode 100644 index 00000000000..ea8c434c353 --- /dev/null +++ b/gcc/testsuite/g++.target/i386/mvc-symbols1.C @@ -0,0 +1,44 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__((target_clones("default", "arch=slm", "sse4.2"))) +int foo () +{ + return 1; +} + +__attribute__((target_clones("sse4.2", "arch=slm", "default"))) +int foo (int) +{ + return 2; +} + +int bar() +{ + return foo (); +} + +int bar(int x) +{ + return foo (x); +} + +/* When updating any of the symbol names in these tests, make sure to also + update any tests for their absence in mvc-symbolsN.C */ + +/* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.arch_slm:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.sse4_2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n_Z3fooi.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.arch_slm:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.sse4_2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/g++.target/i386/mvc-symbols2.C b/gcc/testsuite/g++.target/i386/mvc-symbols2.C new file mode 100644 index 00000000000..84b54a980b3 --- /dev/null +++ b/gcc/testsuite/g++.target/i386/mvc-symbols2.C @@ -0,0 +1,29 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__((target_clones("default", "arch=slm", "sse4.2"))) +int foo () +{ + return 1; +} + +__attribute__((target_clones("sse4.2", "arch=slm", "default"))) +int foo (int) +{ + return 2; +} + +/* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.arch_slm:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.sse4_2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n_Z3fooi.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.arch_slm:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.sse4_2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/g++.target/i386/mvc-symbols3.C b/gcc/testsuite/g++.target/i386/mvc-symbols3.C new file mode 100644 index 00000000000..33927071028 --- /dev/null +++ b/gcc/testsuite/g++.target/i386/mvc-symbols3.C @@ -0,0 +1,35 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__((target_clones("default", "arch=slm", "sse4.2"))) +int foo (); + +__attribute__((target_clones("sse4.2", "arch=slm", "default"))) +int foo (int); + +int bar() +{ + return foo (); +} + +int bar(int x) +{ + return foo (x); +} + +/* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.arch_slm:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.sse4_2:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n_Z3fooi.default:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.arch_slm:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.sse4_2:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/g++.target/i386/mvc-symbols4.C b/gcc/testsuite/g++.target/i386/mvc-symbols4.C new file mode 100644 index 00000000000..ed9bc8f3e16 --- /dev/null +++ b/gcc/testsuite/g++.target/i386/mvc-symbols4.C @@ -0,0 +1,23 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__((target_clones("default", "arch=slm", "sse4.2"))) +int foo (); + +__attribute__((target_clones("sse4.2", "arch=slm", "default"))) +int foo (int); + +/* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.arch_slm:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.sse4_2:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, @gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 0 } } */ + +/* { dg-final { scan-assembler-times "\n_Z3fooi.default:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.arch_slm:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.sse4_2:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, @gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 0 } } */ From patchwork Mon Feb 3 13:04:07 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alfie Richards X-Patchwork-Id: 105920 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 8DAD93858C35 for ; Mon, 3 Feb 2025 13:16:23 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8DAD93858C35 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=lymITA56; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=lymITA56 X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2062d.outbound.protection.outlook.com [IPv6:2a01:111:f403:2612::62d]) by sourceware.org (Postfix) with ESMTPS id 08012385841F for ; Mon, 3 Feb 2025 13:04:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 08012385841F Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 08012385841F Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:2612::62d ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587896; cv=pass; b=OcKSZSIcW/D1xMKnxlThc1eSMrpdBgtSLUEUVvLSD0YYNvO23LLBuU8IP3l05jvw1Zi8XKZ8YjkbndIdtJpUs3YsCS4lRojIxX40BtWkqdURuJwGHNzd76CsuskU6TKWq0KlcM8BKVs8YqjIJCX7XGdkRkC5YcbjZKWNbl5+x28= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587896; c=relaxed/simple; bh=p1/MmTEVE1Hk1r8EJnmUQweZrHGBbm3hU8S31nKz3A4=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=Nf0QHvTR/Us8p8QOEKFv6TEkjsINDyPhA+4uw9KRB3CJDkhh2yW9yaKy0Spqk5mGqc7mJLwqHf7hqI3Kp1/MkszyQ+cVeC2awsDeQSxGCYffSGJ4dX8WgUOpAogtktHW/P9cR3zd64Kuh8l82xzk9yqEA31jt4Y2A47EUmNUKd4= ARC-Authentication-Results: i=3; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 08012385841F ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=ELICMxS7fYdrPr6au0zx4uSX1fpgbvpHiB21Wf5PDOLGurq6u9ad14d0WxXC2adYy4+2JwE5SMZEAKqHr+eXNKCeOA4b9c9lZpWSGiPg1qeXbw8SDVUrmuSrhnzmu0+VIru89oQ+fxVB5yXB+Zr3HOD7oA6yHInUHgjbxH2prlilBOQJMK64qPvmEZ4tG4/YHg8+zSKnm+Rv997mjbPeX9awPbL5j0G1LVkO9x/h7t8aJfCjpwy/9mzGSVkopjVrKwe7KUXXm6lxr/tboSsyTkf9mx5Q7JKy+M9wey/H1qdSsv9HBpI6E+fq8ROKqJs+dtSgy3zeUql80XkJYxCWjA== ARC-Message-Signature: i=2; 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=VaBRfZ40+4F0XgN1CWon2z6ejFtR2+47VYMhltB/XSY=; b=uDf0qHKR4uSEsznfiL8fVnsxKBznhEZdT2VU6zURcYFMx0z3urz8O9VK4B8uSenAZlsmIDleTZHTqFxazOlczAyowGjfZeVpmfLZnh5NDKUK/BU94YNW/nCrcYSpghOxlvjeftxdn970Rp36tl/ZDLif0cnyNJCk0kXSJAMzqMQE2MTEdiPuy4skOWTWEdW0xJa7yb/ziv1foVvaPkNgSUF62nsjBfCjBluOLoV0QBzqQ2x3+36zfrpWoVboANOBj414hC2kUBQ0Gfn9Aie5KDkjx2hOdnJZNR96+ot0M/z+dNrhimOtyCocEGUtbwAY87Np9c4X4USi0A3tT4WYFw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=0 ltdi=1) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VaBRfZ40+4F0XgN1CWon2z6ejFtR2+47VYMhltB/XSY=; b=lymITA5661DD9e7to8qj8o7tIzE3CX8HT82g01q+EzYylzQUT/90xBjGiTp/ojguF4rJ5kvDfgAz9GHYiVb6CPJCuqG3+HpsoAfDxeMsnMZdG8jBIgFvzR4Vwsc9Ra5Hc3M4uQp0ERRL88BPBgaNs8bYjlCAs6bV8JVaFgVPwZM= Received: from DUZPR01CA0018.eurprd01.prod.exchangelabs.com (2603:10a6:10:46b::6) by AM8PR08MB5683.eurprd08.prod.outlook.com (2603:10a6:20b:1d1::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.18; Mon, 3 Feb 2025 13:04:52 +0000 Received: from DB1PEPF000509E2.eurprd03.prod.outlook.com (2603:10a6:10:46b:cafe::f4) by DUZPR01CA0018.outlook.office365.com (2603:10a6:10:46b::6) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.23 via Frontend Transport; Mon, 3 Feb 2025 13:04:58 +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=arm.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 DB1PEPF000509E2.mail.protection.outlook.com (10.167.242.52) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:04:52 +0000 Received: ("Tessian outbound 72f36a054dd6:v560"); Mon, 03 Feb 2025 13:04:52 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: a01c517a460ed52f X-TessianGatewayMetadata: 0gNXvGUNUFn/NDnFpNLRDRW6CK170IpO4sZud1JdXcRCQHM03hw/iP6wU5QdvFiMWk/udkNtb93PkWcZI629pOr85WG6fUbFFIF6cRfCElKtfD/0ERUl7L65kTi2SyVcLZMxAAJAn6YDAkj8i/RL1KWtWmLAkfrcg7MZkg62ThQ= X-CR-MTA-TID: 64aa7808 Received: from L4e2b82b62059.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 2BEE5454-E455-498A-A9C4-CADED8488E75.1; Mon, 03 Feb 2025 13:04:45 +0000 Received: from DUZPR83CU001.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id L4e2b82b62059.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Mon, 03 Feb 2025 13:04:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ymDCQ1iKfjdidh11/5wAnMb/5ft/2tNrqZB/63NwBkWaIIEMPa2K+m0l4ypKFk0c5cXEohpMDAWhSG1NjiPIA3SPjyRLv807tIojoLWEbRCCLuzX7aQE9X3P9BiTgbJAeMEmo7ShbzUlc45vn9fQxgm27LbRZy+yBH5D7w0eKSYwg9NO4F9Y8Zbw2HhVCD92wpvYhorwUeFNg2S4jqtKmkTgvXS7cDrUKiR2Qy6pp2Ehl9+zR+MuwSCaWNCdwtjvxzYWw3cTZwT+TCxPqrTj852hX15/XYV++n7kg2nWQyuQRh9kBTSRYn2wVGCq9E65Cg/+NvARQtSmaQSfJD7s5g== 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=VaBRfZ40+4F0XgN1CWon2z6ejFtR2+47VYMhltB/XSY=; b=MXFTu9eakLkFYSkEqF0to2NK8ZT8PZYzzhNtWK4bNU4/TA1x4rM9YTlr9TxRWXXOBgzeu/dI3YXMO2E4/ekFW6evNCCmQGyS8WR21vd3OVM5uu3rMtPClrHuVopf0GrT9o2klP9kTkmMbrGYDX99xciAB2ZcZ5wzsE06IQrlHifGQF1l1O7Ztkd0eKDiwjCrwvdbSxFyjtjEYVKw9SexIeXwMJKLFEU0ILDfmsewBZBdKKdNnRsg739qFIr7RonFNdXxFKQGWsaxKSEFQ24RqFLawo444C8fgOEzx77oMEKYQDzMQzXoLPZjAg7i2NQKdSRzbALGnIzrgPlhCcwcdA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 172.205.89.229) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VaBRfZ40+4F0XgN1CWon2z6ejFtR2+47VYMhltB/XSY=; b=lymITA5661DD9e7to8qj8o7tIzE3CX8HT82g01q+EzYylzQUT/90xBjGiTp/ojguF4rJ5kvDfgAz9GHYiVb6CPJCuqG3+HpsoAfDxeMsnMZdG8jBIgFvzR4Vwsc9Ra5Hc3M4uQp0ERRL88BPBgaNs8bYjlCAs6bV8JVaFgVPwZM= Received: from DUZPR01CA0078.eurprd01.prod.exchangelabs.com (2603:10a6:10:46a::20) by AS2PR08MB9414.eurprd08.prod.outlook.com (2603:10a6:20b:596::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.23; Mon, 3 Feb 2025 13:04:40 +0000 Received: from DU2PEPF00028CFE.eurprd03.prod.outlook.com (2603:10a6:10:46a:cafe::e6) by DUZPR01CA0078.outlook.office365.com (2603:10a6:10:46a::20) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.25 via Frontend Transport; Mon, 3 Feb 2025 13:04:50 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=arm.com; Received-SPF: Fail (protection.outlook.com: domain of arm.com does not designate 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; Received: from nebula.arm.com (172.205.89.229) by DU2PEPF00028CFE.mail.protection.outlook.com (10.167.242.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:04:40 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX05.Arm.com (10.240.25.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:26 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:26 +0000 Received: from ip-10-248-139-135.eu-west-1.compute.internal (10.252.78.54) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 3 Feb 2025 13:04:25 +0000 From: Alfie Richards To: CC: , , , , , , , Alfie Richards Subject: [PATCH v1 03/16] Add string_slice class. Date: Mon, 3 Feb 2025 13:04:07 +0000 Message-ID: <20250203130421.2192732-4-alfie.richards@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250203130421.2192732-1-alfie.richards@arm.com> References: <20250203130421.2192732-1-alfie.richards@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DU2PEPF00028CFE:EE_|AS2PR08MB9414:EE_|DB1PEPF000509E2:EE_|AM8PR08MB5683:EE_ X-MS-Office365-Filtering-Correlation-Id: bba7430a-3b8b-4c11-c9f2-08dd4453590d x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|376014|36860700013|82310400026|1800799024; X-Microsoft-Antispam-Message-Info-Original: jx83kCi/he9KQ6Afehr/u6inJ4zlHY2C72X6iHs6biRSIgNUVxdrNpQIPpmtFufOQiyystX6m8sL5RRSXKZqScGjX8yDbmTu+cdt1lzqzwS24/uo4xExNqz2Ce8WDF2w/uACH1pe8cK4me3TysDaJRayco7PYjZKPNtpORSy72aVJWNN1GWH5FBiJbVaQZqcOoNbVzXfoJoOTgUzYQc7PHbr3dJdrctU8ZJETCI7bFoXAdj8M7B6xQUlg1TTwLYuFg+xS9dx87Ua8c1D138hWG1JH7Sg3cOV48W/mNY4CY/P929pn9Vu7sVyIs49b1X5aZWS6MaxAdM3uHELJjDoozQv+ufK0OaPukxVvD/oVYP06pBhjuC30fZ3IPSbhOG3+mLFt/9uX6LuoRcllTsWZyzrQUsqDmm+e9t5/Z5VU4rUPblWsc/gVcdI9sZVa+5kRpOZ+F+EWivFES2YubR6ucuygKW/3Rtx0p30x5dzHDojH6A/EYOThzcbbNrNks4H2h2k7jjxpTg4ag7VLmWrVSs2WNfNVtFNSbL65LI/sTaM/Oz6MecZ/XDTITictIlipEvWjNesvOVXMvddDELkTrokiUCu+wiEPTMMc0peBODt6168tGbdj7vuc35QvoGGI4/uZouypH82RVGLXJmqLJ0hSGluzaZatQnAaRDulBibvaVFyQFvuGVqIXxxXso6/vNjw/755qlI6eZso1ONwGyuESS43Gb5sSVcTRL3/W/3pwHSHA8wzBuuS8XEnMwPMF+5J3N7EJbKvklopWgODBVzXEVgLLyhzSotntJ0yC2RLGF+HgOW5OXAWgdbjKysiRU14cBymTT0vddXw7RLpAweBpBLhvJLqjOKE+p2Y8xxIdF4Y0weAKE1+WpHuCsImd+c3LdWG6988avG9OKpZZqz6MT3uZM3f1dpGSn7sOcAhw4du3su1AczcapCN5A+MHwAg8g4YObovPHxPjpqjFVCiT47VtrX/Tqft4dNAFzIUDs1C3PfA+bfgvrleuFyt5dBd9JMcuGpeOc6WC8FtV/q5gmRRaflbgxpKO06/ipbjqPCVqeSiig58pVjq25nOdFs2BNLIYluNF4ygK4BoQMo96OHTlRqt90bxXbmK6Gf78+LSFXtqSNPi0IA8W5ibC40dc2TQB10Qpq06td5YdTUppdaFXn+95HKszZTWrLgNzqemie81QrAAGk2iydOjjaTYb+jbBiEbku5MVZJs/1p2YJzaNDrWr06H05NTm7l93L62okOjDr18uwMIt2Cblorl8GerI7pd4BUHM5KUjtymoXpf9Bc3edUCO6Uz7mYQtAXM52WFAjFWXmWHrZ62RfFOFsTvA+FprTZN0chjTBbpeYqLbARlArOrhhtr9RNaW/88UpEmnd/h6HVrfiQdp/R2NzYpBaXp6NJUAQ/r2hhVPb48m/p3KYh1j5L7s2xsgAH4oYd9uid8BpfqyO+aXza6Wdch7GsI4onPBW7wojQo9Bi4snBRk3HQ0LWgpI= X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9414 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:10:46a::20]; domain=DUZPR01CA0078.eurprd01.prod.exchangelabs.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB1PEPF000509E2.eurprd03.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 62f7f627-8390-4994-a70b-08dd4453521b X-Microsoft-Antispam: BCL:0; ARA:13230040|82310400026|376014|1800799024|35042699022|36860700013|14060799003; X-Microsoft-Antispam-Message-Info: =?utf-8?q?vFPW50aoqF39n170m3ttiwc1Ocx1Y9Z?= =?utf-8?q?bO4GmMivSTa0s0xoJI5nxEIqpF7/qFekqEV0YGvr29wGiV4w6ewSv2DmhQ7DHzOV4?= =?utf-8?q?u3WzlfLCu6IuN8+qcT9f8og2myi3Niqrvj2+svpzuwyu0PugxegOfS6BlQadPZeaN?= =?utf-8?q?ryTe2yKCaWQCrG3yEEQGpb6zRKXeQPaJKvAqjVoI9TWSIa1UnN1GnUXPmuoaa9ss0?= =?utf-8?q?1aUoDA/wTpGn494pWnesAXFeZtdfV6PDH/q7nsSc8Hj5cLdrOg6MELMZwzbHTSd1W?= =?utf-8?q?qgRc64cyFoh6uTyB7ZW8bXXU0wK53cBQJQNn+wR6D09rCMRrGjckBs8mQe0sPZ5bp?= =?utf-8?q?dhGR1bZ7pZCD1/iYgiANZosB+pHdHLDwWpYkqvLrTtSc0EFpXJpedUg92bW2OrXvL?= =?utf-8?q?X2ovwQtQ7a0w5vsoxIvAFintZbRQ1ffAnp7uWiPXtauV2VxBAccX2q71WDwXHXQnB?= =?utf-8?q?LFlsjeoyGSx8uFrXiMGt6lFR1U1fQmHJYao4YfkI+53e9GsYZPwdx3KS3SFA1NPmt?= =?utf-8?q?Jm/TQhtmhMR1PDC9rIxwdnReTo38EYop0U7IxR662PrpqO6Wfqw1lb41KWys+zKsw?= =?utf-8?q?Knuw56yF2u7WTPrWNmWxKxMhVbeyFEZFH7Kbz6mkauj2ofRUcIE4TMk/Q3ETorJ24?= =?utf-8?q?5m3bf8x18dhWeL3/rSdrX7Y3BCUs+POSdOLRrR6ONf8KMUEYh85Zd5wbkRtrcd8GT?= =?utf-8?q?9vN6b4fuPydPS6HuI+L7o4dxvSjU4a4m2uH5ghk7CH/Gmvg1MoHqWHTo3pgl+Yzo+?= =?utf-8?q?Ih278nCQ7nIJQL82lad6rogrby8EhjxpGi2o/hK1lGb7Egnh61Nuze5QH0k5NH/Rw?= =?utf-8?q?h0KfW+fvq4Gugd6kyLb7TMmHPtuvQOnwXcKBmeh/0WI/HyGJMHop5trNtZHEYvAmZ?= =?utf-8?q?j5jmoW3rt81eSRqlc15L1wdmqVLyqKxGrw2kPgUdCDMViiRuri3zcR4KWOGlLNfRM?= =?utf-8?q?axFPGkrhHiwxq1mG59ZguuU2Xb37E9tyuNsrbMY1gNt6zzy5RAINZ3ri/2QrOROnc?= =?utf-8?q?b3q4S4uRWlNtQt+IL792+SMKcP3ELYMrJF1JI5nHPrCMZTR0agBOPgU3TBvqeMqLe?= =?utf-8?q?0ySkeHCv/wEqwNpKzIbTlEvWS6TjiLaB2frftHTERJcx53SaRvfPCuv47QhrZ/fdV?= =?utf-8?q?H8eBcrzGXORSFD6rIOQ+N4PgO1BEbBm1/G4Bh0OTR8+wU2vxKK4c+zDzqRcObUgK5?= =?utf-8?q?gjgEZnze8CNsrCtn/ZpJaxMefdGElgs+/orIy4gngp7+9xpHWyHUSsKqn65S/c64v?= =?utf-8?q?LJF0JS9cltJEcRn+ZCsw/ED70EiWyb1/DCc+HwD8rz7M+nE898M87GibIxIEacia9?= =?utf-8?q?JeZe1l5RBZfQGUL2L8LD6g13J88yL6+av9jNMCI7EltDo7MT01a2ynUHu4SEoAPEI?= =?utf-8?q?F1gyac/8sfepJFr2N/kbi+1UdmAtAy8YTOLHBWiBU5skdk03/8h464=3D?= 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:64aa7808-outbound-1.mta.getcheckrecipient.com; CAT:NONE; SFS:(13230040)(82310400026)(376014)(1800799024)(35042699022)(36860700013)(14060799003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2025 13:04:52.3372 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bba7430a-3b8b-4c11-c9f2-08dd4453590d 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: DB1PEPF000509E2.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5683 X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org The string_slice inherits from array_slice and is used to refer to a substring of an array that is memory managed elsewhere without modifying the underlying array. For example, this is useful in cases such as when needing to refer to a substring of an attribute in the syntax tree. This commit also adds some minimal helper functions for string_slice, such as strtok, strcmp, and a function to strip whitespace from the beginning and end of a slice. gcc/ChangeLog: * vec.cc (string_slice::strtok): New method. (strcmp): Add implementation for string_slice. (string_slice::strip): New method. (test_string_slice_initializers): New test. (test_string_slice_strtok): Ditto. (test_string_slice_strcmp): Ditto. (test_string_slice_equality): Ditto. (test_string_slice_invalid): Ditto. (test_string_slice_strip): Ditto. (vec_cc_tests): Add new tests. * vec.h (class string_slice): New class. (strcmp): Add implementation for string_slice. --- gcc/vec.cc | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++ gcc/vec.h | 38 +++++++++++++ 2 files changed, 195 insertions(+) diff --git a/gcc/vec.cc b/gcc/vec.cc index 55f5f3dd447..569dbf2a53c 100644 --- a/gcc/vec.cc +++ b/gcc/vec.cc @@ -176,6 +176,67 @@ dump_vec_loc_statistics (void) vec_mem_desc.dump (VEC_ORIGIN); } +string_slice +string_slice::strtok (string_slice *str, string_slice delims) +{ + const char *ptr = str->begin (); + + /* If the input string is empty or invalid, return an invalid slice + as there are no more tokens to return. */ + if (str->empty () || !str->is_valid ()) + { + *str = string_slice::invalid (); + return string_slice::invalid (); + } + + for (; ptr < str->end (); ptr++) + for (const char *c = delims.begin (); c < delims.end(); c++) + if (*ptr == *c) + { + const char *start = str->begin (); + /* Update the input string to be the remaining string. */ + *str = string_slice ((ptr + 1), str->end () - ptr - 1); + return string_slice (start, (size_t) (ptr - start)); + } + + /* If no deliminators between the start and end, return the whole string. */ + string_slice res = *str; + *str = string_slice::invalid (); + return res; +} + +int +strcmp (string_slice str1, string_slice str2) +{ + for (unsigned int i = 0; i < str1.size () && i < str2.size (); i++) + { + if (str1[i] < str2[i]) + return -1; + if (str1[i] > str2[i]) + return 1; + } + + if (str1.size () < str2.size ()) + return -1; + if (str1.size () > str2.size ()) + return 1; + return 0; +} + +string_slice +string_slice::strip () +{ + const char *start = this->begin (); + const char *end = this->end (); + + while (start < end && ISSPACE (*start)) + start++; + while (end > start && ISSPACE (*(end-1))) + end--; + + return string_slice (start, end-start); +} + #if CHECKING_P /* Report qsort comparator CMP consistency check failure with P1, P2, P3 as witness elements. */ @@ -584,6 +645,96 @@ test_auto_alias () ASSERT_EQ (val, 0); } +static void +test_string_slice_initializers () +{ + string_slice str1 = string_slice (); + ASSERT_TRUE (str1.is_valid ()); + ASSERT_EQ (str1.size (), 0); + + string_slice str2 = string_slice ("Test string"); + ASSERT_TRUE (str2.is_valid ()); + ASSERT_EQ (str2.size (), 11); + + string_slice str3 = string_slice ("Test string", 4); + ASSERT_TRUE (str3.is_valid ()); + ASSERT_EQ (str3.size (), 4); +} + +static void +test_string_slice_strtok () +{ + const char *test_string + = "This is the test string, it \0 is for testing, 123 ,,"; + + string_slice test_string_slice = string_slice (test_string, 53); + string_slice test_delims = string_slice (",\0", 2); + + ASSERT_EQ (string_slice::strtok (&test_string_slice, test_delims), + string_slice ("This is the test string")); + ASSERT_EQ (string_slice::strtok (&test_string_slice, test_delims), + string_slice (" it ")); + ASSERT_EQ (string_slice::strtok (&test_string_slice, test_delims), + string_slice (" is for testing")); + ASSERT_EQ (string_slice::strtok (&test_string_slice, test_delims), + string_slice (" 123 ")); + ASSERT_EQ (string_slice::strtok (&test_string_slice, test_delims), + string_slice ("")); + ASSERT_EQ (string_slice::strtok (&test_string_slice, test_delims), + string_slice ("")); + ASSERT_TRUE (test_string_slice.empty ()); + ASSERT_FALSE (string_slice::strtok (&test_string_slice, test_delims) + .is_valid ()); + ASSERT_FALSE (test_string_slice.is_valid ()); +} + +static void +test_string_slice_strcmp () +{ + ASSERT_EQ (strcmp (string_slice (), string_slice ()), 0); + ASSERT_EQ (strcmp (string_slice ("test"), string_slice ()), 1); + ASSERT_EQ (strcmp (string_slice (), string_slice ("test")), -1); + ASSERT_EQ (strcmp (string_slice ("test"), string_slice ("test")), 0); + ASSERT_EQ (strcmp (string_slice ("a"), string_slice ("b")), -1); + ASSERT_EQ (strcmp (string_slice ("b"), string_slice ("a")), 1); + ASSERT_EQ (strcmp (string_slice ("ab", 1), string_slice ("a")), 0); + ASSERT_EQ (strcmp (string_slice ("ab", 2), string_slice ("a")), 1); +} + +static void +test_string_slice_equality () +{ + ASSERT_TRUE (string_slice () == string_slice ()); + ASSERT_FALSE (string_slice ("test") == string_slice ()); + ASSERT_FALSE (string_slice () == string_slice ("test")); + ASSERT_TRUE (string_slice ("test") == string_slice ("test")); + ASSERT_FALSE (string_slice ("a") == string_slice ("b")); + ASSERT_FALSE (string_slice ("b") == string_slice ("a")); + ASSERT_TRUE (string_slice ("ab", 1) == string_slice ("a")); + ASSERT_FALSE (string_slice ("ab", 2) == string_slice ("a")); +} + +static void +test_string_slice_invalid () +{ + ASSERT_FALSE (string_slice::invalid ().is_valid ()); + ASSERT_FALSE (string_slice (NULL, 1).is_valid ()); + ASSERT_TRUE (string_slice (NULL, 0).is_valid ()); + ASSERT_TRUE (string_slice ("Test", 0).is_valid ()); + ASSERT_TRUE (string_slice ().is_valid ()); +} + +static void +test_string_slice_strip () +{ + ASSERT_EQ (string_slice (" test ").strip (), string_slice ("test")); + ASSERT_EQ (string_slice ("\t test string\t \n ").strip (), + string_slice ("test string")); + ASSERT_EQ (string_slice ("test").strip (), string_slice ("test")); + ASSERT_EQ (string_slice ().strip (), string_slice ()); + ASSERT_EQ (string_slice ("\t \n \t ").strip (), string_slice ()); +} + /* Run all of the selftests within this file. */ void @@ -604,6 +755,12 @@ vec_cc_tests () test_reverse (); test_auto_delete_vec (); test_auto_alias (); + test_string_slice_initializers (); + test_string_slice_strtok (); + test_string_slice_strcmp (); + test_string_slice_equality (); + test_string_slice_invalid (); + test_string_slice_strip (); } } // namespace selftest diff --git a/gcc/vec.h b/gcc/vec.h index 915df06f03e..409cdab5bc3 100644 --- a/gcc/vec.h +++ b/gcc/vec.h @@ -2484,4 +2484,42 @@ make_array_slice (T *base, unsigned int size) # pragma GCC poison m_vec m_vecpfx m_vecdata #endif +/* string_slice inherits from array_slice, specifically to refer to a substring + of a character array. + It includes some string like helpers. */ +class string_slice; + +int +strcmp (string_slice str1, string_slice str2); + +class string_slice : public array_slice +{ +public: + explicit string_slice () : array_slice () {} + explicit string_slice (const char *str) : array_slice (str, strlen (str)) {} + explicit string_slice (const char *str, size_t len) : array_slice (str, len) + {} + + bool operator== (string_slice other) const + { + if (!is_valid () || !other.is_valid ()) + return false; + if (size() != other.size()) + return false; + return memcmp (begin (), other.begin (), size()) == 0; + } + + static string_slice invalid () + { + return string_slice (nullptr, ~0U); + } + + /* strtok_slice is used to split a string by some deliminator into + strtok_slice's. Similarly to the posix strtok_r.but without modifying the + input string. */ + static string_slice strtok (string_slice *str, string_slice delims); + /* Removes white space from the front and back of the string_slice. */ + string_slice strip (); +}; + #endif // GCC_VEC_H From patchwork Mon Feb 3 13:04:09 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alfie Richards X-Patchwork-Id: 105907 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 50FB6385783B for ; Mon, 3 Feb 2025 13:05:44 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2062d.outbound.protection.outlook.com [IPv6:2a01:111:f403:2612::62d]) by sourceware.org (Postfix) with ESMTPS id 778623858C60 for ; Mon, 3 Feb 2025 13:04:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 778623858C60 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 778623858C60 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:2612::62d ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587886; cv=pass; b=qZxHaYmVqtuRvzBFC0Q+EMV/ItBJGrkyRlXCGT5wPavRJfwJkEE/F8J67fbWbcWL1KpX+dQ/WLICWpmn/a4f+BVGkiGYtKXQ8OR5nEJm19GfITt49enN+GBEF95g0pql2lFJDmK+A9mJa3ZtqqolQVynwTwXAfUSL7Pg76TOMsA= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587886; c=relaxed/simple; bh=dBMR1ypNkMVzZAm2zVjhOuiqnVazH50Wnjg7AQXqFoI=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=hu8FJmxo8pd11r0FQVZ414UGiMNWdyjQhjB73NQSl5VJ+0zKPWpl+9AHypaKydZej/Nkygr+4XYfncvYgQCe2HV5G0/oVp3xfd9++Ef8Nq7KGJ9fVfaXRPlO+Kq5Z4f/EEfOspOqHZ/nywaABVts3XADQdraxicAU8Kd6TKIGLw= ARC-Authentication-Results: i=3; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 778623858C60 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=Czlw1dSn; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=Czlw1dSn ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=jIEr8c0JN7/w/4Mgj4GD6LBM8kcVDLcqlSG0wqonYDX8UOElHTEBxxpsYCQrQRA9FkIbRCNxzICKLzDqj4nK0NIuhG31eMebhvQ0wGp8jZZZmSIStD7N7/deKK0xXIakb13cXiuz98wkiSUEy1pciq0yh1LCJnlYBF397zrzRlLvuh9KvKJjwbVjrmjNZGl6d7g9wXWSuc/UbAEToYQUbp2I0BzM6UAKuwV27qw2lm0YvSSpgs3+JpRw83G4bTWqpuykOp0nrHMqX2ew9XBv3Hbe8FBGYF77vOcohGGVkj3RrRt/+mgu53qrVDA+Rt7tIzE41+jpjHUOObdh1vlKuA== ARC-Message-Signature: i=2; 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=9SwRfyATKpUAa4Kmo66x5K1U94sHwefA7xHEbfvzKpw=; b=lLQvxSc5DY4oOZCJsVf358uSt7MRd8ofDT/Grep2yLliDdxXI9W6UT2Wh6/eMiI9gDxtLYAeE7VJAzoPUUZLuYIeV9tSdp7/CTS0Sonab1pJLybWjssvs2Hhsw0XMQ9rThOAPpG8vsw6ce+cBSbZaU00OWfLGC4n7CSLu88ghgEWPDmHW9gbmH3NkzNXBEIosrWc9C/DXdu8XFvzlqIlBBqVgTNgZNucR+QLQF2dNuDXWY+zYz2jkCnA6WR8ioMKdooshoSaRxL9Bu98FbP9FDuPOi3dVwfUj2NsziMinEnztarWT4GOaXUoPRxK7R6u16hUi8IIK6gyXTnGMnQp8Q== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=0 ltdi=1) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9SwRfyATKpUAa4Kmo66x5K1U94sHwefA7xHEbfvzKpw=; b=Czlw1dSnSVKwD/xbsdRQR+wwQG4Kpuj3CVnxQKm9FO7s3n8c2KKUm+duZPt0Lg1kkCqIY86/DcIcrZnbGxmSz8pEYOelZdaBduUcnQpYYAzZkm+juzolqhpR04Cgrzja2wJrscW2gAp0CwWuRpRAvj5tZ60EGzo4bmu7lG+IWkk= Received: from DU2PR04CA0025.eurprd04.prod.outlook.com (2603:10a6:10:3b::30) by AS4PR08MB7829.eurprd08.prod.outlook.com (2603:10a6:20b:519::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.24; Mon, 3 Feb 2025 13:04:43 +0000 Received: from DB5PEPF00014B8E.eurprd02.prod.outlook.com (2603:10a6:10:3b:cafe::37) by DU2PR04CA0025.outlook.office365.com (2603:10a6:10:3b::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.26 via Frontend Transport; Mon, 3 Feb 2025 13:04:42 +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=arm.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 DB5PEPF00014B8E.mail.protection.outlook.com (10.167.8.202) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:04:42 +0000 Received: ("Tessian outbound 72f36a054dd6:v560"); Mon, 03 Feb 2025 13:04:41 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: b95fc5518dd19c40 X-TessianGatewayMetadata: pwptlcvUH1XLKh5+5uYnQ2CjOqJtPp7W22CCx1StO6XOgFWrvFieG3vesjUJq7/qf29Ksbc1Tgw//Xp0yQ8Zo3r9x7lLDizNYXLs1ha3qCzstaxiM9pmF1h4Xt9O25fi+U5J5FhLw7hU2GwYLjMy28keHU+REQyRXFxVIlOQcGw= X-CR-MTA-TID: 64aa7808 Received: from L48bc27de1cb1.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id AF9A1BDA-67F9-49FB-B48D-DE64C6499424.1; Mon, 03 Feb 2025 13:04:35 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id L48bc27de1cb1.2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Mon, 03 Feb 2025 13:04:35 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=B9lgrk+8eZNIP59/jhm9r7rc4JOMerK9xI6MxQseQnW+LWV0lfqxe3DXSgdUrDe4FJFzeLeu1bvPkf6rMlXDFMPV+ituxZeJ4/7nj9gtKBuA3AMezOMUWaz8lUEfK2PCoR502+XoCOxHBW393hPc8exJ7Jm4pW5EV7pVF5uXaTd1snwkuj1r7GlhF0LmO6j4YxvMsOGD72J4yfn/7QLiFCkCZA44TXjrNchkwISmehsnb3/wZRGmsKOIGPd3bhiD2noEXMwEgLywvmEoginVOG/+pJQ0ZnwFqXtTUF9j3ZTlHPN0b/1wxmZzYDHf/GdLx7h/+8ih8iz2rMrvdGC/xA== 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=9SwRfyATKpUAa4Kmo66x5K1U94sHwefA7xHEbfvzKpw=; b=KysTb0xDIWmOKMajSsEsyfgXvj83iCh9TxJi3U4xgmC0ZvvbNA+4hvLIwyJCTi1OCoXMshdB+LxqK/FN5BjHpeGSg/CCqk7sRQd/T6SnIjCpb9GdaP6nsvUhNNqmpOcem984fH4uaa94YvAlSthVWbduJh17kS9EvS0MyawThB7WkFbDAxicNesDRMuVQxiIymhh9UNxB77UFXAIlShcvizsPE8KSxMsyprXKYowQK26hGERZW/hKv3qimTbZtPsHA5A7W61JvW6/uo2Yi24lUXOi3Pxb4kkl73qQp/6w1akYLknYn+R0dHEM9zDeeEXU9zyeqKouQCSIsKPjLl3zg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 172.205.89.229) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9SwRfyATKpUAa4Kmo66x5K1U94sHwefA7xHEbfvzKpw=; b=Czlw1dSnSVKwD/xbsdRQR+wwQG4Kpuj3CVnxQKm9FO7s3n8c2KKUm+duZPt0Lg1kkCqIY86/DcIcrZnbGxmSz8pEYOelZdaBduUcnQpYYAzZkm+juzolqhpR04Cgrzja2wJrscW2gAp0CwWuRpRAvj5tZ60EGzo4bmu7lG+IWkk= Received: from DUZPR01CA0054.eurprd01.prod.exchangelabs.com (2603:10a6:10:469::10) by PA6PR08MB10442.eurprd08.prod.outlook.com (2603:10a6:102:3c6::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.24; Mon, 3 Feb 2025 13:04:31 +0000 Received: from DB1PEPF00039234.eurprd03.prod.outlook.com (2603:10a6:10:469:cafe::2) by DUZPR01CA0054.outlook.office365.com (2603:10a6:10:469::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.25 via Frontend Transport; Mon, 3 Feb 2025 13:04:34 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=arm.com; Received-SPF: Fail (protection.outlook.com: domain of arm.com does not designate 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; Received: from nebula.arm.com (172.205.89.229) by DB1PEPF00039234.mail.protection.outlook.com (10.167.8.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:04:31 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX06.Arm.com (10.240.25.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:28 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:27 +0000 Received: from ip-10-248-139-135.eu-west-1.compute.internal (10.252.78.54) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 3 Feb 2025 13:04:26 +0000 From: Alfie Richards To: CC: , , , , , , , Alfie Richards Subject: [PATCH v1 04/16] Remove unnecessary `record` argument from maybe_version_functions. Date: Mon, 3 Feb 2025 13:04:09 +0000 Message-ID: <20250203130421.2192732-6-alfie.richards@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250203130421.2192732-1-alfie.richards@arm.com> References: <20250203130421.2192732-1-alfie.richards@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DB1PEPF00039234:EE_|PA6PR08MB10442:EE_|DB5PEPF00014B8E:EE_|AS4PR08MB7829:EE_ X-MS-Office365-Filtering-Correlation-Id: 8d08ccfb-906b-40c9-48f9-08dd445352e5 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|36860700013|82310400026|1800799024|376014; X-Microsoft-Antispam-Message-Info-Original: TRQoviNPLhzsKn0TNOlPV5Dpu4O3rb7EEmBeLCAVDGKECV4Kj5IsLvSNjiCw6FJRKMDLZ4MYpxBRnpWRHQPbXJs7Da5jXv4vKcuHzJk1CwZ1MwNoEE38kQWYEj3XMaPu4aAlbwMGyCBFOg8HHYT21DRoiXICdocnDd+R1wIdNS19paiplGYbwjY3YEvfLYiWOA4bN5OR7iedfR/NlUEFFfV8Zq1kE10/8O5WuuFmNhib5f9EQGpocWuAo2qfZ8wDFPqRb38rKOLrCgCj1JiHnd80sDZIz3PFF88tbBhlVqC5FVdXAxncf/UAPSVBTtgS7N3UQW9F+LgtUXGAkBUYRQJFYITDH77SwdKqE1aQjGKzG/Kxa6JWufP+/g7GU9ZV1uNqUgZg2KG+WJD+Bbdi53PXq5mYwRw+xJ4SsW3qFH6dKf0H/yP2FVe8d8Yra+WvYD5n3tiwy/+LIJqtol1hi2XL5gt6M6UVi/SUeLgGKxSkJgwOGo4BjK7E4lQ3whHMENZGOnb3Nqr9YBbLQt/r6qk3ofcHu/db7ErJZdcPJjwfBss1dE51bxGUXxEbxGZcijaJpRSBOBj2wWSAfLlB3WnWvn/q4xsQJIs0aGEM3wBGKqin9keAfAws0b7wtin/9drWbS4OYHHPoZ7ND0SNTP2GfsZJqWThGDVHtEyxfeWLJjYt1xbGRU1f9/iJAbZCUvIev1Bzj76BM9osH2iggRxOsfRwjNrISZ3YBGDX6rVnfsGw7KU6NN1ZGebcnlPN3FdyC1mecPDCdd8r3hu6NFooPNbb31u/8sMWi1OeP1vq3t5fTLjXOIrV6Sofw80pjsL6VoL08cp6y0LEqJ2CMYHb4XqGoyQXqlF9gihGeKQvYlbdlT2WsBa9pn8omuR1/3AlMPWBKwgT3xl4fUxFNLFp3/03frzct6qBby/FkmCi7in7t5xpSd6oPlKPbd5nJI3CtKOrVrittKWGPpjNrdFyK2+jrJK+boGWqICPxeQC6vauNI6b9Em9+bSQEUrbbQfuNSHZ2HWEA4+VZVLGrwN8pv20qtdcgzQnwaAz+DMi0A6tIRAhMpNOMBiMBYgL+ipeaKoigk2ICGF1dtvH8Wgmdr3ljTyKBmCkrlB169sbKNfKP1y1wuEOxainG0Hfjso96OEZjV0dEIrbU+/coam6AkwWK9oNdtY9XL50b9XNZBr5e94sPBJN3E3PSJ088jpy4B0F86AUuu2xhJp5b3te9u7niz+6MXw5T4o77tV4dg1O0eHTf5EwuHWG8NOe6pEt2DDj9dgVHB527kbPWGU3z6BY5UofL4NicfR2r8RwheLSacJxsoLZOoPmufZlNnvn6aTWBG2B9ZPH70J7iiP/uT8vpI7B9DbkcSz2fo6M+w6mmO1LjCEdrt3Negi9V/DDRs0kcOnnwSAg2CO2IXa4fi3lDbOfaA4lZsJQEz3Gf15p6WWkJvxdh98pUUdwLNfJAzTo+8tpxdTuKn1TLXWQL77mwkXqYvknmIH9kS4= X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR08MB10442 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:10:469::10]; domain=DUZPR01CA0054.eurprd01.prod.exchangelabs.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5PEPF00014B8E.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 11211b61-3599-4961-b9c6-08dd44534c8d X-Microsoft-Antispam: BCL:0; ARA:13230040|35042699022|82310400026|1800799024|36860700013|14060799003|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?/v/8IFCXdlHvSnhxPBNDKrtIr3qyfCN?= =?utf-8?q?P6PpeOdELE0YAvn2C4n9EntuwwLsC+TYjSyGBsJn1nl83zeokXxMIqOyDGmK6q8sH?= =?utf-8?q?IhDsWR56if6GyYrw/qBkRlSKmxN5HefjvmN3NCybrNQokaS+unf5YdxfjeGGe4zsF?= =?utf-8?q?Pu4yvzxwhgQdUjoiLXSTBPIl5U5J4jIL1OUws8fbT9V/N6GryvlR+RzrcSpCTgt9n?= =?utf-8?q?IlCs01BkoVsTg4Bph9/v7eDEFSuOR8Fc3rVqwi7koGCRQG36/IZdIdN0QAOEHtS2w?= =?utf-8?q?Sr55v3bR7Lhd4ilPyiYc3Nm/7lSMfc+u85PeY3Ti20okrdRMmRER/bAWoMeWHkSVp?= =?utf-8?q?0xaaJp4BTBobbJOfVEH7siKGhjs4FOFWciELZSWKVtLE9gOaCMLZ1JzC1Ue9PEAmN?= =?utf-8?q?bHTmhBbcENONIQY4hA3X5Gl00urw747K+ZvyxG5pZcU/RbqIkjLd9QdyXoYNFgt4J?= =?utf-8?q?sAIgwVxyJtL8p6ngmOGelAuhqt1Tad3/EdMSoqhiQuRZBv+slZTaabDttWUUWbVOy?= =?utf-8?q?YwUZeak/yD9tH26Mxd0jq6OLhbRGiIfB+vfzhviU+MWaXL4nT36XulMfprYctzHhz?= =?utf-8?q?PEG5Sd1eHaxYIke9Jmc3hf9MjtFVA5v3z6p3okGTcLoJNGEDkUxp731JWbkXcAlVT?= =?utf-8?q?lcsVIVDRVwZcKkUOFOcdP7NgSswKz8Q6Qre7kB8nUvb9MknJ5C/GoB8ZvbAix7dEE?= =?utf-8?q?6FA3bqJvxoNhRlG71Gi4KC4n4C+NH2nPuOGFoDm+4KrptnR2w+EUDBovkgkzfQdDF?= =?utf-8?q?m0dHvjwAG5VIlf127UWiykHgdaV6cCiK3mUPIy/Pg4JXXTm0bxACGf/u/l4md4U9a?= =?utf-8?q?VU7wK36UoZcB82uRgCxuWyyjcqqKSIMg00iZUYUGcCRN9uM+8v+9I6fJYOCG20t7P?= =?utf-8?q?Co/211Pv2fvns+k8jImssdRa841fR2RBLNY2HvjqqXtOvJEcxbK/hrudv//YH5++h?= =?utf-8?q?/+s3neHnL4SIk+pG6WoTIFt+sLPg5/QNcXaKiMz2T3YOCOxRkPNgSClsfkuOB5gpd?= =?utf-8?q?3wJ0vqwL/G/pKQ6s0+ygtePTUUft46yd33CkGKZknWh+A6A3XzbTcGT44iT1Ekwrq?= =?utf-8?q?avu+Hqmqz2WvAyRUqnP/u0btURv+EdDbYJNPRQuUO2Um4MhZ1dsClcej3hh2R5+8J?= =?utf-8?q?wnRPiB00y4j+aiwwB7TDEk0ZOcgPOqLQMEmZBAEdaaqfdJ+vXm70dfpYPAwGyMdqO?= =?utf-8?q?w56vlRXEW7JOImT8BBx7/9qN4FnRNXAki2ifbU7ClKV+1f6zF0kgNVgCXHdLtXsex?= =?utf-8?q?97R8V6cs2jOKn4GuxiUOPSTpn4Vw4uaSdY8uZarihqyqbfIFGTjtbaSMuvOXFHIIQ?= =?utf-8?q?wAvU2au+9HmLgiKr+zHksfM4o2+GVBC9f9OvruZLu6pYeI5LCR/0JT9CsHqELBwHZ?= =?utf-8?q?kQM1/h17Hc1nO5KszMh9/tKPIjPmqZ1cnQIX+PWckJNmorY7uIDdLg=3D?= 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:64aa7808-outbound-1.mta.getcheckrecipient.com; CAT:NONE; SFS:(13230040)(35042699022)(82310400026)(1800799024)(36860700013)(14060799003)(376014); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2025 13:04:42.0054 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8d08ccfb-906b-40c9-48f9-08dd445352e5 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: DB5PEPF00014B8E.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB7829 X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org The `record` argument in maybe_version_function was intended to allow controlling recording the relationship of versions. However, it only exercised this if both input functions were already marked as versioned, and this same logic is repeated in maybe_version_function itself so the argument is unnecessary. gcc/cp/ChangeLog: * class.cc (add_method): Remove argument. * cp-tree.h (maybe_version_functions): Ditto. * decl.cc (decls_match): Ditto. (maybe_version_functions): Ditto. --- gcc/cp/class.cc | 2 +- gcc/cp/cp-tree.h | 2 +- gcc/cp/decl.cc | 9 +++------ 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/gcc/cp/class.cc b/gcc/cp/class.cc index f2f81a44718..a9a80d1b4be 100644 --- a/gcc/cp/class.cc +++ b/gcc/cp/class.cc @@ -1402,7 +1402,7 @@ add_method (tree type, tree method, bool via_using) /* If these are versions of the same function, process and move on. */ if (TREE_CODE (fn) == FUNCTION_DECL - && maybe_version_functions (method, fn, true)) + && maybe_version_functions (method, fn)) continue; if (DECL_INHERITED_CTOR (method)) diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index ec976928f5f..8eba8d455be 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -7114,7 +7114,7 @@ extern void determine_local_discriminator (tree, tree = NULL_TREE); extern bool member_like_constrained_friend_p (tree); extern bool fns_correspond (tree, tree); extern int decls_match (tree, tree, bool = true); -extern bool maybe_version_functions (tree, tree, bool); +extern bool maybe_version_functions (tree, tree); extern bool validate_constexpr_redeclaration (tree, tree); extern bool merge_default_template_args (tree, tree, bool); extern tree duplicate_decls (tree, tree, diff --git a/gcc/cp/decl.cc b/gcc/cp/decl.cc index cf5e055e146..3b3b4481964 100644 --- a/gcc/cp/decl.cc +++ b/gcc/cp/decl.cc @@ -1215,9 +1215,7 @@ decls_match (tree newdecl, tree olddecl, bool record_versions /* = true */) && targetm.target_option.function_versions (newdecl, olddecl)) { if (record_versions) - maybe_version_functions (newdecl, olddecl, - (!DECL_FUNCTION_VERSIONED (newdecl) - || !DECL_FUNCTION_VERSIONED (olddecl))); + maybe_version_functions (newdecl, olddecl); return 0; } } @@ -1288,7 +1286,7 @@ maybe_mark_function_versioned (tree decl) If RECORD is set to true, record function versions. */ bool -maybe_version_functions (tree newdecl, tree olddecl, bool record) +maybe_version_functions (tree newdecl, tree olddecl) { if (!targetm.target_option.function_versions (newdecl, olddecl)) return false; @@ -1311,8 +1309,7 @@ maybe_version_functions (tree newdecl, tree olddecl, bool record) maybe_mark_function_versioned (newdecl); } - if (record) - cgraph_node::record_function_versions (olddecl, newdecl); + cgraph_node::record_function_versions (olddecl, newdecl); return true; } From patchwork Mon Feb 3 13:04:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alfie Richards X-Patchwork-Id: 105913 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D2F503858415 for ; Mon, 3 Feb 2025 13:08:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D2F503858415 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=ntLTLmYX; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=ntLTLmYX X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazlp170110003.outbound.protection.outlook.com [IPv6:2a01:111:f403:c201::3]) by sourceware.org (Postfix) with ESMTPS id DB56C3858C50 for ; Mon, 3 Feb 2025 13:04:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DB56C3858C50 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org DB56C3858C50 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c201::3 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587886; cv=pass; b=Oeb9eSeVtkw2mR9ALbdr0kOBFqeI30YVI8yJWoxp31Akeb5JgRCHq06I57AcrnBwldSJffkbVKdFgyKn24NCNYEMYmIuIOlSSPUsynngaKW4+/E7L8IGRpbAexzLGKSorL80dNbBO0s8Y3KRR+mKp/vw4ILSO9GRWSPhhHpcjuE= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587886; c=relaxed/simple; bh=PzJ/Ryok2DuSq2ZFDk/8Kmhj4ijirFt6b0wY9F4BS5M=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=Gux0cWGJvgeA3Y93d9FBccWn1cNCR1VH73lTUyqcQYhv1AOw+eurYQPQgIhNaThqdHQDNp3GPdSIHQx+Ko5+98oc97yESbf39WdISrDnV+Zx4tUWXlW7rsUlRPB+KgF4jVmzddtH8apf0cAic4k5Jn9Rd0f9DhaBh4S76vk9Zqo= ARC-Authentication-Results: i=3; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DB56C3858C50 ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=vnj6klPdjjgeUgnaDwOGuwIUE2t+VnF6tMpU8Di0aIMIcrYK+A/ZwJ1RFfCsxtMgOtDvWoavgSpRq+HMKaYsDlSRQmbVRYv7IBJdMUDRPVVrUBngK0d10fnUyGOqNoCscJMg64bVN0C5hx+dxGxRjDXHzrTSEUSf0A39Y1hRdmhQsTECk6Xpb/74pIrl+rLOSKrNhiJv+ubNxQFlcaH1JrPwF033oqosBRVT2rFcDYVGx6PqRmb71DEZl9i3D+XwRoVJWTD55l+mkKCkHvaeJFWI3ks/4kBC+xR3hPGshUz5HBjD017R3tpOkplinPwPP8cGAA1NBnUO57bCc3lvKw== ARC-Message-Signature: i=2; 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=2e7nR0hBzznVVocf12tbWp0uZBj6txygRUVPIHo0a4Q=; b=wvwBTldaG4pYn6wmEzWt+3zpLGv3wf9mziHuSjCZzIEhYnWyeWKgC0LgsWrKWuvcRGGi6MC0ozgQ6jLC1EMfx/9O/07lL+3duJso0bfqAhYCVU96MbCw0189iGTU5EAKThFLcgnmhi5Ma8vBETH5XxiOhWp9h1zAHQlLq/REf2c7O8d8TLRC9kDW/nT4fukONR6O68QBkF+EbJc+c5hDJOXhYjVW5FHXJp0v8KPfueKSAdmzSYFjKpQJKEpUBU6SVYgc5LScIA4q/e1Yg4gwXJyjhD5jkpUaGOHTB2d7cNHR8XrLCLXo1E9MBAR+4xCNxuWTFM+K3dANjo4SIydqUw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=0 ltdi=1) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2e7nR0hBzznVVocf12tbWp0uZBj6txygRUVPIHo0a4Q=; b=ntLTLmYXl9x0+vjyjNwmr8AAoJ75K99bSKAZOoeOgmv4qOJvgNEUzWTassFJtctlsGfWd/2htEnr+kCtJPptp0Lw6cOfpQr74KG4cPV1nUS3ND8ZJ1Cj8DUcMw9OUM1A91Ly1ZqycXZEpiFZwgrihyudWuPE3w0V+lFlNMz3lmk= Received: from DB6PR0301CA0097.eurprd03.prod.outlook.com (2603:10a6:6:30::44) by AS8PR08MB9267.eurprd08.prod.outlook.com (2603:10a6:20b:5a3::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.24; Mon, 3 Feb 2025 13:04:41 +0000 Received: from DB5PEPF00014B89.eurprd02.prod.outlook.com (2603:10a6:6:30:cafe::13) by DB6PR0301CA0097.outlook.office365.com (2603:10a6:6:30::44) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8356.22 via Frontend Transport; Mon, 3 Feb 2025 13:04:41 +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=arm.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 DB5PEPF00014B89.mail.protection.outlook.com (10.167.8.197) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:04:40 +0000 Received: ("Tessian outbound 4d4d74fe3cc9:v560"); Mon, 03 Feb 2025 13:04:40 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 4688a6661ae7c13f X-TessianGatewayMetadata: JvrGz1nfVHS6nfNCFVx2LdHZW71Hs8fqL0J0+MqhBTjU+nUB8UOpYVmAf+Cmy4bNTO2fhefscx+KsSQ91tuOI1UcjJmi4dUH94JSTJhMoYSjmKOMrEey7n/t+UxJY+FBz+IPWsVjNdbFmOagthG+m/oFHjkCAXwXEG4+mSlnnUg= X-CR-MTA-TID: 64aa7808 Received: from L6bfc96fae607.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id ACD9B680-437A-4697-BB86-D2926C246FC9.1; Mon, 03 Feb 2025 13:04:34 +0000 Received: from PA4PR04CU001.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id L6bfc96fae607.2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Mon, 03 Feb 2025 13:04:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OyzA7Pbaa1FRPamCAu+7ufknSfjZlN6GHEhypUusI/C/PvzvU83wE3N+4P5asSJTkukv5vnejEoKKeEInzu1jDJUQAgmga4aLXBNNqby1SJtR3eH/kGMBAttaeaN0Svxna1OYp89khhSDCqCLi8iCVA7kLNmOQDeKYBMGrdnoabKWYkvamxQwAikUPdbwlFFTaFEGYsSz3cmCzgr2uH/Ju2trdv/yZFZkiZtLzbd79LOdydYFANMBtyD3zlbRULb38QWM1k0mbrDYB74IMF2MbEm227im/fCs14ID4VYDYY+9WGS44819J2PBuraVuZczqcJwVqEgkG+X5pDcaMiNA== 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=2e7nR0hBzznVVocf12tbWp0uZBj6txygRUVPIHo0a4Q=; b=wf4Sjsjm1wRGZqK7ohTsCVWnvGho5KgYqyksy21xpTwi1VtqWfhpQrnOBN5xE6LuAAh6PDOFqtK9nRGZQ4v8rbmWPevzvy2cGimmd4Y+GPT10j/TqGOArX2y67pBL8N8nzpbaQTVPkAVVj3p0J3xI1ircI/XkF3RPnrYIi2mnwtYcIPF5cyXJ3xup1V4JCMDKf5KpBVhZcuHeG/Tn+zaep2DlAtprEyLjWDqRnUBWncLI0j8Fxf5rd1l50f17/4Mn+LQJkdnZqwnjTZWY+TGc7BsSODCUS7qDXPNbj1TL+Q2wlEXua4EJO3i+yLhep8L/UlcExSyyOripmor+vx9ug== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 172.205.89.229) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2e7nR0hBzznVVocf12tbWp0uZBj6txygRUVPIHo0a4Q=; b=ntLTLmYXl9x0+vjyjNwmr8AAoJ75K99bSKAZOoeOgmv4qOJvgNEUzWTassFJtctlsGfWd/2htEnr+kCtJPptp0Lw6cOfpQr74KG4cPV1nUS3ND8ZJ1Cj8DUcMw9OUM1A91Ly1ZqycXZEpiFZwgrihyudWuPE3w0V+lFlNMz3lmk= Received: from DUZP191CA0004.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:4f9::23) by DB9PR08MB8314.eurprd08.prod.outlook.com (2603:10a6:10:3de::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.24; Mon, 3 Feb 2025 13:04:32 +0000 Received: from DB1PEPF00039230.eurprd03.prod.outlook.com (2603:10a6:10:4f9:cafe::c8) by DUZP191CA0004.outlook.office365.com (2603:10a6:10:4f9::23) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.25 via Frontend Transport; Mon, 3 Feb 2025 13:04:32 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=arm.com; Received-SPF: Fail (protection.outlook.com: domain of arm.com does not designate 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; Received: from nebula.arm.com (172.205.89.229) by DB1PEPF00039230.mail.protection.outlook.com (10.167.8.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:04:32 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX06.Arm.com (10.240.25.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:28 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:27 +0000 Received: from ip-10-248-139-135.eu-west-1.compute.internal (10.252.78.54) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 3 Feb 2025 13:04:27 +0000 From: Alfie Richards To: CC: , , , , , , , Alfie Richards Subject: [PATCH v1 05/16] Update is_function_default_version to work with target_version. Date: Mon, 3 Feb 2025 13:04:10 +0000 Message-ID: <20250203130421.2192732-7-alfie.richards@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250203130421.2192732-1-alfie.richards@arm.com> References: <20250203130421.2192732-1-alfie.richards@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DB1PEPF00039230:EE_|DB9PR08MB8314:EE_|DB5PEPF00014B89:EE_|AS8PR08MB9267:EE_ X-MS-Office365-Filtering-Correlation-Id: d6eb3f58-df11-46bf-6c4e-08dd44535209 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|36860700013|82310400026|1800799024|376014; X-Microsoft-Antispam-Message-Info-Original: fmPvqK6yRHu4UcmxSKrf2JDRaZR6+nQIi/bMll4zZrVgOfn8u/Ps4vFI9FLIZ1VMzC9nELcWnnyINMXBx9+T7O0YiOQctmqvUL7WY3160C6nL/b4FIZMRYwbb3/MOuJac2dnVh1OuIKM+038uNDMeiqRCKB+pJMYqJxZ7YV5cTK9liYxGWG7inIlTMTChRECmzVKlomcmDLTiV/Ikc+G6tROJKhG++K4/tAMaQqGKAoyAGw7SGWu+2zf423OgoWTvmk6gKyZgxZKAdk9Qr9bLUVJ+Ts7SlRo08GpXMFreMQKQjKNjFygUKrIHOveku6WfL6DGXkskt1cYlSvQ7jiPdOf695HPcd0wjwlK75IviztulElOErkffHcqF3/1W2+SuH4UVaF7FFCq9GXKa3qm8EgPbVsUcOQ+JNvXucTuvvljke6YcT4RTEOwI68GaPhXPJaMakWgCsLhwXrYV6ER2yRiklsu5/Kace9DF9bhjhf8VaQlZb7yr8pBwwOZm6giD7i13ctLdCNm2cog0AxUF/DI1I/Y+MEuqDvDNV9HprV1nRUgf8XLYr2wfBHTzGveACoQ7RScEiPIIYJpdlCppmqJtiX5ih06J45I8BRRfntU95Pzm7+rWs9aKd+MGdQNO1c6W5qunLpIKlltNhRIT4XzcJ24CrumIldAz7bCxM3r/RG1c9fYf7adq4BWzbUUxceByLRGo3+sgRLANFsYDQo4HnOuF04ejyHcLgXvKjCoaEleW6sH7F8pi1NTyKGrw47Xj6aB+wCx9slpZkf1Pe3RVryxrxFulLXGroLoy27cyXW0+GvrDOqpi5GSX8Gia4t/Ek/bTpAXTZhbjnipwI5GI3nwqy4r3eGvXv22qy6K88rvRiL9DOVPkz29rjBmp01y3Y8DGe2P9JEyf0PaBBy39X5TqsHL1tHFfQo7tOXipUz33u8L4KnKoBT9ROLr6e+q+Zlj/04dFJ15sOXAME4Wg2r4Om2tMqUkuw/bUyuJsgL4V1B7vINFb0msFhziZsO2j6IVQjo22uWxOTcr/go82Is7igAuysOl/6h1PxRfR6+fCOEUTJdvKt2tpgKnfn1lgU5Eh+TY+7xzqW95ryv2s+KVHPVYsgk4RWtujTL/CLoMm2L2IRGcLX9elU5t/QyJqIt/fq95wK/2+KIDu3m6/Dil26op6m9LmyhwTf5L1GmeAwmw2GijSA0eK2PhvcJbf/1wxlaBJFy4pWLFEFbdOHY4fBYGGTbqGa5YO+kiRKIuQMNcmBM6Wnh+42t/+c8jJBXRcaLITHEbSi/V4rao/57w4SLmec6VnaDf2u62VDZXqK3QjOGeuAar7hosEEe8aUDGkURVLMwEOXvvSJJz0/aJdvtrkIu/yEXguEWSwSjMT/kmejWEFvWbI9G6EPicWv+cxEOsHYi9nss6vL/J4oGqxZsXPAxtjDEfbLdHZedHvWTrC/5A63cYbqrVns+tIyR/G1fShTBzn6nfGJ2QyjwNf3jTd6PhXL9/v0= X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(36860700013)(82310400026)(1800799024)(376014); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB8314 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:10:4f9::23]; domain=DUZP191CA0004.EURP191.PROD.OUTLOOK.COM X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5PEPF00014B89.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 8fbbbc24-acad-49cb-80d4-08dd44534d22 X-Microsoft-Antispam: BCL:0; ARA:13230040|14060799003|1800799024|376014|82310400026|36860700013|35042699022; X-Microsoft-Antispam-Message-Info: =?utf-8?q?vjwlS6vLuvgZSe9UNmCgoKhwpXzGTss?= =?utf-8?q?//zP7QWvgvSHMpCI0ceio8SXQ+rwsr7PU5Wus3K3/J1YUhpZXQFJ3F4sAun2h1pmG?= =?utf-8?q?g1vxjPvBpXdRyRQ+TBd6Hf4cGHV3rwsgJq5BvwKyEdra211X32mCX4HQ5O8qMXQMw?= =?utf-8?q?Up8s1BIk2qvv/4o6OOhfOloNZoGamZAqAgD36DAKmwtQtSVqudf9tM7L7DJDd9qzW?= =?utf-8?q?umCc1EGmaj8ld+pXKNaf1ODVVtPDJwhwfTtjbhme0ac20YzFxHo6OYToJzL7EzYeA?= =?utf-8?q?/+cK38KH9TD5F4QNk1EBefaj9ZYqj8BPHFUC3f+da2gJUzNCwipMW8aMosryWEEvS?= =?utf-8?q?q3UWgEtZ1soMv79e2KIjjjduP94nNKUqgGwwAdP7byi5YwAxrjpBfA3C+aUn0kEWS?= =?utf-8?q?1ygh/MgVjAvgv4GOXS+H0V5d+QQEn4Q20VZsNleOtHrzuAmU1/dplL2P1Z/oDjMuF?= =?utf-8?q?9b1WgiK5yBW62rxwMSbQlM+x2fOthhZJmYY+aOsn8Ju3VI1i+6cqP524RBqL7gz8D?= =?utf-8?q?4BXCyMQqNrwRgqwOg/48D6vm5aJarc+8Rnxjo6UgTKZflTfY1aFfFEvSB1SXkl/Lw?= =?utf-8?q?dKvA+RMFLtGM0c32IpMaMDZ0NrPrYM9w4CSHiWjIsyvlYHyX8CtCvs8OZG5LNQsbk?= =?utf-8?q?+hp4Vkds32VFFtyhHEoWIlFiuH7pPN3bqI0/L7rxYfFkqoDr8YGhnuEAf/QzFXn5R?= =?utf-8?q?7Uli0if/VE9ryKFL2KMogKKc3/MPcechPWTdSjjKqZ1i++eGRGj0lJkpHycHqdX2u?= =?utf-8?q?pDwPPDoE4wZuVpGT2y7uC3KMDC8+8QenvT0TGO6xlvlizDo71qKm/xCnZE/a0lgny?= =?utf-8?q?TNymnD1WKOfbJaQBrQriQ0PVucQEAGhRoXKRns+vfiIRrIaAkwBU99tMpL4eQXk9O?= =?utf-8?q?Hqzq7B4+Ni7qAQDbeTIMAdtc08XXbLm8VYpu8jLwUd3FG06FiIO8VJlIj+6nGLN7r?= =?utf-8?q?1lf1ttVkjRh6emPqByOzeOfkenKmQ5Xd0mM7wqAIzmyGlVndsSvJV+Rq2qqmcmLM6?= =?utf-8?q?xsZ4aD4cLUk2oapEJ+hX/fAz9hfDWGoeRHqfua2+2f1FhGWAeYIPcZcjBJTUQHdsc?= =?utf-8?q?h2XP2NkNbncYcaPLGPE57yW15cx95etsvRmS+ydx/BpR/qepPLWmlYyQ1koOmBDLY?= =?utf-8?q?OuElTNTQyuVeKprUdVshjBHWeZd+Pp4HZ6Dyvj7bVM69eGmVrXFdX0F+YZPZVXC9y?= =?utf-8?q?lgOKggHeJrYAUAPc7LFMplfg0+5Ee2fg/vXyVi7YKRy0U+VsbUaVvMiSqYRYxpsvI?= =?utf-8?q?CjxYFOoKI0eHsoqUpDdAMso7dNb+3ILWlo4y56jhtXmy8chmn0MRiApsvy1VEe9t9?= =?utf-8?q?qyP9mzs1LnVfmdwHhAQNhx2k23XLgPHCcp05MKqcubhahKvOH8MXyspx0aVhYphbv?= =?utf-8?q?1zQd6GR/huMI04HNf0VB3bWLNd1UQIhSOS29jObzK7DpZ8jxIL8wH4=3D?= 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:64aa7808-outbound-1.mta.getcheckrecipient.com; CAT:NONE; SFS:(13230040)(14060799003)(1800799024)(376014)(82310400026)(36860700013)(35042699022); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2025 13:04:40.5802 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d6eb3f58-df11-46bf-6c4e-08dd44535209 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: DB5PEPF00014B89.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9267 X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org Notably this respects target_version semantics where an unannotated function can be the default version. gcc/ChangeLog: * attribs.cc (is_function_default_version): Add target_version logic. --- gcc/attribs.cc | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/gcc/attribs.cc b/gcc/attribs.cc index 56dd18c2fa8..5cf45491ada 100644 --- a/gcc/attribs.cc +++ b/gcc/attribs.cc @@ -1279,18 +1279,30 @@ make_dispatcher_decl (const tree decl) return func_decl; } -/* Returns true if DECL is multi-versioned using the target attribute, and this - is the default version. This function can only be used for targets that do - not support the "target_version" attribute. */ +/* Returns true if DECL a multiversioned default. + With the target attribute semantics, returns true if the function is marked + as default with the target version. + With the target_version attribute semantics, returns true if the function + is either not annotated, or annotated as default. */ bool is_function_default_version (const tree decl) { - if (TREE_CODE (decl) != FUNCTION_DECL - || !DECL_FUNCTION_VERSIONED (decl)) - return false; - tree attr = lookup_attribute ("target", DECL_ATTRIBUTES (decl)); - gcc_assert (attr); + tree attr; + if (TARGET_HAS_FMV_TARGET_ATTRIBUTE) + { + if (!DECL_FUNCTION_VERSIONED (decl)) + return false; + attr = lookup_attribute ("target", DECL_ATTRIBUTES (decl)); + if (!attr) + return false; + } + else + { + attr = lookup_attribute ("target_version", DECL_ATTRIBUTES (decl)); + if (!attr) + return true; + } attr = TREE_VALUE (TREE_VALUE (attr)); return (TREE_CODE (attr) == STRING_CST && strcmp (TREE_STRING_POINTER (attr), "default") == 0); From patchwork Mon Feb 3 13:04:11 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alfie Richards X-Patchwork-Id: 105911 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id AAC5E385840A for ; Mon, 3 Feb 2025 13:06:51 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on20626.outbound.protection.outlook.com [IPv6:2a01:111:f403:2612::626]) by sourceware.org (Postfix) with ESMTPS id 2AD1E385840A for ; Mon, 3 Feb 2025 13:05:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2AD1E385840A Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 2AD1E385840A Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:2612::626 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587903; cv=pass; b=NvPs+KNATHmFRrSrIIDhNQZbTL9dT3cygHqE8yiZNsDXFLsy2ygceCfEwhXyd4ktE5TpQS0i6lKwhIhP4PfCdU1DuoZLDzopoWZSfrM4KuCyRrGfw463lVvSHFQZJc2eSsxl9LqvJna7HkrcCBBhw0XclBm6myrIw18xc9AJvZ8= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587903; c=relaxed/simple; bh=TwJo4UMLTZMb0bLbxuydPd3Ect3xJPE/MT02fQPMYLg=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=KdVq1IVES9zEkB6SHe2O6k3DNENhcErXuI3M42pyfa+sjwgxMWJf2M9mhIxHqLX9Ch93hIq5zauO0kaANX8ZmlJF1cOBmk1vd5qlBauVF3cCtkzkeGu4jF5iUNh71yb7w2x80YumaSbqLBeQMq7hXCoXEbeFvsWn8rd4eUcaXxE= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=xWOqOqI1dsCqqAdFSGGFhRNjjri+/qvxQGGOJROWl8wkVWhbIUV6JgHgVWfrKjcbWgE3MRfRCYsFwUSDk7jQXTD7h8wlqlS5xMNxEiFNolw7qoiiLnTiKD9E/Dd9RcxO1SsSKiztEoEtpXXCMFBEo+WITxdL5EfKjyPz/yfOWRYR4NPa8M5SIY37knBPSvc2c+hk/41i3HhcY254hQcf/QJQ0pVVm0sYlbIdx+EhBxJqV/xbnhjyuaJW1yGce5TTj33vjzaYG++tI29Zboikddno3968Jtc5Xz/qJy8JzGsLeY3ITlTxBCmK1PnEkMO6K/rPh46EVcjMDqnw1KavIA== ARC-Message-Signature: i=2; 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=L5zlel4XZUzh1RBfoArQJ7k6DnYty86M832SewqbpJg=; b=HpBujYXfIc5POu3sVsxv1ZkENw5ZPSmhRYq8AeLJ74dX4Wn1Xh3YZRNy67Kr+qU9FG2OmL4fETQiFcqoSYhrAvXJM2GQAo2nwUnTIzZcdoMBPoo4GXlibig3o+LdENaD/4aMIcFlAqkzF0v9Mk90J2sGYsdRH2ntYIjxH+flmLqr9tKOKdMG9GzwC79VCa3R019ozJtZ/4pFhjwCkd8i7wuqqlNo5xYAMahYJyltQgOdOW6L7orDOaNPCWm4hoB64KtqhaNrXZ5btNWGFM+C36KI6Jz6aG2eKLQjDzUEsG1cRn4i4zvTRXAKesmyIYAkNH5m+DxYCTqPWKTBHiFFjw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=0 ltdi=1) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=L5zlel4XZUzh1RBfoArQJ7k6DnYty86M832SewqbpJg=; b=LBHo83o2sRgPYAYWec9g3OnAy+yvueRcyJG7wkpabI+hz2IrRpUol4QUJvj0Hmim9rIuRTu0mWOCy8vo7MwTcFPXRZJvH6PT6XrMTy52N2XMEglLD1xUilIekt23OFkqjXtUj+OkEFTxPVEznhCF/WLAmuowQ3CJhgw15OGiBmE= Received: from DB3PR08CA0009.eurprd08.prod.outlook.com (2603:10a6:8::22) by PAXPR08MB6414.eurprd08.prod.outlook.com (2603:10a6:102:12e::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.25; Mon, 3 Feb 2025 13:04:56 +0000 Received: from DB1PEPF000509F5.eurprd02.prod.outlook.com (2603:10a6:8:0:cafe::10) by DB3PR08CA0009.outlook.office365.com (2603:10a6:8::22) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.25 via Frontend Transport; Mon, 3 Feb 2025 13:04:56 +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=arm.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 DB1PEPF000509F5.mail.protection.outlook.com (10.167.242.151) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:04:55 +0000 Received: ("Tessian outbound 9c42971d7905:v560"); Mon, 03 Feb 2025 13:04:54 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 09614aa984c82265 X-TessianGatewayMetadata: o6v517LPrE+skz52CzMk78zVg0yPuAh7usOrSEzQCY2TTbJf3k+VLKzAQheDSXpJVea6399CBQN0mtGxr0AzPElBkm0rjXCBRN8JI3Yxj05DKCFytCDu5mO1F/f7ftp39vTqGhO+uh2Q/5IUfzxNaGmFi/xmZWeLeVoaTFYd3Yo= X-CR-MTA-TID: 64aa7808 Received: from Lef98b5b2c853.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 95DC75D7-33E5-4AB8-B752-9D8170597D7C.1; Mon, 03 Feb 2025 13:04:47 +0000 Received: from EUR03-AM7-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id Lef98b5b2c853.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Mon, 03 Feb 2025 13:04:47 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yH4dNFYvrSyoR7pkxsFVPUopiS1/WKsTy08bYEpPffvZhAzedvhpUlF0ORFAMJAO90OdEHNPfouRHdB3L5EdO/mUpOxWmHdZ16VX+O6Tk1EHuraAJsjQhpD8V59lYjuh8sDNfzzuTBhGlv2or0Rx0hx+xMfyUslXHA47RDS1SYynLM3BPted1AN6Vogfj1S7dbb3xHyYpGyEI49rsw9U2tOvp6805RM+bdjhIl7iKHK+1+/2nIV2jGYbKRVd2KC17fR9WF23FlEcvVmBbgc/OiC7v8iIGRVHx4bVZNtEZofFx/YXuI6Cr/3PQRHA6+PyW1XwlIZ4hgJe9fIsyRYBiQ== 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=L5zlel4XZUzh1RBfoArQJ7k6DnYty86M832SewqbpJg=; b=RbsEFzGHTSEwSPL+AMaUJAvY7VmZr2Xvq9Hg9F07cr/bIhoW8uFQ2bLAEnAnf8/BLGD5c3VZ9hZJn9WjQfUya3xgDd0wi3J+TSRe/X5dFLDkmPsdNQ/hV9dZNVIAps6FJTFSwNQ5kuY5Y51rAnq5TsCVAqHm5W/ewRx28JYC+CfKbxFBNfWAJ4oZMrbJlbwW7OnL0+Tw5NujlBNkQ5rY+RAb1Sy5VbNDN1fZjycYaF2g4T2/hNg+cz9gwHyQMkWrT282lh92KaLQqB11oJCtRQD3IZ1agFyo3ZnOYtODNpg9Oh5FvwJQB41LMkZ+DXAVRrHF6pE7Oo7JDv+LZ1RCgg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 172.205.89.229) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=L5zlel4XZUzh1RBfoArQJ7k6DnYty86M832SewqbpJg=; b=LBHo83o2sRgPYAYWec9g3OnAy+yvueRcyJG7wkpabI+hz2IrRpUol4QUJvj0Hmim9rIuRTu0mWOCy8vo7MwTcFPXRZJvH6PT6XrMTy52N2XMEglLD1xUilIekt23OFkqjXtUj+OkEFTxPVEznhCF/WLAmuowQ3CJhgw15OGiBmE= Received: from DB9PR05CA0015.eurprd05.prod.outlook.com (2603:10a6:10:1da::20) by DB9PR08MB8484.eurprd08.prod.outlook.com (2603:10a6:10:3d4::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.25; Mon, 3 Feb 2025 13:04:42 +0000 Received: from DB1PEPF0003922D.eurprd03.prod.outlook.com (2603:10a6:10:1da:cafe::a4) by DB9PR05CA0015.outlook.office365.com (2603:10a6:10:1da::20) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.24 via Frontend Transport; Mon, 3 Feb 2025 13:04:42 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=arm.com; Received-SPF: Fail (protection.outlook.com: domain of arm.com does not designate 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; Received: from nebula.arm.com (172.205.89.229) by DB1PEPF0003922D.mail.protection.outlook.com (10.167.8.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:04:42 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX06.Arm.com (10.240.25.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:29 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:28 +0000 Received: from ip-10-248-139-135.eu-west-1.compute.internal (10.252.78.54) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 3 Feb 2025 13:04:27 +0000 From: Alfie Richards To: CC: , , , , , , , Alfie Richards Subject: [PATCH v1 06/16] Change function versions to be implicitly ordered. Date: Mon, 3 Feb 2025 13:04:11 +0000 Message-ID: <20250203130421.2192732-8-alfie.richards@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250203130421.2192732-1-alfie.richards@arm.com> References: <20250203130421.2192732-1-alfie.richards@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DB1PEPF0003922D:EE_|DB9PR08MB8484:EE_|DB1PEPF000509F5:EE_|PAXPR08MB6414:EE_ X-MS-Office365-Filtering-Correlation-Id: 3af0ab8c-d1ae-42c1-0152-08dd44535ac7 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|376014|82310400026|36860700013|1800799024; X-Microsoft-Antispam-Message-Info-Original: RLpuLqkd4x0J/lecwcPk1R6tDOXzUlQVsHF6RnReqTQMzxrWKQmFpGfNt8qg0+LqneHDmkNdCVeiiJvyCZ20qSlTLQk6OedI2lbUokG3Gg7jFAuBHDiXSpz0aiCqG04DDYzUdbftHLcCSt/hscZ2wuW7lBIqiE6E6FutetFjuxU8x8fYRh1C/Dd4I1OFpteyO/nOX+eFkXhHIAcsuWTqaYHNPGkE41AZi8Sg/+hVZaGGOnIGwFXWsLcol1u+l07kUTPNLOG5Y+0XbFjC6+1KZ6xdQa/Q0csOfhLHWv+wZx8TrL+yfXfRf7HKOYOgx1K7f4GeRGxP1YCl+v93eNkfgZRDSNsK3FZuVljarrbOxeyGlKdPh2uLIz6yWsGVO1QWzCherFrsY4cxS9wB6b5cG3atDZ3UcI32dSkp2HuRfQRKwmWtypQSpTkpNYbYxUsWnjX3PI9QsfZ8pd9qiTdrsLP5169NMbD2a6ua3r3RuRNAxPlf3aIYS+FuBOKlmboypgNV34f/pJUdOJzGa48PNsQFM7dqj2vkRkX3J3WcAcarQp5ssMagaS+PSp6z6R3aWUNvoon8PhUgbupHNvrY3WzWwnZ3QLnzlo/AlRpMH74GToNhbdFxx2k8jUKpbUI0WByFOmX2xrL+tMlYCSD88dzOhEZenCLSa+wezpqL/nUgBPsGMP/vCx5xbj1VSKAPtrl7zofd0xtCIjnUL2/pmvf2/GUxhygGCz90lVCTt/e2/FQDqh4Ijh0iGaqJY335lN5oWMn6QPd2ZYLqm1hGI+Ogsmq7YKKAeqNaOQqLhXI8hQYmHjQsVlZmrjIwzXiFwzoZ19y+0yDfpFL6zkSW68ukuE7nLk4Jiff28bmfbmPJKQ7xJ+Uez/716ksp+kUv/NyPYfroSfbF8hLrdh+dC+NoxUgf+IjpDxaT6sBffr3zr7J7VDPdEW8fFzVp7vFmO4/+KBkehUmW6clb1sC+4GKKjlHkydSLoVIpb1ssQeuazK1OwhGEvN7bLqcFCf2WRVo+H0rQoOxRVqwtWMA9K4jdL+hwJYoeaaXSB5KIHk8syWyKrDlZCce3VZv6IsDtLG8HK0YBDvonnwwQMDD84oE/f/0qWEY4wjWc5sR+ZWG4nM42J3SSRfBtp5fUHrgOHbNdvHPsfvigQWtxx8Y/zHTwdEDu0DTVtKHfyQQ/CFQbW2s7zH0zGfXjsWzpvUyAh1zk0xXa/qcODHQOpPStvtqGMttEnH/bYF4RxHUJamJa1Cul2s7whB1UWvgZKVqOrCispSnvN72TBDZKIUzqsUpzjmAJuYdWZ+N124sHasGTMXPIRQSXPWBBfIBTWvy5wkdwjXe6YwsJQ5FCoegd2i1L1GqP7Mh2npvg/zjo5aR8pZyDx+JEk6qyy+XnneNkdABBbjH3iIr40TtnauQS/ZwcN84TH4aWTJQttJC+Qji4Nv69Yfctj+B900U3tKX1cOQIaFPHPdza35ZmCWgN75k4SpSmfi8zGulLO7isHjA= X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB8484 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:10:1da::20]; domain=DB9PR05CA0015.eurprd05.prod.outlook.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB1PEPF000509F5.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 8a4fa3b5-6e3e-4725-f14c-08dd4453535a X-Microsoft-Antispam: BCL:0; ARA:13230040|36860700013|376014|82310400026|35042699022|1800799024|14060799003; X-Microsoft-Antispam-Message-Info: =?utf-8?q?w8qRhh3I1tCgJMZBFQrKEkPOA6mIoBf?= =?utf-8?q?K5K4oZlcw3tLd1rQUiczw8no3P68EY0R54ORJd6nD3MzBqI5JynAX9RL4ETRkZEiP?= =?utf-8?q?dxBk09QXodI2jQvIP/WM7cxEVq4hVdYcM0RxWo7mCZPdF+jTU0P2g1h/D05UBYcHn?= =?utf-8?q?OfhJhHkDZT6/QQ78DKGe7BB2Op1yHIs96GJ71UB0uLz2CXxDgRK1G1vYW+ZxGmnHC?= =?utf-8?q?8vutlUhP3zJfUJBt7PGdeTiUKC5oBCLX1/vZNjZsr/hprBxvtGdf0PkzzJRXHlbI4?= =?utf-8?q?ufWHTRJ3wv8SG3/89QgbJk6bUOe1sRlUbbqfbYTEr7nopOj3JBJwXm4KjrA8KHt2r?= =?utf-8?q?QqnkC3g7X/i/PLDBgAS6Vx2LXwIqv3f8VrrXHwkZP5ueOPZDCY8oQaavSq0c/k0DC?= =?utf-8?q?ozYcHApZe+jz+67rp3XCVZotldZNuT42g26WKQPWfqBU2vuBhTJkZabw0g8cxnY5g?= =?utf-8?q?n5SdWpKJrfqADXwbrWnV0CK+zKT1rL32iw6Qnr6g2FhlvtH7Jc/dfvQnSycC4j1IG?= =?utf-8?q?2Q8xSwqtvp0sUtVNS1H6SA1KEDZrs6eKGV7wXF98gkO33HUaigNyyd7FfudcN5zjA?= =?utf-8?q?lGtK8hF43IJIgPgqR37F2L3wDShnaJziaiGsk2AhHQyMpBa114ernE+b/05btUAjM?= =?utf-8?q?aL5DbPVb7KhpB4Ojma1pNNJNfvmiXt9t5kLUvVE4DiC9HzwIwHek8o3mcsTu1dL/C?= =?utf-8?q?51JVt37nlzeC/HEaG0VIfBq5aWnfTOLGL4h//nE9NeoXF9qGuWrCd2Ax/Lk6bBs/V?= =?utf-8?q?Wy8Z9P0YSjKVXKtFvQ0n1CYg2sam/d3QbkBuEQqgja4mES+KHOpS3CvViTk2+sAiB?= =?utf-8?q?6QVbiHtpCwiHeaykN9zdIDl6YN9Pi3nHP696eDQ49pN2cv2wVHLf+s07MSQ0qKS6R?= =?utf-8?q?9+C2BC3k8lEkPKVI5n8R+lxjJ32X62p0i2H+SpUOsMesFGGerOSqYs2Jl8RrVQN6O?= =?utf-8?q?9WFItWU31EGQbsfaqa4GdMswK6USdXBzmjbLaR1mKfU6DrpcPVVoP5rBWxtybuKhi?= =?utf-8?q?gEVkiAnGn8hZfE46y2Rc6TlRiFEJNbPxpHF96h/7qPIZI10wXG1jkY9bmrrSOFHO7?= =?utf-8?q?y1xvxEtYu8ZhmvfodB18n/RhYbTyLVMB1tQwxSAczz5HdZyTKVuNMBuv69dnjNAGl?= =?utf-8?q?2r9OwOy8Cog/LEuMD7ETU5EuxmGoreuFH8bT5j2CPPCayq4IBXaC+4I39ZWNkqV5o?= =?utf-8?q?IOa8fo7CtXjCeKt2GGHFgV3UikiFjS5diXLeZVI+YC71ku5uiWt0UfBRHEig+XGNu?= =?utf-8?q?xvTGMehxpzcZfy3cFCI8qs+kFc14ng+qJsqaTVlxrzbkm9TY8aiiNpjFSoBfT2s0/?= =?utf-8?q?A9z6HBBlObq5bkqyNkUe+fCfNyxzuWBfRfXcXmQAIRmOjUbZ9ChI3EnhMF+us+8cP?= =?utf-8?q?MCqZhbsvtsVrADctFnhBH9e5szvkjmB1sn+8KWkq5sO3CWptfADSfQ=3D?= 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:64aa7808-outbound-1.mta.getcheckrecipient.com; CAT:NONE; SFS:(13230040)(36860700013)(376014)(82310400026)(35042699022)(1800799024)(14060799003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2025 13:04:55.2131 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3af0ab8c-d1ae-42c1-0152-08dd44535ac7 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: DB1PEPF000509F5.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6414 X-Spam-Status: No, score=-11.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, KAM_ASCII_DIVIDERS, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org This changes function version structures to maintain the default version as the first declaration in the linked data structures by giving priority to the set containing the default when constructing the structure. This allows for removing logic for moving the default to the first position which was duplicated across target specific code and enables easier reasoning about function sets when checking for a default. gcc/ChangeLog: * cgraph.cc (cgraph_node::record_function_versions): Update to implicitly keep default first. * config/aarch64/aarch64.cc (aarch64_get_function_versions_dispatcher): Remove reordering. * config/i386/i386-features.cc (ix86_get_function_versions_dispatcher): Remove reordering. * config/riscv/riscv.cc (riscv_get_function_versions_dispatcher): Remove reordering. * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher): Remove reordering. --- gcc/cgraph.cc | 39 +++++++++++++++++++++++------- gcc/config/aarch64/aarch64.cc | 37 +++++++--------------------- gcc/config/i386/i386-features.cc | 33 ++++--------------------- gcc/config/riscv/riscv.cc | 41 +++++++------------------------- gcc/config/rs6000/rs6000.cc | 35 +++++---------------------- 5 files changed, 58 insertions(+), 127 deletions(-) diff --git a/gcc/cgraph.cc b/gcc/cgraph.cc index d0b19ad850e..1ea38d16e56 100644 --- a/gcc/cgraph.cc +++ b/gcc/cgraph.cc @@ -236,37 +236,58 @@ cgraph_node::delete_function_version_by_decl (tree decl) void cgraph_node::record_function_versions (tree decl1, tree decl2) { - cgraph_node *decl1_node = cgraph_node::get_create (decl1); - cgraph_node *decl2_node = cgraph_node::get_create (decl2); + cgraph_node *decl1_node; + cgraph_node *decl2_node; cgraph_function_version_info *decl1_v = NULL; cgraph_function_version_info *decl2_v = NULL; cgraph_function_version_info *before; cgraph_function_version_info *after; + cgraph_function_version_info *temp_node; + + decl1_node = cgraph_node::get_create (decl1); + decl2_node = cgraph_node::get_create (decl2); gcc_assert (decl1_node != NULL && decl2_node != NULL); decl1_v = decl1_node->function_version (); decl2_v = decl2_node->function_version (); - if (decl1_v != NULL && decl2_v != NULL) - return; - if (decl1_v == NULL) decl1_v = decl1_node->insert_new_function_version (); if (decl2_v == NULL) decl2_v = decl2_node->insert_new_function_version (); - /* Chain decl2_v and decl1_v. All semantically identical versions - will be chained together. */ + gcc_assert (decl1_v); + gcc_assert (decl2_v); before = decl1_v; after = decl2_v; + /* Go to first after node. */ + while (after->prev != NULL) + after = after->prev; + + /* Go to first before node. */ + while (before->prev != NULL) + before = before->prev; + + /* These are already recorded as versions. */ + if (before == after) + return; + + /* Possibly swap to make sure the default node stays at the front. */ + if (is_function_default_version (after->this_node->decl)) + { + temp_node = after; + after = before; + before = temp_node; + } + + /* Go to last node of before. */ while (before->next != NULL) before = before->next; - while (after->prev != NULL) - after= after->prev; + /* Chain decl2_v and decl1_v. */ before->next = after; after->prev = before; diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index be99137b052..15dd7dda48a 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -20630,7 +20630,6 @@ aarch64_get_function_versions_dispatcher (void *decl) struct cgraph_node *node = NULL; struct cgraph_node *default_node = NULL; struct cgraph_function_version_info *node_v = NULL; - struct cgraph_function_version_info *first_v = NULL; tree dispatch_decl = NULL; @@ -20647,37 +20646,17 @@ aarch64_get_function_versions_dispatcher (void *decl) if (node_v->dispatcher_resolver != NULL) return node_v->dispatcher_resolver; - /* Find the default version and make it the first node. */ - first_v = node_v; - /* Go to the beginning of the chain. */ - while (first_v->prev != NULL) - first_v = first_v->prev; - default_version_info = first_v; - while (default_version_info != NULL) - { - if (get_feature_mask_for_version - (default_version_info->this_node->decl) == 0ULL) - break; - default_version_info = default_version_info->next; - } - - /* If there is no default node, just return NULL. */ - if (default_version_info == NULL) - return NULL; - - /* Make default info the first node. */ - if (first_v != default_version_info) - { - default_version_info->prev->next = default_version_info->next; - if (default_version_info->next) - default_version_info->next->prev = default_version_info->prev; - first_v->prev = default_version_info; - default_version_info->next = first_v; - default_version_info->prev = NULL; - } + /* The default node is always the beginning of the chain. */ + default_version_info = node_v; + while (default_version_info->prev != NULL) + default_version_info = default_version_info->prev; default_node = default_version_info->this_node; + /* If there is no default version, just return NULL. */ + if (!is_function_default_version (default_node->decl)) + return NULL; + if (targetm.has_ifunc_p ()) { struct cgraph_function_version_info *it_v = NULL; diff --git a/gcc/config/i386/i386-features.cc b/gcc/config/i386/i386-features.cc index c35ac24fd8a..2eb3a21bb5d 100644 --- a/gcc/config/i386/i386-features.cc +++ b/gcc/config/i386/i386-features.cc @@ -3962,7 +3962,6 @@ ix86_get_function_versions_dispatcher (void *decl) struct cgraph_node *node = NULL; struct cgraph_node *default_node = NULL; struct cgraph_function_version_info *node_v = NULL; - struct cgraph_function_version_info *first_v = NULL; tree dispatch_decl = NULL; @@ -3979,37 +3978,15 @@ ix86_get_function_versions_dispatcher (void *decl) if (node_v->dispatcher_resolver != NULL) return node_v->dispatcher_resolver; - /* Find the default version and make it the first node. */ - first_v = node_v; - /* Go to the beginning of the chain. */ - while (first_v->prev != NULL) - first_v = first_v->prev; - default_version_info = first_v; - while (default_version_info != NULL) - { - if (is_function_default_version - (default_version_info->this_node->decl)) - break; - default_version_info = default_version_info->next; - } + /* The default node is always the beginning of the chain. */ + default_version_info = node_v; + while (default_version_info->prev != NULL) + default_version_info = default_version_info->prev; /* If there is no default node, just return NULL. */ - if (default_version_info == NULL) + if (!is_function_default_version (default_node->decl)) return NULL; - /* Make default info the first node. */ - if (first_v != default_version_info) - { - default_version_info->prev->next = default_version_info->next; - if (default_version_info->next) - default_version_info->next->prev = default_version_info->prev; - first_v->prev = default_version_info; - default_version_info->next = first_v; - default_version_info->prev = NULL; - } - - default_node = default_version_info->this_node; - #if defined (ASM_OUTPUT_TYPE_DIRECTIVE) if (targetm.has_ifunc_p ()) { diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc index 439cc12f93d..69e47ec7e79 100644 --- a/gcc/config/riscv/riscv.cc +++ b/gcc/config/riscv/riscv.cc @@ -13719,7 +13719,6 @@ riscv_get_function_versions_dispatcher (void *decl) struct cgraph_node *node = NULL; struct cgraph_node *default_node = NULL; struct cgraph_function_version_info *node_v = NULL; - struct cgraph_function_version_info *first_v = NULL; tree dispatch_decl = NULL; @@ -13736,41 +13735,19 @@ riscv_get_function_versions_dispatcher (void *decl) if (node_v->dispatcher_resolver != NULL) return node_v->dispatcher_resolver; - /* Find the default version and make it the first node. */ - first_v = node_v; - /* Go to the beginning of the chain. */ - while (first_v->prev != NULL) - first_v = first_v->prev; - default_version_info = first_v; - - while (default_version_info != NULL) - { - struct riscv_feature_bits res; - int priority; /* Unused. */ - parse_features_for_version (default_version_info->this_node->decl, - res, priority); - if (res.length == 0) - break; - default_version_info = default_version_info->next; - } + /* The default node is always the beginning of the chain. */ + default_version_info = node_v; + while (default_version_info->prev) + default_version_info = default_version_info->prev; + default_node = default_version_info->this_node; /* If there is no default node, just return NULL. */ - if (default_version_info == NULL) + struct riscv_feature_bits res; + int priority; /* Unused. */ + parse_features_for_version (default_node->decl, res, priority); + if (res.length != 0) return NULL; - /* Make default info the first node. */ - if (first_v != default_version_info) - { - default_version_info->prev->next = default_version_info->next; - if (default_version_info->next) - default_version_info->next->prev = default_version_info->prev; - first_v->prev = default_version_info; - default_version_info->next = first_v; - default_version_info->prev = NULL; - } - - default_node = default_version_info->this_node; - if (targetm.has_ifunc_p ()) { struct cgraph_function_version_info *it_v = NULL; diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc index 675b039c2b6..c59bd43c76d 100644 --- a/gcc/config/rs6000/rs6000.cc +++ b/gcc/config/rs6000/rs6000.cc @@ -25295,7 +25295,6 @@ rs6000_get_function_versions_dispatcher (void *decl) struct cgraph_node *node = NULL; struct cgraph_node *default_node = NULL; struct cgraph_function_version_info *node_v = NULL; - struct cgraph_function_version_info *first_v = NULL; tree dispatch_decl = NULL; @@ -25315,38 +25314,16 @@ rs6000_get_function_versions_dispatcher (void *decl) if (node_v->dispatcher_resolver != NULL) return node_v->dispatcher_resolver; - /* Find the default version and make it the first node. */ - first_v = node_v; - /* Go to the beginning of the chain. */ - while (first_v->prev != NULL) - first_v = first_v->prev; - - default_version_info = first_v; - while (default_version_info != NULL) - { - const tree decl2 = default_version_info->this_node->decl; - if (is_function_default_version (decl2)) - break; - default_version_info = default_version_info->next; - } + /* The default node is always the beginning of the chain. */ + default_version_info = node_v; + while (default_version_info->prev) + default_version_info = default_version_info->prev; + default_node = default_version_info->this_node; /* If there is no default node, just return NULL. */ - if (default_version_info == NULL) + if (!is_function_default_version (default_node->decl)) return NULL; - /* Make default info the first node. */ - if (first_v != default_version_info) - { - default_version_info->prev->next = default_version_info->next; - if (default_version_info->next) - default_version_info->next->prev = default_version_info->prev; - first_v->prev = default_version_info; - default_version_info->next = first_v; - default_version_info->prev = NULL; - } - - default_node = default_version_info->this_node; - #ifndef TARGET_LIBC_PROVIDES_HWCAP_IN_TCB error_at (DECL_SOURCE_LOCATION (default_node->decl), "% attribute needs GLIBC (2.23 and newer) that " From patchwork Mon Feb 3 13:04:12 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alfie Richards X-Patchwork-Id: 105908 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id DEDD4385772F for ; Mon, 3 Feb 2025 13:05:58 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazlp170110003.outbound.protection.outlook.com [IPv6:2a01:111:f403:c201::3]) by sourceware.org (Postfix) with ESMTPS id 76C663858424 for ; Mon, 3 Feb 2025 13:04:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 76C663858424 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 76C663858424 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c201::3 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587896; cv=pass; b=fTT18dE6XG6k9ecYzh2cZNFAvlbCLpzX9o97pUqGfPJ2JYiCA3L+HmJgYhAAK7dwhuVKWRBhKauY1wV8mpqFPFVwGkj0DXq6h91b+T6+6aKvVW0ZTGmm3ukv1LT25QlG4r1o7W3LPB/AktUDoNiYqq2rlFnhV8gRWr+XX2vA/Ec= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587896; c=relaxed/simple; bh=fsrxyAZF5fxZ0kR/u5aPE+4Tuza0pyI0Vcvz4pJ4GPo=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=Hp6VYEqcOSgrQMXQDvnTD7A4p0OUzVWN2i1o/mv+J0myNs8iOoX5DDwPfqy90+KVmFBAxRjfJsNwg76IMbCNwvGx5DKVp25bpb5kP+HiYfr3EEq4Gnz6aRevs8KBRFNsrD7SfVRUn7oXycIRnI9nkqMm2eFubewlVR4AgtbNTvs= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=hLmDUhdIW+doFSazwqWvqufAap6V4OE5o98TJYHzIBo/n83uemch2H5QcdVa8CpDWolklAqeG8gDKdMzfyMmf8k3TufeHIjL1DrAb62P/ASA+omORxUv/JdAtKBc3W/Jn8As3sOt/yzWlzJdZHL5zXf9TW+rUOCWcFvoghH0buPUaWp6FQpVV3mKKwpAs3HkAc7w0AWZpx0Fzq5vkaTSz0Ci+pGEUK/7M7zjxcpUCBuFBRMyPVvSiGuHNURM8VHPF4lrfnlh78TtfAQEJYiljcsNHhXLri/U0lYspPdkyeatz7O1ev1TDhUut1tgC/wPBHk+DBO7LKXsAbqiNdc4Cg== ARC-Message-Signature: i=2; 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=wVrGpXb3Ei3DE07gSwfcIOTky7nAK1lsp9shDj7ZT4U=; b=sWnl3JWhPUkycNWzN26th7d3afcwwqYFxOneFJ1N2JCL3O2EMs5Z7HBp3IOmll/+4nTjWu66tWEnnwRXNgxnhcOFNurA/x2wl4BmJjkv9LP8HDh+wCZEFpwAwH29JfFieAQgdkWC9ay4u/PBpfM8lcxX88MX8fYaQqSUQxtdVSK9BzMosX+fNu+CZAp8V2nyXcL5qhzqdL/eLQQ7rS6L8m2/P/aT6cagpJXu6RJb4r6ti1/ThSJlBZ9pMZvY6uhu8oOaEkYp9snh7lyn/px8IWHoGWVrkioqsnv9bdmgfIkgGlPSscRlt7P9G4N+0aele9cYLEF+CQZkXWOA4cu03Q== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=0 ltdi=1) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wVrGpXb3Ei3DE07gSwfcIOTky7nAK1lsp9shDj7ZT4U=; b=NgvkG3uwozUb9YRfOdBZa8BH3Fv0IvHybN4C8SYQrc7EqXgKktng0WcFQrhWuVvkOfoNwz1q3ajkXEHkL31BkrSO9ZPEkSLyJRfhMe+ecSrXFefMR8S7E2Vk0+3Y3Ybf7r9RAq5iOBx7y2AyWOvAzkhq9yhIC1zcNaTRQFpQe8Q= Received: from AS9PR06CA0235.eurprd06.prod.outlook.com (2603:10a6:20b:45e::34) by AM8PR08MB5715.eurprd08.prod.outlook.com (2603:10a6:20b:1d7::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.25; Mon, 3 Feb 2025 13:04:54 +0000 Received: from AM2PEPF0001C70C.eurprd05.prod.outlook.com (2603:10a6:20b:45e:cafe::d7) by AS9PR06CA0235.outlook.office365.com (2603:10a6:20b:45e::34) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.25 via Frontend Transport; Mon, 3 Feb 2025 13:04:53 +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=arm.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 AM2PEPF0001C70C.mail.protection.outlook.com (10.167.16.200) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:04:53 +0000 Received: ("Tessian outbound 72f36a054dd6:v560"); Mon, 03 Feb 2025 13:04:53 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 5f229e8c58b69ebc X-TessianGatewayMetadata: t6f1ic92ZviSQCystjAP75I1bNdbSdqr5hOKOEQordtAHxBxM/PSd0nhcJBRFwd1xWq3sOkaDDsf2BBljaJI8nc0pYFb43MCWDOxTsHk/Gl1dpRYCbrYATZVO6OHWlCOqYt/pDKKZPSQF5wyi828wsgsSEOhTSKoLlMTxoakRj4= X-CR-MTA-TID: 64aa7808 Received: from L416d379c5967.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 181041EC-7C25-4465-B313-129D8BB22148.1; Mon, 03 Feb 2025 13:04:41 +0000 Received: from OSPPR02CU001.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id L416d379c5967.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Mon, 03 Feb 2025 13:04:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZD/pIAwdyeNQ76bPwARWtsbMQQ657Jf5CpO3qFPxUCp4wgk0WA3uWWugNQ2jfSMV6Yzz9krbVshQ6HF9wFMepNrFFI2JCx2HVlRVyuRltkxWISe+7WJ1WxH7NI0H94/y+9UO2wk10BfpHf1t9cAV5RcbmmENjoMQNFxgUhpNGMtFx/rr9CAhXezNNMbAEbRSiY2j0wPNTiozUrqeyWmsu0tQB14dP6T4+7ni4cgMeaCi09gPlTkd2cPGJ5cOdtHqHXjDubnNK3vNb7TwMaNFVhis5UN2eUcuuyjHyr+9KP/jjnZ13lkLt2EE3/CInLG17DD8jM5x6x/D6uK3lhn2Hw== 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=wVrGpXb3Ei3DE07gSwfcIOTky7nAK1lsp9shDj7ZT4U=; b=gTuWiSW7zvtWo8wwG9e016Mi1VNc4VDXSyra70X8yld8PZfu2dlRMGEx/QgiPGiLdRyPfx8xFIjXZgtQwlBY7h8D6uxx06tn6p9J1ER+UXxionPchMA18TXzcKTTqRZIwrDs7+5Lhu1u5Ij3XQ1xs4HdQDwbheyAUKahMepdodnN7Wf+qxDAmA9s3dQKNm5oiH/XR+ey/+mwMWbQO8h70wXjJFROvFRvW1w5ycnvLO7DdQq6tWhd/1nLqlHl9rq59Jfx4BFkX7IprM1pWEh3fErtBcCLABBmTq7wzUolT27kRdSBwEqUXb7FZFoSGp9CRiq8mLNVt+E3w9+QjNkcjw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 172.205.89.229) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wVrGpXb3Ei3DE07gSwfcIOTky7nAK1lsp9shDj7ZT4U=; b=NgvkG3uwozUb9YRfOdBZa8BH3Fv0IvHybN4C8SYQrc7EqXgKktng0WcFQrhWuVvkOfoNwz1q3ajkXEHkL31BkrSO9ZPEkSLyJRfhMe+ecSrXFefMR8S7E2Vk0+3Y3Ybf7r9RAq5iOBx7y2AyWOvAzkhq9yhIC1zcNaTRQFpQe8Q= Received: from DU7P191CA0019.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:54e::33) by PAVPR08MB9259.eurprd08.prod.outlook.com (2603:10a6:102:307::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.23; Mon, 3 Feb 2025 13:04:38 +0000 Received: from DB1PEPF00039233.eurprd03.prod.outlook.com (2603:10a6:10:54e:cafe::e) by DU7P191CA0019.outlook.office365.com (2603:10a6:10:54e::33) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.24 via Frontend Transport; Mon, 3 Feb 2025 13:04:36 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=arm.com; Received-SPF: Fail (protection.outlook.com: domain of arm.com does not designate 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; Received: from nebula.arm.com (172.205.89.229) by DB1PEPF00039233.mail.protection.outlook.com (10.167.8.106) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:04:36 +0000 Received: from AZ-NEU-EXJ01.Arm.com (10.240.25.132) by AZ-NEU-EX06.Arm.com (10.240.25.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:29 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EXJ01.Arm.com (10.240.25.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:28 +0000 Received: from ip-10-248-139-135.eu-west-1.compute.internal (10.252.78.54) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 3 Feb 2025 13:04:28 +0000 From: Alfie Richards To: CC: , , , , , , , Alfie Richards Subject: [PATCH v1 07/16] Add version of make_attribute supporting string_slice. Date: Mon, 3 Feb 2025 13:04:12 +0000 Message-ID: <20250203130421.2192732-9-alfie.richards@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250203130421.2192732-1-alfie.richards@arm.com> References: <20250203130421.2192732-1-alfie.richards@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DB1PEPF00039233:EE_|PAVPR08MB9259:EE_|AM2PEPF0001C70C:EE_|AM8PR08MB5715:EE_ X-MS-Office365-Filtering-Correlation-Id: 31cc8d99-50ed-4b3c-5a39-08dd445359b2 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|1800799024|376014|36860700013|82310400026; X-Microsoft-Antispam-Message-Info-Original: gBFNYLz59Xala05aQ90y7GbPVLQmaQF9ZZbcer7Jaof2sOxUY6qE25jrG1k++HrrhXBXe0o19TTdTfhbMZ9eVha56Kd9/Z38lXJc4yVxHayTx+CZ+q7m4bwlOXI2v7uspvqrfrpU8xmW3CdqoNFmFkCKu9sevWkpsr4Gq0YqqHQaG0YvCrZs4jZpv/PpT0mX8puUA0IMZPCy+d5sqDItwlqvbkmO4biKi+t6DXYDaYOgQhB2aHEhY2JqDX+TTOwG2VF4dnVZAu8hDNO3L3ql28B2IefC98RVVk5p2OsxnjSgEV/KDNJAyLHPgKN7cjd72gj9E7vEcPyY6lOEY3sxKo4TA5lympAWsYDjmSHhmX61VNtBF4YoEuQYPThGK6jQ//n3eboRxLaXGpjiFDOawX9WE2LJTsD+JDggLH4rPK8gYk3auZ+EaxcnV97ZN9n+3WdI0fmjWm54D0ssJWcLg+41WX0lJ/I1650CoNLbLUvjJDyrv6JGlb+Bsjh5acUvIZlwCcCtzjHs84JotF1JYHwGncYHvzLG+A+cZRbXOPhK0prSiqAHve8m22jcghZqQyI0B7yY7bFya823jG4AYARUaLP7pbVGvUturUkSklalvt0xGOrc7mTmh+bMa+AJhXHfYv88elew6p68WTmnqGjJoMOxRWGzpq6vmeBo1OvMRi03RQu75jI48YM5lWr4SZWrfSK2an1nO9UaC+8Wmr6OKe8V7isHadKAwBZPvA7pnjbt809eu4or9vtru/hjibqMAnr/oOFVxRqLam3sEdklqzuFRW8YYeJWAmkbXOdK22liPyOotAYNZ8KeoiMJrm595iFRCRoPUF3KIg5urUwy+lQGyjaCP1qoBhHyJIc0DMD0/doHuwos7XgGQMSUqaAO6DVFAZmVjCFmNmUMEs/+YPaR1v9SQhp3hyUFPk44al8yWJLGkNf2qxsjTX/PceElfnFsEGjor/eoF20/JMvge2poFIUJ875jIs6zqDh24Q+XaUKfO00m1njRsaybHoklDesXijlWSFQcilsfV1Y1vvNrO/Hwfc/karfVwKd4jkvyRwBbSc7oQSpw9bA5J5v+CB8sXrnzwLj4VsBklJY8XDG2k9dS9qvejtLv8izox9xCkGfcADy2GRQCGlf5ymUU3I3cIYS4de3a1tb5gkfgb0rhFMZxMt8j/tUdL6uPeG2DPQgWiM+ug8H7E8f0OmLdyC1oKBDPxKf0dyVSzvCd0vRFuPakqBhcm+WCk7a0oMiN7WFbWHV57JO/czfijuXyuJxxLE+id+2vide4mVgjjGMAYYKXFfTiImiYjB9+1E/l/oOWH00X0ShYmtNrClrFwH+xUSRSUh++UpTEcqKBAfdAXrpe0usr92mVIzrmuMIr3pnZdClvaaxyNKL96TJVTBKFAmwOau6rQZQndZDE80dPZftZiy56/gEYMP5cQwVKPLVfuQA5dxFtm4SoovQ7Pp4Wev1dBWyzpfP1/xHRNnGGHTvfYSait5KL/eA= X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB9259 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:10:54e::33]; domain=DU7P191CA0019.EURP191.PROD.OUTLOOK.COM X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM2PEPF0001C70C.eurprd05.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 5d67cfbf-8308-4106-3fb6-08dd44534f6a X-Microsoft-Antispam: BCL:0; ARA:13230040|36860700013|82310400026|1800799024|35042699022|376014|14060799003; X-Microsoft-Antispam-Message-Info: =?utf-8?q?bJT3PxlZC37rfNvjER2j9ok347pJqYv?= =?utf-8?q?0X77ht09j9RFJbiLxLX8BSW4YAQyh0A8A2e/ThKLGBNcwlQQnFwEWC8HM8qB8lmc0?= =?utf-8?q?ZAvx8WZcAeZ9wv0lhflxjPIBSk5vUZ7AgVt5cJKGbWHlQ0gMUc3Z+Xl5V2MWSXmzZ?= =?utf-8?q?aBR7YsxEBx6wVkuFqBme27ca6UqK2innOz6kETwYJiySAEc5xGP6bg98ZIqEDz8KN?= =?utf-8?q?HS8QleiZjClbPGXEv84gNHVfIp9YGkz5ntL7Xjdu8WhnLTi7glrnykXWkW8AdMM+R?= =?utf-8?q?OAx8BR6U0bwYOMGyR8NUKpULnk5QGZj0/dsz6YZIvFcN2TMYLscyISOSryflNfn1X?= =?utf-8?q?FZT9G3l6QpufD76VERvTIxXpBdrEYRwaZdoVGALx0cc70F1W1VbkuBy+tvumiKqBc?= =?utf-8?q?rsMGdrH5JNaQ/+vlUjBgzKiO0TGj180FGeV8pmtofhn+/hZvzes+kSco1QU9laIz1?= =?utf-8?q?bJ4sPH5mfqiBH6PCnkJGs4XZE09HSXVoaX399pneap7Q4MBFAMNHSERdn9H/bf2vV?= =?utf-8?q?GP6FMR0O7qazuphWYNflLlP2vTPXo2p6E29rvMYr1cUBjkdYTEP16VNUsBoqkPWN7?= =?utf-8?q?Oh0/TTPyk8AIgh53zmPcb02Ib/HwA96S6v4Bl9vNku2gVVTSPi5TeHmeMigvSa2Bi?= =?utf-8?q?rtiASn7QO7E1akosd4V+ny70/cxoVoE3Fh3iqKnRhnJcKIr8eLFQ6/3d0hHiWliWj?= =?utf-8?q?8rNNcZ1HoljLME3ABbDHY3OEPZoNdJFWhD5NDYXFXTc+mZPN8My23hWHyeqakbNwg?= =?utf-8?q?z8/jS6eYwUK1RNVeh6ab+rB+cXi2Z0nFfHUsniF8DH7y/I+JyQyvCTiE9Sh4sXALm?= =?utf-8?q?/CazewKK2n7HnqhHcAXianeuCbUh0BJ5JdLjRWiYpUtan3TzvfyBDyJ6r4o47V4L1?= =?utf-8?q?2HPwWCsUy6Eovx6QlDSz9N371Jc3LujsUK4U+hbeyg6U16geb+UR6zlBOmnXGA1qu?= =?utf-8?q?M/e5nNJBhIXVpz3Naq035Ns18Sjh/0mJfwJllA/xiZ3YS9fhZ1vkXc0G5++ArZZ2W?= =?utf-8?q?ZbmaOTDIk15fmr6DBZYBqeNidtoj09pelMkZujDlSlaxPcjiCefhpldw34cg3yFqv?= =?utf-8?q?EeVgUo/prG7OoDgnWtTPGje5GTK5bYgYziOu/d4pJ+GrrGFp4hrg6Im4SfxO7SjYp?= =?utf-8?q?xtYvNybN2gTbpUZS7FQc3SGYClUn+toCk4vydQj1FRLrflAmzXtHaj7DJUEKeJ3XT?= =?utf-8?q?prjqbyHT1K5NBHJfggfRcrvXUgKtd+/xL6c5UnWxqf8sc44MgB1Dc9Sc/fMduITC6?= =?utf-8?q?fnpC2z5EJ4wMHSlESCU+6SOjmZowZrUC3b7QLNOvH+qX4a7qUe6q2o/4wXzs+heVN?= =?utf-8?q?5HWKBgSpuFs/+ZOwAoUnvjw2mWy6F98LjY7L1HLUyqmqSMUEPrhQSVw9HBfIzEEjc?= =?utf-8?q?iTVdPcjUok1bCRr2JWpmUCTvX+m18LG1r/Ir4bMO1fgjxyCjS5HYZ4=3D?= 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:64aa7808-outbound-1.mta.getcheckrecipient.com; CAT:NONE; SFS:(13230040)(36860700013)(82310400026)(1800799024)(35042699022)(376014)(14060799003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2025 13:04:53.3532 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 31cc8d99-50ed-4b3c-5a39-08dd445359b2 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: AM2PEPF0001C70C.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5715 X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org gcc/ChangeLog: * attribs.cc (make_attribute): New function overload. * attribs.h (make_attribute): New function overload. --- gcc/attribs.cc | 19 ++++++++++++++++++- gcc/attribs.h | 1 + 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/gcc/attribs.cc b/gcc/attribs.cc index 5cf45491ada..cb25845715d 100644 --- a/gcc/attribs.cc +++ b/gcc/attribs.cc @@ -1090,7 +1090,24 @@ make_attribute (const char *name, const char *arg_name, tree chain) return attr; } - +/* Makes a function attribute of the form NAME (ARG_NAME) and chains + it to CHAIN. */ + +tree +make_attribute (string_slice name, string_slice arg_name, tree chain) +{ + tree attr_name; + tree attr_arg_name; + tree attr_args; + tree attr; + + attr_name = get_identifier_with_length (name.begin (), name.size ()); + attr_arg_name = build_string (arg_name.size (), arg_name.begin ()); + attr_args = tree_cons (NULL_TREE, attr_arg_name, NULL_TREE); + attr = tree_cons (attr_name, attr_args, chain); + return attr; +} + /* Common functions used for target clone support. */ /* Comparator function to be used in qsort routine to sort attribute diff --git a/gcc/attribs.h b/gcc/attribs.h index 4b946390f76..e7d592c5b41 100644 --- a/gcc/attribs.h +++ b/gcc/attribs.h @@ -46,6 +46,7 @@ extern tree get_attribute_name (const_tree); extern tree get_attribute_namespace (const_tree); extern void apply_tm_attr (tree, tree); extern tree make_attribute (const char *, const char *, tree); +extern tree make_attribute (string_slice, string_slice, tree); extern bool attribute_ignored_p (tree); extern bool attribute_ignored_p (const attribute_spec *const); extern bool any_nonignored_attribute_p (tree); From patchwork Mon Feb 3 13:04:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alfie Richards X-Patchwork-Id: 105922 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 388C33858408 for ; Mon, 3 Feb 2025 13:20:00 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 388C33858408 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=r0qhRbu9; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=r0qhRbu9 X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on20613.outbound.protection.outlook.com [IPv6:2a01:111:f403:2612::613]) by sourceware.org (Postfix) with ESMTPS id 0D5073858C56 for ; Mon, 3 Feb 2025 13:05:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0D5073858C56 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 0D5073858C56 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:2612::613 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587909; cv=pass; b=mfJH6IJZbzQtqUYPdBEjHydHVDZkl7NA2cRqIL+K5xvJqTA5iKipcClg+8uCcpa9T4byphzn0PFjuh/J7i6DyLxV46dX3fVicJAd5i0dZT8r7txiBN4MN3lFm854N9ixoUKda3hqbGqFWWOk5NuWeuN+MXQqd9Io9zg3i8EnbvU= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587909; c=relaxed/simple; bh=yOOUq92Mzl5toYlI3C3XhF1PrW1Q08TMFJ54AI+S8Q8=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=gUjj6UymSm11Tpp4gzvBsTOxWMfX+X4UjeHbzWBW3h75xqsSuwfq10+Vy8C7inBsjYzItjevx4rGG7kZzlOZUeuhRtJq6bFOQkxz610bjzxuKgwbKLI9S6wb/di2RkbYdHYb/Z6xxJW7g3VFgu8HcjHCR3EN9WKROuXZ+gkOcXM= ARC-Authentication-Results: i=3; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0D5073858C56 ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=biOQms0ggy6MvdklTuogU2kzh4Y2LpGtxI9NFlIrf1qa7oXj6wpOZCFjPHEpzbGD0n8n4wIGJgbvBQHInybHtSewx/8DWDtvbByXeRG1ai01lNQVrB4jvMm9ajq+a0nIJygFiX7mV4yGZSvttv0mOQJQg2hPHCxlrIdRRECpCkhJjaXK2S8z5CJT21K9EeDuTiTAR7o012wedNTtPbYxYeRmfumPoJXStn30C12ytWou6BXX8Bi68qq57Vc43ursLHbRM+7fADUWBZhIOWSJJ/O9t36bNCEBVPoljxHnJ1Q80OBg0duNJ0FvD7v82Ad2+GvFohO2wN3hzvjcQ0+MTg== ARC-Message-Signature: i=2; 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=Q1jd0YOzKxvQzOrQ/XOSv8gGlmPP2XBBDex23mLJaEs=; b=hqXvTtzXr4YiFsQ4Q9/b9fuLzF9Jfo30bm2kCc3yklFi7WGnlXKkj/eUK/ZRlF5FvyO+XhsZziRcJj3pzi6jlHjRwzqXcAO87AwbznCmeNzlJ8ToP99Ky4Tj/h3ibPV1CRbbZO2qKnpkPHx/ShQbDqufrFdUQCtQgGZWOfPndh+eZRM3W5tdonDfIPzzhirIovXp27GcAovQ48AYtehLsM/VWNfZgp4mG8ebjosIuQ/ZLxZdYuscnzCYioGSbuG0a3gjHY2xopd3X6haXjI7Tuij9jPdrjwoV437BPk+S1hChODoD+DpXsq/HlLBOmCd6Web6e+YvntUB0LRbg+k4g== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=0 ltdi=1) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Q1jd0YOzKxvQzOrQ/XOSv8gGlmPP2XBBDex23mLJaEs=; b=r0qhRbu9IY56p9Vpa9yTD3vS6+kYqg/P+hlcaE0jskFTYmZgXDaa50/IyXEIutvopsWrMItq1EewSoZCOMN0vPjWFA/60XZwWM45gUkDIF5wAx2btPgw5OUIcegOVzB91lU87zQvSC0fzWcYscWMUDYbNzuIqqQISDt9n86gwEI= Received: from DU2PR04CA0245.eurprd04.prod.outlook.com (2603:10a6:10:28e::10) by AS8PR08MB6104.eurprd08.prod.outlook.com (2603:10a6:20b:299::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.24; Mon, 3 Feb 2025 13:05:04 +0000 Received: from DU2PEPF00028D12.eurprd03.prod.outlook.com (2603:10a6:10:28e:cafe::c) by DU2PR04CA0245.outlook.office365.com (2603:10a6:10:28e::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.24 via Frontend Transport; Mon, 3 Feb 2025 13:05:04 +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=arm.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 DU2PEPF00028D12.mail.protection.outlook.com (10.167.242.26) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:05:03 +0000 Received: ("Tessian outbound 4d4d74fe3cc9:v560"); Mon, 03 Feb 2025 13:05:03 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 1e282dba61c9f5ba X-TessianGatewayMetadata: jNRjJl6FQoPE4NOSTQoNge7zwUry2Kl++TYubk/ykvJ8IXmCgYnM66kma06cbUQ9EDl92nbv+qU1rCex0kZneSd7Np72aC4wLhBoZdkL/9jNkTiSPHnp481yTdEXoCGOZdHoD6Ky/pjRxC+9uNGU6ukNbnQ3IpVi9e4oMb5y9kk= X-CR-MTA-TID: 64aa7808 Received: from L0e1fb950100c.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id ECBC5936-15A2-4F8B-AA11-D7F08875A9BC.1; Mon, 03 Feb 2025 13:04:52 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id L0e1fb950100c.2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Mon, 03 Feb 2025 13:04:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vlXVXQERe2JLeunNnDT7KUsyluSi+Gj/afeGhqcsxjzILC2ob/YeD3bJo2kF3FcsjsPv06nicFt1rMOBMrpev2KfgI3MCM05k6v/voeb6rJWM5X5VzBMQu64OCT2pgi2sDyyOCX90LgJ0GjBD2mp6cK1B8TgxEGLVFNYn4Fq2h/H79ui2fFFx/jhnzpHCF4Ep07Bz8ziC1aeW12HHKiRiwxGtGCpF8VGf7JducReAEuRvtkMkgFo8yuTN3h5qV08vEQ28Rp/M5pAUsazXOzjk5SUtpiEK1zFa1aTDzy2OYeTQnMyuf5gLZ04zBh8+zLxB9wkQFK5LMZ5ygdIGvZT7Q== 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=Q1jd0YOzKxvQzOrQ/XOSv8gGlmPP2XBBDex23mLJaEs=; b=Z7v5zBuBQN4yOHn7wvwOsWBVH9t2tiQiw3MVsAhSlvEGhsbtLolXKbYMVm2ebTDvg5CcOA15/DnlY3NNMnfdnzsNaUcpk1Skzmz3ud81TlzSHAGzoyivQ2tFQ04u4BTiDLa+fdQCCRSj5UfUc14uvxWTtAXHDRtwWV62E0AbC/2xJHAjkSA1fRSqhnObOtk3GrhnN3hU9vaCM80sa7+yu4uZgH7TLbjXLy+YuavAK2IECMRc7db/VD8AIeAKIW5YVIeNZ6UF753Yr3m1CyXeSImKWSGEllK+dplKaExpaIKoXKDkFiNpXN348t+Lk3hQtXhpbxldNcXPEBY/JNP3Ag== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 172.205.89.229) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Q1jd0YOzKxvQzOrQ/XOSv8gGlmPP2XBBDex23mLJaEs=; b=r0qhRbu9IY56p9Vpa9yTD3vS6+kYqg/P+hlcaE0jskFTYmZgXDaa50/IyXEIutvopsWrMItq1EewSoZCOMN0vPjWFA/60XZwWM45gUkDIF5wAx2btPgw5OUIcegOVzB91lU87zQvSC0fzWcYscWMUDYbNzuIqqQISDt9n86gwEI= Received: from DB8P191CA0006.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:130::16) by VI1PR08MB5310.eurprd08.prod.outlook.com (2603:10a6:803:135::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.25; Mon, 3 Feb 2025 13:04:49 +0000 Received: from DU2PEPF00028CFD.eurprd03.prod.outlook.com (2603:10a6:10:130:cafe::3b) by DB8P191CA0006.outlook.office365.com (2603:10a6:10:130::16) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.25 via Frontend Transport; Mon, 3 Feb 2025 13:04:49 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=arm.com; Received-SPF: Fail (protection.outlook.com: domain of arm.com does not designate 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; Received: from nebula.arm.com (172.205.89.229) by DU2PEPF00028CFD.mail.protection.outlook.com (10.167.242.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:04:48 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX05.Arm.com (10.240.25.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:30 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:29 +0000 Received: from ip-10-248-139-135.eu-west-1.compute.internal (10.252.78.54) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 3 Feb 2025 13:04:28 +0000 From: Alfie Richards To: CC: , , , , , , , Alfie Richards Subject: [PATCH v1 08/16] Add get_clone_versions function. Date: Mon, 3 Feb 2025 13:04:13 +0000 Message-ID: <20250203130421.2192732-10-alfie.richards@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250203130421.2192732-1-alfie.richards@arm.com> References: <20250203130421.2192732-1-alfie.richards@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DU2PEPF00028CFD:EE_|VI1PR08MB5310:EE_|DU2PEPF00028D12:EE_|AS8PR08MB6104:EE_ X-MS-Office365-Filtering-Correlation-Id: 0cbe0d0a-5110-4090-c827-08dd44535fe6 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|1800799024|376014|36860700013|82310400026; X-Microsoft-Antispam-Message-Info-Original: l/xNC81fABRFvhW2nhzwV1akot9I6t0YxD9sa+DhsIzVAyrjaNCfTxxg/3drInwPeisC4fvngd/7+JKorDsGf6ie0KujTEiYExQoCS/7zFvzvV7VKS/MNynpQtO3XFKIstnXlOOnZrNCH8I5BOsuOA1R8l9JYVdlOR4BxUlxWWURwI+uD2QKndla4Djl4Gyu3bxU9+jYZlwvaPDznkIpAM59ae1QQh40JR99pdmCKDT9dJbnFJ0YuCqAhlkz/iMlRS1Mo0qOSZiB+M9t9vCEWE/IjC16eCK3LzpqY/gFOjJU+klceR0qWGrmKynbNAO2zVSUFMQg3PDPbE9UzGKksr94bKUbAcPhNBmoegwmI+VfJj+XfgyZuJQgbZQJYdcxI91RTKcpAXFoWx7PI6GV/ug0yT2+McBfsY4gkamwAV3/r4hdCb9/i5olnaZev0QW5QHBIuT5ah2HcjxcSrQr4hyB7acGhxJwKIQuxD8/jeio/hmTzy3GqACLHenJ15tiae2i0XtQtrF1WQN/KJCS3ltR/cbtOipJqSuzhmjiEg5782rLSVqRM8MaNRcya4Ue2FF0K2E/M7ZAmtevp+qieQ2UD2SglMjzxBe7RGZJdfTh4iHRCaEYh0SdhWZhMcetWvhwFI9ThWr6eg4hg73wQLPo+p3dwxnpv2h3VuuOV4Rvrj0UaHeARLvgMyOxFesN7Kf3v12/HG4l9dPOdoxwgyqzW/EdKUX7cT4uw28crSiwIQSEZiOymy9ctlBW27LT0F/OIjqCFWWJyeumc40SOulfZJfJz3eHsb8lpYTYWNs7zZU0RlrAcibAnA0per6U9Hpyl/nDWrSJlFv/yuCEelAeAlEdZf+pN7vdXuQMxr4iPfIorQXfN1ArsJbXcd0Eb20W4Jf1CABb7dhp1Eh2C+9qwCs7lgwT70Bf+bFds5oM5lUD1S+3enJNAJEvFe6pwaAq/dcsi5SCUOG8IwahrPo3ZFgd+hr/jegkMv7IFYsHxCVYTfNaNK5cp45j3bdMwvOxXkXIrZGe/vaOUVtdytkUMcdxDUted88fBxBJ9Ed5uFSROsZq3f3qGvdWE7OAfKwLNT8GgxjhFRcsYCuYidNc0+4kDFHcRHfZ29S0dGw1iPZ6QFPnbtSLXhnQgAokDDwaImjgCnHyo1zty7pMjbv9yaeV1Zzyl4Kg4BDVh5oSTMCgezVIn+n0MBrziGRHGJioqzKMK6nswywyMjAnl+VDC8s2fud0nc92eDz1W71Af4wz3Go7T+Ng2yKLP9cQfKvcAXr+6/p++uQVgyM8XE8SMplJqpogaN5sAEY8IpfoMpvSKOXhqeKY6BxDI5pPQhPITbQrsrFw1AdN5vhNemXO62Fe+I9UYHxuUHCp11jvVDQYZjFhuXtl7oagDVJSBBNSx7iUSrztmEvpQ+IFOu0rwulhJgdgBkvHEXpl5Ss9WRYtSSpk/aWFoYP8C2ebJDvkH8saKzokNekptGsbPM4Jp3altLA87gxkNrVRtV0= X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB5310 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:10:130::16]; domain=DB8P191CA0006.EURP191.PROD.OUTLOOK.COM X-MS-Exchange-Transport-CrossTenantHeadersStripped: DU2PEPF00028D12.eurprd03.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 09278ceb-3b85-4d82-635b-08dd445356e7 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|82310400026|35042699022|36860700013|1800799024|14060799003; X-Microsoft-Antispam-Message-Info: =?utf-8?q?ftWfKjfCk2aNn5xGBiAH8shJBxCeMB/?= =?utf-8?q?E8bIkrQGfCalhkecSL+I3aoJxO3mRydy/wvNgdpmJDLEmQPtrG3F3G/f3gFTPKru2?= =?utf-8?q?CSqMxnETpK9/7aq9/xnT+heyJfUk5FwUTeWGIvuBSHcjH6N4a89JI6eT023fVfF65?= =?utf-8?q?nw7TAshrBPOafvKBKgyRl0bjQM8wxQO4sCZb3mnDraa60zi5YjEajlZ3QEq2Goaln?= =?utf-8?q?WfhLMnY51BlA/6pJpXRrs5LlfhhafwFstKdHP5sH3sjgGg+OY3ICU2I0zReDhFI6K?= =?utf-8?q?5rZz01+90TEzCJNc9Gk2Yaq0BwoT/fZzLsO3BchzpwTdo19g38AOlr87xidoS+Fs/?= =?utf-8?q?it9rDNR6SzY6i0xguV/YOn8Ind2X2LHmM7IAbfuxOVJU8kwhvCLTfsnsHy6yXvF/q?= =?utf-8?q?j0TFV4gYfGDUsA59vek6hxSDm/0hwPKWnfCaK+5H2vGq6rqAZjsi16Kcd4/ZCXlZs?= =?utf-8?q?RJBWnikK3MJjba2Rn43QNzmwq4SzucXEXB24ziZ1w8YKJ78pLG/IjzZkhLZiCd+fS?= =?utf-8?q?hbY8W+w/NnAc8LYE0SynWXA8oWkglbnuoOJfCjHzUA8VGiwpM2Bk+Sb6aPimlHZnx?= =?utf-8?q?NFJt/TAG5gtAphf2S7l4q/bQ+6LfZjjHJ8r1pME2PcoV9aBpso4c67UwxOYYcR3w/?= =?utf-8?q?eEks4Qs3d58sNWa0YADyBbSH333kAs+6QtDg+HYJpKV8ZvylM0GTYxxzZx3hMlcWn?= =?utf-8?q?All8NQo5AM3Ngmb69aW+bKsoxZJksCIQvYAhE/3a0rKCLBhAzvZl/c9Bxosmt34Lz?= =?utf-8?q?ZlQINuq1SFoZTqNy/iPGyCOXkMJjQ6PcRfEuLQ3TZ428Vp1skFxzA/ZRPPQLRsIYI?= =?utf-8?q?p3HV8O3+TtGFLearPYt/naynMR+YcLFn/HCDyx4Sl8iB1I2X7i4EFDO3CbL1QIFwT?= =?utf-8?q?yMTmRHGz4PtS/yXOdye8mzXuZIWN+KcEwAIF2jXVotao+NTibVwUHR193zOhujtho?= =?utf-8?q?eJJKmYZXz03G6p/hGJgDbmSSasukFU2rISvNZ56FPmnY+975rbF4oW1mQayuzzLV8?= =?utf-8?q?9az3SrJ6C1QjjjK+aL+xNwBbIk3RDAWJxAeDwhMorZ4qqyLnFkLmbYO547cjpJJnS?= =?utf-8?q?BuIeYPtrolQveZRkFb/tHgNH2VjqkCrG6w5oerGY7cox0dTe8gQlAgtVcJO/W+tV2?= =?utf-8?q?5arTYBWVrcBhVYTcW/WEFLTWgwSDmJOApcyBANFDl83BaFP0bPgmqtaAtooNBUX6F?= =?utf-8?q?YPZw5SXdY1EI1V6Hx0m+P/C4d4RFHtRRcyMuk6tBCK0l85qD8JdL0yr5RTi0Y263A?= =?utf-8?q?DPLvG9V2wZB8WaBfO81I6yTDaXW/FOUWwCS7H5Rp7lHSgMv6t/D0keBZsh0rx/OoR?= =?utf-8?q?eAO+w23Rj5eF3NansWvCtTv7Pi6OVfwvuucWSfSDb1JXJyiaOPIK4efJ9r8+lMfrd?= =?utf-8?q?V4TnJDDlh3kACascnOSuDdMwXFmStvWzuYuduoB7uDDlvFuGRhKFVY=3D?= 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:64aa7808-outbound-1.mta.getcheckrecipient.com; CAT:NONE; SFS:(13230040)(376014)(82310400026)(35042699022)(36860700013)(1800799024)(14060799003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2025 13:05:03.8256 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0cbe0d0a-5110-4090-c827-08dd44535fe6 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: DU2PEPF00028D12.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6104 X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org This is a reimplementation of get_target_clone_attr_len, get_attr_str, and separate_attrs using string_slice and auto_vec to make memory management and use simpler. gcc/c-family/ChangeLog: * c-attribs.cc (handle_target_clones_attribute): Change to use get_clone_versions. gcc/ChangeLog: * tree.cc (get_clone_versions): New function. (get_clone_attr_versions): New function. * tree.h (get_clone_versions): New function. (get_clone_attr_versions): New function. --- gcc/c-family/c-attribs.cc | 2 +- gcc/tree.cc | 40 +++++++++++++++++++++++++++++++++++++++ gcc/tree.h | 5 +++++ 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/gcc/c-family/c-attribs.cc b/gcc/c-family/c-attribs.cc index f3181e7b57c..642d724f6c6 100644 --- a/gcc/c-family/c-attribs.cc +++ b/gcc/c-family/c-attribs.cc @@ -6129,7 +6129,7 @@ handle_target_clones_attribute (tree *node, tree name, tree ARG_UNUSED (args), } } - if (get_target_clone_attr_len (args) == -1) + if (get_clone_attr_versions (args).length () == 1) { warning (OPT_Wattributes, "single % attribute is ignored"); diff --git a/gcc/tree.cc b/gcc/tree.cc index 05f679edc09..346522d01c0 100644 --- a/gcc/tree.cc +++ b/gcc/tree.cc @@ -15299,6 +15299,46 @@ get_target_clone_attr_len (tree arglist) return str_len_sum; } +/* Returns an auto_vec of string_slices containing the version strings from + ARGLIST. DEFAULT_COUNT is incremented for each default version found. */ + +auto_vec +get_clone_attr_versions (const tree arglist, int *default_count) +{ + gcc_assert (TREE_CODE (arglist) == TREE_LIST); + auto_vec versions; + + static const char separator_str[] = {TARGET_CLONES_ATTR_SEPARATOR, 0}; + string_slice separators = string_slice (separator_str); + + for (tree arg = arglist; arg; arg = TREE_CHAIN (arg)) + { + string_slice str = string_slice (TREE_STRING_POINTER (TREE_VALUE (arg))); + for (string_slice attr = string_slice::strtok (&str, separators); + attr.is_valid (); attr = string_slice::strtok (&str, separators)) + { + attr = attr.strip (); + if (attr == string_slice ("default") && default_count) + (*default_count)++; + versions.safe_push (attr); + } + } + return versions; +} + +/* Returns an auto_vec of string_slices containing the version strings from + the target_clone attribute from DECL. DEFAULT_COUNT is incremented for each + default version found. */ +auto_vec +get_clone_versions (const tree decl, int *default_count) +{ + tree attr = lookup_attribute ("target_clones", DECL_ATTRIBUTES (decl)); + if (!attr) + return auto_vec (); + tree arglist = TREE_VALUE (attr); + return get_clone_attr_versions (arglist, default_count); +} + void tree_cc_finalize (void) { diff --git a/gcc/tree.h b/gcc/tree.h index 21f3cd5525c..aea1cf078a0 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-core.h" #include "options.h" +#include "vec.h" /* Convert a target-independent built-in function code to a combined_fn. */ @@ -7035,5 +7036,9 @@ extern unsigned fndecl_dealloc_argno (tree); extern tree get_attr_nonstring_decl (tree, tree * = NULL); extern int get_target_clone_attr_len (tree); +auto_vec +get_clone_versions (const tree, int * = NULL); +auto_vec +get_clone_attr_versions (const tree, int * = NULL); #endif /* GCC_TREE_H */ From patchwork Mon Feb 3 13:04:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alfie Richards X-Patchwork-Id: 105914 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2472F385841C for ; Mon, 3 Feb 2025 13:09:43 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2472F385841C Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=DwHWale4; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=DwHWale4 X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazlp170110003.outbound.protection.outlook.com [IPv6:2a01:111:f403:c201::3]) by sourceware.org (Postfix) with ESMTPS id C30003858C33 for ; Mon, 3 Feb 2025 13:05:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C30003858C33 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C30003858C33 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c201::3 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587913; cv=pass; b=o57h9KPJM+liQDsWN61IHJa+yudxHU5yi8HqFNXf2A0R63cDTH88u12w6e9X5npDXQ/Qhym5EQhTRKaz2gMAYLDZuKoQc2APYSsYDbP/rozoN5u00X4q6SNVu6i5MmFrXYpUsFvu1QkGiT/zTHosjCoSmJ7JxddEdjq1/hikBNk= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587913; c=relaxed/simple; bh=v0zFUBtI8zHFUsjyoYil+J7F7dr85d1KGcXnN303YtQ=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=EJnuzxh/i1L2Xk4kMJK+qzBtKVtGkjbORL3eUKdGA6VznTgPg3cV5xalC/pmr3Po4HMhucCx2qRMaKyS0TXxyLs3cPpnMNNt2e/egwve/eD9Ri4d8eX/lzQZ4oFnJuEwRggYJ8HOyZoQNsQJwDnjbk3u1a800HiXS9tJ7ub9jbk= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=W2nlgakHsj5JaLB3Q7AVMD2SyX5o8grT9EvLbyL11RwHavKbpt6YPSwuU2wYYEbx1A3WWOrDHEvJ1BPq0n7S+6gqRAgxGluYjDZR4Dvuoe0AVRBoBlwxEMYr0vcu2WVzzcgw4dJNWw2fDtPGcFjfOgbSuB3DIwI2dEVRLa0ZQzPsVTPzbDeYwgO2b24Ldw6sTv3qVqvWP028uX5Z3/6oUnU2hB/zj6rxZCP24Bf72E5nYS3gws6PGSp7pmxI4bTnau+1EM9EL3gERgHOh6LQm+b4kmzQc8b4y0MPP4gXaZGah7Lj04QVux1gK1xEyjNO0ta2fc1eQyrz2nPytIL4Xg== ARC-Message-Signature: i=2; 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=dlKmq16JHIS8oGgrOL3F8vNgqth9KdqIIoK8eIlOoL4=; b=bAwlbvW2JH1Pw9IxgYFgFzcMjLif+H0NT9d3hnpdzBe0Paa9Wp9Nj6sjGGWSbL3mDi3OtGnws9Y0uKp4HEIGjcNKePd2YuUoVPxkNHneYx3lmAQWIDPWG6l6lqC2558SNidsWIU6UmsTL+SOCRBNe9vfEEJ7ySEsLLgy36BW8qVsBwapH8z9V/uaz/RQvuHASpMaZpK8gv18FYUVeXv72RRPQDwp9bzrjtAhLFuLOQo/E5vbj5SAHiY25XI+QwgiGlB5HbQ73h66KyL2YZ2hTqgNKvqMK4x+TI5RPkwxhOFR+ODnw8B0wgIbJ8KUdLG06VYtjL/tjO3X5e1A3/pYcg== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=0 ltdi=1) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dlKmq16JHIS8oGgrOL3F8vNgqth9KdqIIoK8eIlOoL4=; b=DwHWale46ryk13A495M/YbVp/C0s5SN+H+zriiLs7rhSNi4e/PR5XFBdezVRX1Qo4nHvPIUZM5ETzjshSQClQt1DaQX0wd4vLEDNpGvHX9I2QjY/Mp3SxpALLGdzGXHwvkukVVvUE5DtrFre+7aIqiWtjMQldetPvPwSG78X8fE= Received: from DBBPR09CA0009.eurprd09.prod.outlook.com (2603:10a6:10:c0::21) by DB9PR08MB9539.eurprd08.prod.outlook.com (2603:10a6:10:453::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.23; Mon, 3 Feb 2025 13:05:05 +0000 Received: from DU6PEPF0000A7E1.eurprd02.prod.outlook.com (2603:10a6:10:c0:cafe::bc) by DBBPR09CA0009.outlook.office365.com (2603:10a6:10:c0::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.25 via Frontend Transport; Mon, 3 Feb 2025 13:05:05 +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=arm.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 DU6PEPF0000A7E1.mail.protection.outlook.com (10.167.8.40) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:05:04 +0000 Received: ("Tessian outbound 72f36a054dd6:v560"); Mon, 03 Feb 2025 13:05:04 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 945edc90a95e1edf X-TessianGatewayMetadata: hsxzybSGw0fSwr89IYGdfJgEKZ0PFUv1ubLPrA4T3Bc+Fl/lEemk1t7bG208stdmto+3fLvo+w2JGnzDaib4elAY/pHmjBnBPUZcvgBcFtQhLyhksO/ZoL72TKU1OAFXYpfm3wXdj3PxIeKzDIP8ocynFq4r8jPtF5FcUUmgEcw= X-CR-MTA-TID: 64aa7808 Received: from L39a5bb49b403.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 4C42E35C-BF22-4F36-B1EB-037E1B200D41.1; Mon, 03 Feb 2025 13:04:52 +0000 Received: from DB3PR0202CU003.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id L39a5bb49b403.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Mon, 03 Feb 2025 13:04:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hxnN94XCXY9yODtKqzrp0g8i+JYlSL/hqfwdrwjdp1zeq7wUnbZsyl5qTKAVjVycQ7Z7vht2FH12thN7RiWUr8qRPykjU9pvSSiCdwALtTP7FAN9eGvUv/ynqicJ6IZOhlSQStMau90ZOyCTonlU5+MWmAiVCbx3CwfZhEdFzarAN11+eYwzzjvAjZAEuPNz3gAkAtrR6M6q27u3e5WF8RKqo3pTfFnwtpBt90I3rUwE4jekBV4p7hiHhQB+Hdhru0TBzmua7r0Vn2/HnRJdS6lnxY32I9fX/wuD+c6LKC7RivXaAr+oglvfvBg3jbKZeuTKeI6K9D2I86IlvCpFkg== 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=dlKmq16JHIS8oGgrOL3F8vNgqth9KdqIIoK8eIlOoL4=; b=llmFKh7Zl1lq4uQ/BKO70DnGA4tu58Vc306agZrzx6ud04Yzknlaj5JeYb7wHfLNALDIz1CS3V0HHouetLWorxgC62onnI8gpJcRPlSBacisc4KvHdHmPTOjf+/y5NjUB2JDbnxMgueC6iRu4j9hnwOcP7BWnb3+QVH1dCue0jxVyvM29HtwLjsPP88hzI8HPnmnwWJxy05W/oXuyZjnkx5cJtmu8ZdV8UibmtjD0pTeXfpBfnuq0XQnWV/GJNWFIOLU24lXMoQzKlphwra1nr0R4xU0HyTm0nI/DYbtM04ksd6xY7Ki5PRTvCwIVECXs7UkL/lz+9/QSQbhNBFFhw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 172.205.89.229) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dlKmq16JHIS8oGgrOL3F8vNgqth9KdqIIoK8eIlOoL4=; b=DwHWale46ryk13A495M/YbVp/C0s5SN+H+zriiLs7rhSNi4e/PR5XFBdezVRX1Qo4nHvPIUZM5ETzjshSQClQt1DaQX0wd4vLEDNpGvHX9I2QjY/Mp3SxpALLGdzGXHwvkukVVvUE5DtrFre+7aIqiWtjMQldetPvPwSG78X8fE= Received: from DB8P191CA0011.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:130::21) by PAVPR08MB9746.eurprd08.prod.outlook.com (2603:10a6:102:31d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.24; Mon, 3 Feb 2025 13:04:50 +0000 Received: from DU2PEPF00028CFD.eurprd03.prod.outlook.com (2603:10a6:10:130:cafe::fd) by DB8P191CA0011.outlook.office365.com (2603:10a6:10:130::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.25 via Frontend Transport; Mon, 3 Feb 2025 13:04:50 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=arm.com; Received-SPF: Fail (protection.outlook.com: domain of arm.com does not designate 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; Received: from nebula.arm.com (172.205.89.229) by DU2PEPF00028CFD.mail.protection.outlook.com (10.167.242.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:04:50 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX05.Arm.com (10.240.25.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:30 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:29 +0000 Received: from ip-10-248-139-135.eu-west-1.compute.internal (10.252.78.54) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 3 Feb 2025 13:04:29 +0000 From: Alfie Richards To: CC: , , , , , , , Alfie Richards Subject: [PATCH v1 09/16] Add assembler_name to cgraph_function_version_info. Date: Mon, 3 Feb 2025 13:04:14 +0000 Message-ID: <20250203130421.2192732-11-alfie.richards@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250203130421.2192732-1-alfie.richards@arm.com> References: <20250203130421.2192732-1-alfie.richards@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DU2PEPF00028CFD:EE_|PAVPR08MB9746:EE_|DU6PEPF0000A7E1:EE_|DB9PR08MB9539:EE_ X-MS-Office365-Filtering-Correlation-Id: 21b1d230-6c71-40f4-2800-08dd445360a4 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|1800799024|36860700013|376014|82310400026; X-Microsoft-Antispam-Message-Info-Original: QdV09i8QTBxh2T4cioBH/pFFcaC9QxfiqEcpi56fnsyPczlanbDGcjI6+eYuqp4XTkxwLLbVLOoICEe7lKprzVxQvP53sUYlBimVNac3RynuGR5yicf0MNOcIuLghU0xTKyNdg0jQcVJuOkhIYOsfn4WrvMgp7dk5luKZuHA4RcmfopDnIexfAe5uQWps3Uxi5ITjU4Z/hw1HdCNT/4wSkobhAOtHDF/hHxb8zc8XH+NnMPcPNtrrEhdURc+o7KIwJ3ANVV30fNtTNt2x2yxETpCTNIso5fPzVA8ihe+9jvXE+ntroafc18GYZKjyzpQ6jP44ybTTOTH9IrILME929e/heuQhND7u7hDb4Ed32nPaa2rsGz6SZtbIPn1GrIJwLhx/iUA/5YBszsIqws0sqwLTY6aMoK3cKWZGvE82pGw1u9cXxGiqVh7aJvZO8QFemATU+rL7TpUiW/C9eo9E0nAx3R78rvErrBzbgn0mFaUcp1UOli5ZZdbYJgDuZ+cXDaUiuqtPlpgCs/rA/zxMj6C5LF3FUpX30In6RE/W9kTfXJ2HNfWN33lyrH8xaVzAuIxBuuF59x0UHwb1OQCaEmdY8B4wRBzMcNpK6+O9ewJ3bsPVf5tNQT8VW4pHPmsFTrA7MJf/Ja48O9PWPbjuEBEdMPiNqlu28Ml7SWPbuHjh/yQNr+e0Zvqa0Qg9IlVo3yvgH4GeV5ky+i1qKMe3ZMtL1I5tIR/py0JzoYCFUcqzpUxk7//aU26hIF/yD15x/7n1v2MvhYMS6iPcedVxbQP8abbmlGKU7obv2PX94aavNA/rE+KZthGrOyKZgHxhpxqeYnSmn2fJtyPWQI+GjhxTJtGxWh0SubJ86CuiGb2xii6Le4zh0/WsyZiYwUpoELDY0C/ffSL0SSG1ezPTuLyAidsBS3LPIp409eygzllZ57Yh6N4tPQUdlv3avizMXsyG905tBG6EE07Vjw5MNXog9Ua9sjH2c7TQJjFmlSAr3mn5+jKl7qz1UpTkI34XdPW5zezBwDvZv4+AZmP1Uzw4Td3jbs3KAXSZ2p6jGAlM/eIOkYZBBTYRnsOGSbZE9W/voJhZmTsO7xFeTUrUsRWQVVGOvOzL12K7bM2zIOD9GsOfhctevJktm1fNAbbZEDiQSTB0CP1NRGtmzQthEw3tGbYON+xRnb4S5/IXq+OsBExP/I1h/PdFrQbhW+iGT1KpUF6ugtwrAOHnLvnCDGtaCSEQt/KZRC1Jgc0Eul2btHT0JsnzevoAog0/BNSksNqbz5z9TtztD2nU7Q6Y6/JHBYG0GFwKgW3X6GIVHQkaLAUNPSHkm3adPd31hAHMnCJuEmUtQp+QvBMxKLwJqeTw/Pi0juZQvDFrVRyObvMRdk13m9mVNThzwa/5oV9NhJsi+VkMfJfM9zmsiFPcFCa3MegUuRh7tmogNRY3ewttmMwon5mIDMJDfYfGGo9dgXo6WcYfXuhc3AO3zN5n5hJCWJR5DD3UPCBGuMgymY= X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB9746 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:10:130::21]; domain=DB8P191CA0011.EURP191.PROD.OUTLOOK.COM X-MS-Exchange-Transport-CrossTenantHeadersStripped: DU6PEPF0000A7E1.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: b3ca81ad-f59c-4011-30ef-08dd445357d8 X-Microsoft-Antispam: BCL:0; ARA:13230040|82310400026|35042699022|36860700013|1800799024|14060799003|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?WHHHoWB8gY1JMuXCAGKTQag60nunEBM?= =?utf-8?q?0oiNohZgpcdAyAGlKpBQC9Vw0myuDmc25Jn2RW0msljLtCyJdFZ1Qa9iN95i6zNa6?= =?utf-8?q?5rkT8s6QtEEaN7ajVRSnzdSDbaEloAiDUg/BVDsPJ4MWo+BRH39MngT1FMDaCyBB5?= =?utf-8?q?A7n1QtN4QFj94+V6sCcdPKsRYVvP+Fn+ceiGVjyBxYtXlW7ZdxQxvGML6suV3SQ+k?= =?utf-8?q?1dZl+21UN+fFzSAOYfkLHJ5ITWZVhi7DglfUr/lR5k/3et0mK6BllqsgwLyFGwOoE?= =?utf-8?q?D/nZ2TYjN0XBmKnfJZmnyrjU+sS98ECate9lQWau/+J3DrF02VDE5nf/+3Y67pt6+?= =?utf-8?q?T5gvZCF3ypIvPh8w4WJPyZDlolk+ZsUJ6bvlnYYPczHD6mQZ+CvYAz63CgGnEnwpd?= =?utf-8?q?08h5GK4qUK5+Io7hyxil4isAxmIsNAgmqzeVd5RqrnyTbc6UJi5h+Q1adeMH/ZukZ?= =?utf-8?q?3dkeMMtcPR4VsKEX7kOxLsAebOYlSZ4p0NR2XJlLc4uZcrk78rnzKlKHY4oS2666W?= =?utf-8?q?ecJZi2Ztz3ban5bKQ21y8gs/xAsLL5WIAmzsuJi257dqX53rAbzBeHLcSGZ0rJx96?= =?utf-8?q?oPQ15UJ0vRM/EVOdFzn5peAxul7rq1vDCm35ueBk4YlN52+KFe/LEo3QhoVl7hoBj?= =?utf-8?q?/PJ7EtcbaGj4b+ICL3O5JQ4+XoMsKOaaBqCfdbq18a43FOCG+Wj9EoW139EtB/iVl?= =?utf-8?q?spu2q6kvIDkcM1j1Npc/QfnI2DJqiX9SZapBr0OiQc5OVVfd9CfKAhaEOfDVt/o1y?= =?utf-8?q?1E3CFaRQvDFtOdSPLmefY8I8J+ph2aeLFz7A5gt0V2Fukpg+K8CWTcyR8+yvqhuNv?= =?utf-8?q?XYFny7DKBFWt3CWm6qg5ZkYWMJkb/XGJIAQ07KkOnAhigsTzlO+zjKaullO21y+02?= =?utf-8?q?9auUhRZlX9smHcC1T6NwERGRaVkzha9Q/6Rf+J5mp05f1x1xXvZip2hAlZQnOmTuc?= =?utf-8?q?ja9ioRpq33CVUhHwGUcjgN4IGWp4Kf0AWY+52pyCFq9UIykw4SoMJnPp+GdnclM17?= =?utf-8?q?9JCdLpTTk1TP5lJZI3ny8fyrAiV64oPc3p6FRkRMSVDGSdRPOZwEyL3uN6jCEZFi3?= =?utf-8?q?NTscjyX5nho7medJy6nRtKAxd8ACd0o4HB9nIwy1SlYR16pQVJTm9PKOPez6Mi1Iu?= =?utf-8?q?Vta/NaGqWW97vtqgn/nIPIGQxr2JxzSyIWN9hqFaWV/BxEovv9d2NzUz7GY3t/dSP?= =?utf-8?q?IrjuZsfW015xhyPhYnmwIocz6xwUeRIfq1IzJWQMg8AGe1rDn4pU3+vz0voE27sIh?= =?utf-8?q?AX3lhVbH8GYF05CsoCSSH21IMmmRDwA1ZGYWYzpGkbsu2Gnr41Q701MOohPF0ldt3?= =?utf-8?q?8oGFXEoh/3rd4gielbsv56RynP7qrf6rVORYYWqTJS/DWa0vb/BA10vG1lGZ0jhht?= =?utf-8?q?S5+zCB8Zm4mmcTNHCKyjEhfidFO29E+KNHZTwsSiyRu9rUr9bP5WyA=3D?= 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:64aa7808-outbound-1.mta.getcheckrecipient.com; CAT:NONE; SFS:(13230040)(82310400026)(35042699022)(36860700013)(1800799024)(14060799003)(376014); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2025 13:05:04.9729 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 21b1d230-6c71-40f4-2800-08dd445360a4 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: DU6PEPF0000A7E1.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9539 X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org This adds the assembler_name member to cgraph_function_version_info to store the base assembler name for the function to be mangled. This is used in later patches for refactoring FMV mangling. gcc/c/ChangeLog: * c-decl.cc (start_decl): Record assembler_name. (start_function): Record assembler_name. gcc/ChangeLog: * cgraph.cc (cgraph_node::record_function_versions): Record assembler_name. * cgraph.h (struct cgraph_function_version_info): Add assembler_name. gcc/cp/ChangeLog: * decl.cc (maybe_mark_function_versioned): Record assember_name. (start_decl): Record assembler_name. (start_preparsed_function): Record assembler_name. --- gcc/c/c-decl.cc | 20 ++++++++++++++++++++ gcc/cgraph.cc | 10 ++++++++-- gcc/cgraph.h | 3 +++ gcc/cp/decl.cc | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 65 insertions(+), 2 deletions(-) diff --git a/gcc/c/c-decl.cc b/gcc/c/c-decl.cc index 0dcbae9b26f..daa19f360e6 100644 --- a/gcc/c/c-decl.cc +++ b/gcc/c/c-decl.cc @@ -5762,6 +5762,16 @@ start_decl (struct c_declarator *declarator, struct c_declspecs *declspecs, && VAR_OR_FUNCTION_DECL_P (decl)) objc_check_global_decl (decl); + /* Store the base assembler name for mangling later. */ + if (TREE_CODE (decl) == FUNCTION_DECL + && lookup_attribute ("target_clones", DECL_ATTRIBUTES (decl))) + { + cgraph_node *node = cgraph_node::get_create (decl); + if (!node->function_version ()) + node->insert_new_function_version (); + node->function_version ()->assembler_name = DECL_ASSEMBLER_NAME (decl); + } + /* Add this decl to the current scope. TEM may equal DECL or it may be a previous decl of the same name. */ if (do_push) @@ -10863,6 +10873,16 @@ start_function (struct c_declspecs *declspecs, struct c_declarator *declarator, current_function_decl = pushdecl (decl1); + /* Store the base assembler name for mangling later. */ + if (TREE_CODE (decl1) == FUNCTION_DECL + && lookup_attribute ("target_clones", DECL_ATTRIBUTES (decl1))) + { + cgraph_node *node = cgraph_node::get_create (decl1); + if (!node->function_version ()) + node->insert_new_function_version (); + node->function_version ()->assembler_name = DECL_ASSEMBLER_NAME (decl1); + } + if (tree access = build_attr_access_from_parms (parms, false)) decl_attributes (¤t_function_decl, access, ATTR_FLAG_INTERNAL, old_decl); diff --git a/gcc/cgraph.cc b/gcc/cgraph.cc index 1ea38d16e56..c2038be4671 100644 --- a/gcc/cgraph.cc +++ b/gcc/cgraph.cc @@ -252,10 +252,16 @@ cgraph_node::record_function_versions (tree decl1, tree decl2) decl2_v = decl2_node->function_version (); if (decl1_v == NULL) - decl1_v = decl1_node->insert_new_function_version (); + { + decl1_v = decl1_node->insert_new_function_version (); + decl1_v->assembler_name = DECL_ASSEMBLER_NAME (decl1); + } if (decl2_v == NULL) - decl2_v = decl2_node->insert_new_function_version (); + { + decl2_v = decl2_node->insert_new_function_version (); + decl2_v->assembler_name = DECL_ASSEMBLER_NAME (decl2); + } gcc_assert (decl1_v); gcc_assert (decl2_v); diff --git a/gcc/cgraph.h b/gcc/cgraph.h index 065fcc742e8..d9177364b7a 100644 --- a/gcc/cgraph.h +++ b/gcc/cgraph.h @@ -856,6 +856,9 @@ struct GTY((for_user)) cgraph_function_version_info { dispatcher. The dispatcher decl is an alias to the resolver function decl. */ tree dispatcher_resolver; + + /* The assmbly name of the function set before version mangling. */ + tree assembler_name; }; #define DEFCIFCODE(code, type, string) CIF_ ## code, diff --git a/gcc/cp/decl.cc b/gcc/cp/decl.cc index 3b3b4481964..fdef98f8062 100644 --- a/gcc/cp/decl.cc +++ b/gcc/cp/decl.cc @@ -1273,6 +1273,12 @@ maybe_mark_function_versioned (tree decl) { if (!DECL_FUNCTION_VERSIONED (decl)) { + cgraph_node *node = cgraph_node::get_create (decl); + if (!node->function_version ()) + node->insert_new_function_version (); + if (!node->function_version ()->assembler_name) + node->function_version ()->assembler_name = DECL_ASSEMBLER_NAME (decl); + DECL_FUNCTION_VERSIONED (decl) = 1; /* If DECL_ASSEMBLER_NAME has already been set, re-mangle to include the version marker. */ @@ -6155,6 +6161,20 @@ start_decl (const cp_declarator *declarator, was_public = TREE_PUBLIC (decl); + /* Set the assembler string for any versioned function. */ + if (TREE_CODE (decl) == FUNCTION_DECL + && (lookup_attribute (TARGET_HAS_FMV_TARGET_ATTRIBUTE ? "target" + : "target_version", + DECL_ATTRIBUTES (decl)) + || lookup_attribute ("target_clones", DECL_ATTRIBUTES (decl)))) + { + cgraph_node *node = cgraph_node::get_create (decl); + if (!node->function_version ()) + node->insert_new_function_version (); + if (!node->function_version ()->assembler_name) + node->function_version ()->assembler_name = DECL_ASSEMBLER_NAME (decl); + } + if ((DECL_EXTERNAL (decl) || TREE_CODE (decl) == FUNCTION_DECL) && current_function_decl) { @@ -18743,6 +18763,20 @@ start_preparsed_function (tree decl1, tree attrs, int flags) if (!DECL_OMP_DECLARE_REDUCTION_P (decl1)) start_lambda_scope (decl1); + /* Set the assembler string for any versioned function. */ + if (TREE_CODE (decl1) == FUNCTION_DECL + && (lookup_attribute (TARGET_HAS_FMV_TARGET_ATTRIBUTE ? "target" + : "target_version", + DECL_ATTRIBUTES (decl1)) + || lookup_attribute ("target_clones", DECL_ATTRIBUTES (decl1)))) + { + cgraph_node *node = cgraph_node::get_create (decl1); + if (!node->function_version ()) + node->insert_new_function_version (); + if (!node->function_version ()->assembler_name) + node->function_version ()->assembler_name = DECL_ASSEMBLER_NAME (decl1); + } + return true; } From patchwork Mon Feb 3 13:04:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alfie Richards X-Patchwork-Id: 105916 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 36CB2385841C for ; Mon, 3 Feb 2025 13:12:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 36CB2385841C Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=EzCPlW41; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=EzCPlW41 X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazlp170110003.outbound.protection.outlook.com [IPv6:2a01:111:f403:c201::3]) by sourceware.org (Postfix) with ESMTPS id 12DA03858410 for ; Mon, 3 Feb 2025 13:05:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 12DA03858410 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 12DA03858410 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c201::3 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587906; cv=pass; b=qE9pHFxf4zhMHJAK1bQ9YqUSRfjIFogEEH4E9qMxSdnP1U+9HjMfB2hSKDzcoEFopGWOAbQm5Ayx1ApPIQd4N8vdm0FOBGasEpkUVhB5AsXy4uQDZOQfumEWr6YljWr66aBk4R9vlNZSTqzxeYI7fsT1xXWgNprvqsYRIgeNYxo= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587906; c=relaxed/simple; bh=ULyQCEQZ6qUvH+ZtvZOoQq5ZOVmJRjzxpicI8CF6B0M=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=gPc3pcJrb3J0NKf2CPOVn0CidMjqc+yYjdNl+Q52DUdI2aNdRyhc2Ceu+ratQMtTKE1tWULEiHOs2mLhp2Vc7nr8Zvp/ls63hqmK/a11UXl3igkblaZ+Sm/8QGJhEqc0oabi5K8IOPJUF+Sro98c2GQ8cDfk+xo304ayGolsqUM= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=bstRx65GwJ6Kdg2l5eNJSIRyKF/t3Sws7/QBdicyTmswud1itAGAeakTIDtuJga7iri+X6LzpSQCxaErfU0UeKBDfjeoI8t/vUO6J0s4PsHi+4Pg/HHEOQWhkvL/EDLcbDlT/rrKeVMUQgVdqKgJV2/TyAfPzcDC524WAodOPWLvxVQw+XPDFafwi+WQEPowAbrA9i1bsciBFfiep8yMSuNwJD0kCIYOlSuh+jOJEfwwiXhNpbT7xDZ3+j6csBwBES3I5iKhGUUVkwmsBmRejDo8N8Tc1vNFTO3iJcthZzjgKUc/hWNcufSov9xgUUmjozvXKaqypLEwR903j98cnw== ARC-Message-Signature: i=2; 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=Sa46aJhe5V/BKsCB+6TgbQek2s5kZdnvY8M6jJLwnWU=; b=Ld52PCyAfzC53T59n0hyZ2o2XChfT/IWl3edzvsj8NpE4dYin9s9olWgVP4Vhhs9GW4M2Udby7YpmdhBhwNtEL0GXA5k0CW+QU+0/PhgCh/RErxr7ROS8YpOkkjEw7Tq3gw7+faepYLVopW+o7VSrTftR0RdgQgekWRRluHLxgGBj/S3QJbncKmjo9Zc9HQV/Jws0/8lq2vw+Dr8r9HLSOGueR9Qq+CzEcEwt0nClrHk3udQOJUmgUQHAfx6VW69jZgnmA/mQ5LT2lYq0hDPBHNrfEvmybnSnzAzVqB1WOuYw0Ct480L0W1K5V3VT0YI6fccCsI9D71v6gsAsuX/aw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=0 ltdi=1) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Sa46aJhe5V/BKsCB+6TgbQek2s5kZdnvY8M6jJLwnWU=; b=EzCPlW41U3Q+sZigRteneVy56nDUJWR9fEMcqk3PUKwzfCjXPU5w+GrDmjFpL1lHbELSOs/Y3laRWY+17KGEvpwtSoIOELQcwB/0r8Jzh7Zd0nYhv7MuiQPMnLJsfxOnmGwokdYhrwCxRPVKuU5UO4pU+tP9EtAhIHbFmQbZVrw= Received: from AS9PR04CA0178.eurprd04.prod.outlook.com (2603:10a6:20b:530::23) by DB3PR08MB8891.eurprd08.prod.outlook.com (2603:10a6:10:42a::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.23; Mon, 3 Feb 2025 13:05:00 +0000 Received: from AM3PEPF0000A793.eurprd04.prod.outlook.com (2603:10a6:20b:530:cafe::85) by AS9PR04CA0178.outlook.office365.com (2603:10a6:20b:530::23) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.24 via Frontend Transport; Mon, 3 Feb 2025 13:05:00 +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=arm.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 AM3PEPF0000A793.mail.protection.outlook.com (10.167.16.122) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:05:00 +0000 Received: ("Tessian outbound cd7bee7c735c:v560"); Mon, 03 Feb 2025 13:04:59 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 189c049539bd8aca X-TessianGatewayMetadata: ozKq0WHhx3/hkjAm9pHgTaZA+ewPb4XIqqC0MlGigCHP9DZ+wqO8VhbM+R4qarbgXsrmz+HB9Icg1XShzE9qnQBCdry19cWd2L135iroDSmnIsCPEva7YIg13KYH9HklHk+7UKHc5kVgSfTeBrdvffqRyMxWUxJXENJAoq65xCU= X-CR-MTA-TID: 64aa7808 Received: from L1e83c0b1863d.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 3685896E-591C-4C3C-8419-EDD4E08B035B.1; Mon, 03 Feb 2025 13:04:53 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id L1e83c0b1863d.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Mon, 03 Feb 2025 13:04:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=iMpF/VU6K6XKnQ+4xl5XR/RZ2VisI1xnoR6ouDmByxW/sxgPify0TQ8vrOOb9ZezbEMaHEi8UyyuUsC0lHpmNzpsTECpCyV46rEh0JIIpUpE9Y6ICYcehSzz5jPMugQzJO8xTlIfatqUlam86qOOULkGP8CNqcOaPwSRRREgKc0cmLiz0buCRBXUxj6KHAkDl086ehu6ZsUk4kMDkc2sLExRZUcWYZqBewyt0s/kkJPAutgGzYiI7sRJ2eY6Q/nDaFEl1zg89QFNSKOY1QnkOj/ZuCTzyRclw7tXV1ABq6L4gd+VJ3z/ZeGmVygE07NIb7lX4nDCjMDIMuHSqmmW3g== 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=Sa46aJhe5V/BKsCB+6TgbQek2s5kZdnvY8M6jJLwnWU=; b=WXq7TX6ceI2SQN2MTG3sbV+7my/ykv0fStCPu+dPLOPfgp9BzojBIvRAGNQ4Btqe/Euv4l3thFEupvPeHp4vnAhGVFtpAXXSgAYkXnEHW7UkN/DKMg3MDLuW+/3msA0OyarGZnI9xX32X2gNNropTk56fvrMF3Fs3QT1tMBmzPlqWCytbK/rO/Mqb2pBaukgAdXoRrOw+BFBzfIdfo2NLkkUZs05YGH+84lgLtx0JJUlOk7NR8gX8+jjTy/w194aYmmrnGXW2JSYvYSolLiF8RS4ZYq6ceQCcyjzKaaheovlPuyGogBCegX8FuVWYK8JfLr76lAAITi055ragV7EGw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 172.205.89.229) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Sa46aJhe5V/BKsCB+6TgbQek2s5kZdnvY8M6jJLwnWU=; b=EzCPlW41U3Q+sZigRteneVy56nDUJWR9fEMcqk3PUKwzfCjXPU5w+GrDmjFpL1lHbELSOs/Y3laRWY+17KGEvpwtSoIOELQcwB/0r8Jzh7Zd0nYhv7MuiQPMnLJsfxOnmGwokdYhrwCxRPVKuU5UO4pU+tP9EtAhIHbFmQbZVrw= Received: from DB8P191CA0020.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:130::30) by AS8PR08MB7339.eurprd08.prod.outlook.com (2603:10a6:20b:446::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.24; Mon, 3 Feb 2025 13:04:51 +0000 Received: from DU2PEPF00028CFD.eurprd03.prod.outlook.com (2603:10a6:10:130:cafe::99) by DB8P191CA0020.outlook.office365.com (2603:10a6:10:130::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.24 via Frontend Transport; Mon, 3 Feb 2025 13:04:51 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=arm.com; Received-SPF: Fail (protection.outlook.com: domain of arm.com does not designate 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; Received: from nebula.arm.com (172.205.89.229) by DU2PEPF00028CFD.mail.protection.outlook.com (10.167.242.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:04:51 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX05.Arm.com (10.240.25.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:31 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:29 +0000 Received: from ip-10-248-139-135.eu-west-1.compute.internal (10.252.78.54) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 3 Feb 2025 13:04:29 +0000 From: Alfie Richards To: CC: , , , , , , , Alfie Richards Subject: [PATCH v1 10/16] Add dispatcher_resolver_function and is_target_clone to cgraph_node. Date: Mon, 3 Feb 2025 13:04:15 +0000 Message-ID: <20250203130421.2192732-12-alfie.richards@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250203130421.2192732-1-alfie.richards@arm.com> References: <20250203130421.2192732-1-alfie.richards@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DU2PEPF00028CFD:EE_|AS8PR08MB7339:EE_|AM3PEPF0000A793:EE_|DB3PR08MB8891:EE_ X-MS-Office365-Filtering-Correlation-Id: 5e666e44-8b06-4e7a-cfa2-08dd44535dca x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|376014|36860700013|82310400026|1800799024; X-Microsoft-Antispam-Message-Info-Original: vQpv7eFCDhmKFOUhhI+f8qaB8UZOMv+z6fMhRuW5mOZzfRj/6wWkGEKT3uHysVVTQQeP9ndMEwKUds/JvdKKb8eOKwBsdVCuc616jQaQiy8NsKoO7GEeBUdXBhTuRnYMb4cul5PPLrj3kMnoa8D7i5b7ZLiJzTjlgE4N/EcFX2Heu4ZWGurgsKrVLG1SG7GVXj82UiiK9a30Dki83/ot27l1ZRkIzRU8YDkVve2PkUj8xq+RqJSymZUVoTXWg2F3AivGHGC3e25r8y3yNqxzWX6PTmryHzH7wP6dPYI8n2uQR8toE0ca7Jw+nH6MbetVkmvzRJvnAsYfyQ21Osi27M9+aHMlB/UIQYBXnpe3NpkM4e1OcbdIgpE02J+b50GfawsZuwryv0G3wfgsmISbqvFhQxZvdjN/agyTfcPOneppC3ro4FjOaPLD/WxIppqrPshSfjSKGDvzoxbCrHGjyh5nWR+Zs+RFKFcYRPzLGnpgxG0eOFFEeor4e2a1Lo/1fSOuWU4xvhaU3ZSJj5rN9O477zuFXxvcl2Z9i4RfOYITD0p2dO/qepPMDYyllNADmOf+rbIMXTjXADa8hnmn/Bla3771A1okOHwXTDLlM0NZwopWGPdYDgUCxBKMrTTOdU9T4jXqOAA56/733nUnydxjqJOCAn1R8jUmj7p/bdUf2n86QIU6RSnTQOcGdWQxBi4xx3bOOXq1tYUxyxG+0S9E5L23QOI+yEyG266p2JNEP2z1U9TTrdDE2hNgzEhTYQKUpLY+2yymnO2uWTt1tae+Cw9k1KQATqTtPGrlsVhgK49rpGxLulMSYi7sLvrHi6raUKiNbCsoLI9DiQt6FIW3VzOmta1Uy2+JfoM79/WvK8fStH8lIkEzEHEEG3omV3PIFcdbMBlMcxNFcCYSsbWnRpU5vm3vLTJB8PNIZhBT6YmRti4tc0LtUmQsKUwFRSrbHBflkP5MKwO8LqtdHQXh68Nex662rYx6DypZ8R0hdNHSp2JdnU+hnqM62kGxp+1I/ycdY7h48wLQuXZCjPyCkMa0+Zgw2aIP62ENEpvLtDYRnqvecpx3uA615tlNNlUtUSITp8yg1rKJKTYArS3nJpXq+u3dxD2nFnxt0q79k8jK9xTqWEJ5ASGmvHTvzz1AJciDne1U3Z5XE3lGaufBZcICRcAe/H4PTyohtecdpe5dJ2JnMJa0qHUZVR9mGkNUFZ7bPsBo/lfYZlC02UwuqDMiyLpLw7+yx6HqVX48260b4NZgJ3rV2XspD5GHjPQmrI+ZT2SHbpHhwySbMc1hym7+MdJhs9ow9p/6guiFRPtc2QsTYK/eW36ZhhhiTFKb+H0JG2s9QEK9wJERMeY0Z7BUdpom+jv9vJymdQaA9T58bQAStjerHY26e7MO7+ji+qdKNOFL2/VmthmjaCgKMIpEnzsdkJU7axpV8OyRiQdekxF8cCJaukELvVn0DLx+y9MJY+b/st9R4Ql1iKAKKp3EcwrwDoYqdDKp3jg= X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB7339 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:10:130::30]; domain=DB8P191CA0020.EURP191.PROD.OUTLOOK.COM X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM3PEPF0000A793.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 77712067-02dc-4a8c-667a-08dd4453584f X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|82310400026|35042699022|1800799024|36860700013|14060799003; X-Microsoft-Antispam-Message-Info: =?utf-8?q?uIdrBbfGK4ZD6CiQmUTBePfFp5SnR27?= =?utf-8?q?jGhP9++SiFS2Uky+Sky9Lx03H5yNANIVoSjoS0Zxt+0wPvrqm7u6GmLCB/pqY6+j2?= =?utf-8?q?wBzuy9XJ7ZmVlQeEcRUN0XV/HMqi4H+xbjYRQlV/87q8tM2cskpNdSqSUtiO9PQTA?= =?utf-8?q?FF87Iqlh2IoeKskdhGniWGtFJZEDuDQSeQ4BoH0OmqemNA74V1IMp6oCJ5IUY7hon?= =?utf-8?q?8rRnmfzKpgdVqHnZ+FbOulvfTkQkh7fmo4mexo8AWDUMphxhx77+Uj/Qmw6ragOSc?= =?utf-8?q?sGcAqM5Ld76eLn6sd4Tmxrck93DQbvqwcflIJV8YBTKH+fYziqv7UEBmUmtz15Lxv?= =?utf-8?q?f6JbYvv+4mv61RGPQjwmKG08h03xaEi9JNnfzsHD6Xk51LCFCtiCfve7DwGJhwYKF?= =?utf-8?q?9tinmAOWpIP+tyB+EvENNdd0PmXIE9n7l0y9x0XJOlIkborzfhjS6RCMBePq1eIoH?= =?utf-8?q?tJaQLWy2piIWSOZqpPLvvGgNH/B2AJJ0KE4VxkPXTZ8AaF3r+ql/ik/Uwy+NhAWE7?= =?utf-8?q?8A1PMp8t7ImVYLIEklWE/X3gLy44KuW7RSHY5aAa2HI5VqrUPck0kgMmXL7YmwQcz?= =?utf-8?q?+1BkYmg4Dwcyu9DxFyK0F/0WRaSIzWOrTZBWb64Or3UIBTljnQHjJk91juc+J0zu8?= =?utf-8?q?XZYAEeHfPAo+eVo517KSryUZejusW10UFA0+NTDSEzdfO7vgFYecJuSc2VneO7QyE?= =?utf-8?q?+JqCbWReHcmo5uXtim8Y3S2ZWeJQ+xIwHlahoh3Sdc+6qPPxaqjE7LhuhszoVR8Xr?= =?utf-8?q?w1aw58kW/0p/CaWGBBq0HfxoouT5WLAFjbygWzXqOM2/7/w1MuZ6cdJxmA0YM1Yxf?= =?utf-8?q?Te2T746i4j54X30PnYWLk/+ZSr4azDGP6HifMnSpSpaXWJFHEU0kZ+1qs63jX9Juf?= =?utf-8?q?b2gbMAbmFtTgLvylMcIIuMRhEUroMQPfuZ6flsD3BTENBkRaCNFHm/WV7BsBON41r?= =?utf-8?q?npbykZ6XCLRV63CcX3/iDfSf4ks3Y3Q+Iz9yk7tQweTpML8CytAgAMymtnBHQlchU?= =?utf-8?q?CZ/UrHeyaggYqz95NZ9xrqcdyF9sVZhD2YC77iCCXTss2gtpZV4BOdJt91p/XXyL2?= =?utf-8?q?QhHou9bYAagpZHef5FarVy3XoLpVAaB2MPw/IlC9duTKaaAf+rQxtoSc0+4/+zOyx?= =?utf-8?q?cqb+X110eqvPfhaFRlEaAf1TPX8Bniot07jDUZyuhpZ50A9ZchHdof6cmZ3buyRCc?= =?utf-8?q?pgQIk8obUvnJ5Zj5EswV1f5Js21W7V7BTLTgPkSwwZDw4pAki7h3vGzF0/CNBzdd/?= =?utf-8?q?aDZViS+KEjj2NbbzNvAIDGFp3aU36O8onevlFmheudlFDgCUrVqdpPLSMppcfdKZ+?= =?utf-8?q?+2ouL1N4BPS/Ss0wYFcWCmrLD5SCrvtX58mxz0jrr0MKmnjIv4o+P45hRFy/Avadt?= =?utf-8?q?iGlkA8L+QVmgIbTGCncVG4LTb3nzgufSUUriBI8KzF45xHduQTEetw=3D?= 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:64aa7808-outbound-1.mta.getcheckrecipient.com; CAT:NONE; SFS:(13230040)(376014)(82310400026)(35042699022)(1800799024)(36860700013)(14060799003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2025 13:05:00.2400 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5e666e44-8b06-4e7a-cfa2-08dd44535dca 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: AM3PEPF0000A793.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR08MB8891 X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org These flags are used to make sure mangling is done correctly. gcc/ChangeLog: * cgraph.h (struct cgraph_node): Add dispatcher_resolver_function and is_target_clone. --- gcc/cgraph.h | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/gcc/cgraph.h b/gcc/cgraph.h index d9177364b7a..9561bce2c33 100644 --- a/gcc/cgraph.h +++ b/gcc/cgraph.h @@ -896,19 +896,19 @@ struct GTY((tag ("SYMTAB_FUNCTION"))) cgraph_node : public symtab_node /* Constructor. */ explicit cgraph_node () : symtab_node (SYMTAB_FUNCTION), callees (NULL), callers (NULL), - indirect_calls (NULL), - next_sibling_clone (NULL), prev_sibling_clone (NULL), clones (NULL), - clone_of (NULL), call_site_hash (NULL), former_clone_of (NULL), - simdclone (NULL), simd_clones (NULL), ipa_transforms_to_apply (vNULL), - inlined_to (NULL), rtl (NULL), - count (profile_count::uninitialized ()), + indirect_calls (NULL), next_sibling_clone (NULL), + prev_sibling_clone (NULL), clones (NULL), clone_of (NULL), + call_site_hash (NULL), former_clone_of (NULL), simdclone (NULL), + simd_clones (NULL), ipa_transforms_to_apply (vNULL), inlined_to (NULL), + rtl (NULL), count (profile_count::uninitialized ()), count_materialization_scale (REG_BR_PROB_BASE), profile_id (0), unit_id (0), tp_first_run (0), thunk (false), - used_as_abstract_origin (false), - lowered (false), process (false), frequency (NODE_FREQUENCY_NORMAL), - only_called_at_startup (false), only_called_at_exit (false), - tm_clone (false), dispatcher_function (false), calls_comdat_local (false), - icf_merged (false), nonfreeing_fn (false), merged_comdat (false), + used_as_abstract_origin (false), lowered (false), process (false), + frequency (NODE_FREQUENCY_NORMAL), only_called_at_startup (false), + only_called_at_exit (false), tm_clone (false), + dispatcher_function (false), dispatcher_resolver_function (false), + is_target_clone (false), calls_comdat_local (false), icf_merged (false), + nonfreeing_fn (false), merged_comdat (false), merged_extern_inline (false), parallelized_function (false), split_part (false), indirect_call_target (false), local (false), versionable (false), can_change_signature (false), @@ -1465,6 +1465,11 @@ struct GTY((tag ("SYMTAB_FUNCTION"))) cgraph_node : public symtab_node unsigned tm_clone : 1; /* True if this decl is a dispatcher for function versions. */ unsigned dispatcher_function : 1; + /* True if this decl is a resolver for function versions. */ + unsigned dispatcher_resolver_function : 1; + /* True this is part of a multiversioned set and the default version + comes from a target_clone attribute. */ + unsigned is_target_clone : 1; /* True if this decl calls a COMDAT-local function. This is set up in compute_fn_summary and inline_call. */ unsigned calls_comdat_local : 1; From patchwork Mon Feb 3 13:04:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alfie Richards X-Patchwork-Id: 105910 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id DA399385828B for ; Mon, 3 Feb 2025 13:06:37 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on20608.outbound.protection.outlook.com [IPv6:2a01:111:f403:260e::608]) by sourceware.org (Postfix) with ESMTPS id 13C703858414 for ; Mon, 3 Feb 2025 13:05:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 13C703858414 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 13C703858414 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:260e::608 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587909; cv=pass; b=BJfHa0ol62XcRTr05DSx7kjOTop3GDmAU1HSyHLuhxqhBiTocrqYHuCBZltMmoseft1ppsUo6qukwHFjH0Yf0294lhiUH/WqJe1NUFZE3q5TADuT2RR8Nz/AUHq2einmet7K0QAmzKu1GWo2mscloynO8bWDolIyXhL5/JK/ipw= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587909; c=relaxed/simple; bh=s4z7SJh9K36JBFSr7tOwLGI6/Y12ioX/dbGhcIgkIPA=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=iKOPSggY5+04q1RWSFkx0QtFh5OOAs54EGBpe/M4DrnVDqdem3g2DkHzdjIAzEGg0/CfVYvir1nI6Voe/u4XSAntJwCFOxGb21MNIoE92Gr6z8HT/vTcZuArl+Z5mRKtu0iGCeibDChcEo/GiQp1Ruxj8LQ+ntvdABnlivZs5O0= ARC-Authentication-Results: i=3; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 13C703858414 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=fRQ/ETTr; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=fRQ/ETTr ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=xAQqBlkhedqOLXLOxW7pCtOk6V4xnEE7aP9d7kXCCHPSelr98uFPGb/ol+c3gMbFn2cmQOEpr+WjwYsRrshwuuzX9PKzo3x+xTc19voeYBB9GUk6Ak4GXdFmdD7KXrsaxKcITRfHNZdlW/aBDA+5RxrjUTj2v7j9ODFkX80m9WuxVYAlMUaLHGYiWOrnIPZZ9CB0yyb7/82JjbkgXIL81IOWtwnqPvhM8vMP728318idWVabr43xIqPEQXN3GJ62Us52RSYXmS99+tFowqAZK3kg3LljxRFbJJ5y3BO6g2jEl0MyXnYtY/p5U5/tJLlrUn9nXd4sa5GpAkfpT62PFg== ARC-Message-Signature: i=2; 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=LotnVgQmIl0EOJctUyfdLsqRns1Qnv+OjebWaysgVMU=; b=npGG+ByakzqIh1dZCcIdMRY57UhsfCHKHTohlJp6qyQbfGF+VaMj3211NeBjIPxXT5kjLvFYNh18qp9dEI1PS/MBKZaegmvzQfbEoWyGN82MtmGfQsQRZRg81UEG+fUEsGfhxb31xTPfAVcO0ubK35vQpR95NOQTXVVFPOJCC7weM2KXAAGesOz7IXJuA6yE41GvdoD+6TIXBRIGpYmxDSFh9DZraoAIYg9KfkhDsSnczIUk+xtGeUsvs6HLpkHAPrwx59Ra4BK/lfaevUeZqDyMdaG0kfk2Wq9nYkgxrgKJWyF9JlVkJY/dXesyf/I3vQhZGaPgEN5+RKreCOvFVA== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=0 ltdi=1) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LotnVgQmIl0EOJctUyfdLsqRns1Qnv+OjebWaysgVMU=; b=fRQ/ETTrj9NNCIVRYXO1x3nXC4WPqIGCVrEEIdwN6QCFAyd8spjVhhYDRGrCvwm60A7WidqD9KlVelEVnb6tizRblHDAUMEksuga+6wzBadgwF+K4WI+S1e12OLcW5WPOZ/xtJxdeQywmnScRhfs4hL2KB/t4U3skq49SJPxg9M= Received: from DB3PR08CA0014.eurprd08.prod.outlook.com (2603:10a6:8::27) by GV1PR08MB8284.eurprd08.prod.outlook.com (2603:10a6:150:a5::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.25; Mon, 3 Feb 2025 13:05:00 +0000 Received: from DB1PEPF000509F5.eurprd02.prod.outlook.com (2603:10a6:8:0:cafe::41) by DB3PR08CA0014.outlook.office365.com (2603:10a6:8::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.24 via Frontend Transport; Mon, 3 Feb 2025 13:05:00 +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=arm.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 DB1PEPF000509F5.mail.protection.outlook.com (10.167.242.151) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:05:00 +0000 Received: ("Tessian outbound 9c42971d7905:v560"); Mon, 03 Feb 2025 13:04:59 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: eeebb1247dae8a55 X-TessianGatewayMetadata: ikCB21WN9pTiPSeu6w7vhrpEkO9QzkJ1IDwOfyk7lK/OuqFkTGQVMCWcDU6CcULZShevXdkJ8L8i3OzwJiHUSffC4ip4Ggnqd7CZgZTLEaxA5Wp1HrOdQ8oWl+hxHCSJP548qOcKzADC7ZWso/jmiWRu9FA3ajEUvi/3c07CcsY= X-CR-MTA-TID: 64aa7808 Received: from L8da73d7e7839.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id E571E78A-50D6-4487-9F20-CD975E222E6C.1; Mon, 03 Feb 2025 13:04:53 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id L8da73d7e7839.2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Mon, 03 Feb 2025 13:04:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Nlp2mz5RdA4fz6lQUD1xC/xFPjPQvtr9Y4ip5uT3rmRaGdShaNa/8uwTUv+howryIsaNiaN/3tC90JamqFlA3GH2J5TqiY89/Yl7aXvED66cHfRotipya0GJUb/v1Z6cNspYYpYw06Ua4j6MckP/K+C5ahA/Lila7gb2BktGW68QProXzM72SoOlU0qm/xnb7F9R1vStxH14OLI0g/nIEdqrZ/v0juv5vspYMEYgQwAMmiUOj+Hr46gqXO1yhdOH/4h0RfbkKM48e/1XdULe2bLqytkia4oXfiI2dka8cLasdbhTVKqr5BzTzGBVKQJO58XOM0FhkJxeBKz5qNxj2g== 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=LotnVgQmIl0EOJctUyfdLsqRns1Qnv+OjebWaysgVMU=; b=P0Ht8PQAYM7TmONC1bY+ORa+Q+pc17oV6OMJLuCAnrlNEzbqk2ZAXf0K1bLf7+i/UIkP57bSdtztdqrrvy2uLLF9wOrkKZ31t5pLAurh6Vb0JE7S9cBVlmNx3CO3tTCSJYzBZDKpVYhr0Lo0EaVgEgOZsaR+TwX4glGzY3bJDvP4+2JhAGlZZ6CHJSEzOaTqgNudb/N3ByqEkH7d3zSHjoZ/cghFIg88pe4yg0ntL/qLurLC1hUkwsRue3piYSqr7T7GIcPNudNGKjc8SHHbThuarF+lLkfhDHtYX5SJodyqZ3gYXf2/O0MgLBR3AU0O27qZzRu0KsKrPZUX00cZkw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 172.205.89.229) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LotnVgQmIl0EOJctUyfdLsqRns1Qnv+OjebWaysgVMU=; b=fRQ/ETTrj9NNCIVRYXO1x3nXC4WPqIGCVrEEIdwN6QCFAyd8spjVhhYDRGrCvwm60A7WidqD9KlVelEVnb6tizRblHDAUMEksuga+6wzBadgwF+K4WI+S1e12OLcW5WPOZ/xtJxdeQywmnScRhfs4hL2KB/t4U3skq49SJPxg9M= Received: from DU2PR04CA0325.eurprd04.prod.outlook.com (2603:10a6:10:2b5::30) by DB9PR08MB9588.eurprd08.prod.outlook.com (2603:10a6:10:45e::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.24; Mon, 3 Feb 2025 13:04:50 +0000 Received: from DU2PEPF00028D00.eurprd03.prod.outlook.com (2603:10a6:10:2b5:cafe::ec) by DU2PR04CA0325.outlook.office365.com (2603:10a6:10:2b5::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.24 via Frontend Transport; Mon, 3 Feb 2025 13:04:50 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=arm.com; Received-SPF: Fail (protection.outlook.com: domain of arm.com does not designate 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; Received: from nebula.arm.com (172.205.89.229) by DU2PEPF00028D00.mail.protection.outlook.com (10.167.242.184) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:04:50 +0000 Received: from AZ-NEU-EXJ01.Arm.com (10.240.25.132) by AZ-NEU-EX05.Arm.com (10.240.25.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:30 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EXJ01.Arm.com (10.240.25.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:30 +0000 Received: from ip-10-248-139-135.eu-west-1.compute.internal (10.252.78.54) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 3 Feb 2025 13:04:30 +0000 From: Alfie Richards To: CC: , , , , , , , Alfie Richards Subject: [PATCH v1 11/16] Add clone_identifier function. Date: Mon, 3 Feb 2025 13:04:16 +0000 Message-ID: <20250203130421.2192732-13-alfie.richards@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250203130421.2192732-1-alfie.richards@arm.com> References: <20250203130421.2192732-1-alfie.richards@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DU2PEPF00028D00:EE_|DB9PR08MB9588:EE_|DB1PEPF000509F5:EE_|GV1PR08MB8284:EE_ X-MS-Office365-Filtering-Correlation-Id: 6a1afb92-0cb3-419c-f244-08dd44535da2 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|82310400026|376014|1800799024|36860700013; X-Microsoft-Antispam-Message-Info-Original: tBjBtZiFYzXWUUoEFXo4WYEkb4UyPQXPE/3DJ54j03oYtSkfz/jRMoyaafMY0XlowF+gILuU/j6m3cO/Z2CiHqliHU2+A212Mx42BL937hABVu7bFNTDhA+O665FLypbzaisb8QkGq03vV2v+vMe2vpdoiqdb7DXNwOvEd7u3sQpauNC2tWJNyig19vSTydHGDPjKf0+7zHW7oi7bvHjsIwZHQFEDU0pwl+u9jcb1vBfY3V0/IpyC5x4jR/rf5veSJApXFT+UhuszcEd2O3Oeg9NfbytSn1v3PzG9dKFfley+guoXyaHChaoh+7ZkH9C94DRh4I6vAHrGS/571gCW/+26vSIYOsEgfxyvjgejHKZhnGUEcRUIXTpFTlNYFppXLJ04imJN1dQjkPkO1iuTbPGTeMOXq0xAzbxj3ylHPKB/sVXScb3Nizp1JRfwfqAqQiZBMk2dOW7DDcvlWOJ6egQArd9Lo8wBfIx8ekmhvR87uKMXHUbjKIf7zBuRkoXfuMQjYBhFGbM57p30H7PwBv5BZ7bgKlmLKaXFYlUWeVA8R/iUEVELdnhIqi1Vkb6KGEoPVnzxjBGsiuEa0fnUkX3MyisB6Bph6yh2JTbx7edDiTXEMUJ15jYbO0jhnv33ZyCfSGlt1HhiHYMOWOOsl67uNivZH5aWJuW/uaLcQA3MLuz1ulxMfJToWFHhyklELjL9AaUFXGTruDDmQsLlJlnS6RFIvpX9XDLX3OP6ILka+IdyalBDZV2kQrWcb1cNiVPSbuacQK4aM3bKqjH4yhWj2asy4G2t1ourLVgYC/9U3AvBdphkCX5cq5c+jvAfKv/fskMFx7zLaUKaD8hIxl0tayeQrZSLkCz87KKZRPwAMq6Pvi1gjNxTBo+GDUzVE2D2DVjkxvnRXiZR/vre2iHVDaOUTQaDEfcSE9eu5YBptPzeWBzGlCtZQ5b67UpX39pQ4KQseWNRn3XcY4Kw3uzvPaWeaCUlQmED2fUPGDzmVQ7ywcE8AZ/3U8cqkdT1JT0kSmMkRApDpVgUwBvhj3kDUq0IwzO0OnmoXxV0ini7hBhKXKB54/94QXFdtvtnUaSH5eItT8GAuvf64X6Peja+CEOoPe/b8C8RCTfTjtvLMcql2IOxGVnK8/hGP//v3j80DQNmcvcnjx1dYvls5W3kcXHnfGHktnj+WuOpdrVbJU5BJhbsfOmnqLrGJ5SP0xqWF7H2w+Hs6cN7L/R0vD6cjDntH03vT5uRUnthvqHsDtYaUq+9n4NPcHzjZmZvV/JtZSpZ4cyBHaHvRgAgeDvt/qoA+0KcbPsPLzXmKfqx1X7y12SRMBDGS7x/Ek5a4gOI6rORH5LDN6Nn3VRVAsEAE1HnjHwX+X5KPE02T2R/4wOgZaa/adxTMlQxJExJHvlRktBa8VGz7vZ6gI7zojrUTQwGu+AupTX/bxy/JLgZSWU7c3XyGF7RJRNAxevAUxQG+SMEy6cBZ+cScSGtlWg5ltakrUaj8LziDMw+zs= X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(82310400026)(376014)(1800799024)(36860700013); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9588 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:10:2b5::30]; domain=DU2PR04CA0325.eurprd04.prod.outlook.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB1PEPF000509F5.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 3ae7c7e1-f179-45ed-f332-08dd445357e9 X-Microsoft-Antispam: BCL:0; ARA:13230040|35042699022|82310400026|376014|1800799024|14060799003|36860700013; X-Microsoft-Antispam-Message-Info: =?utf-8?q?+inhIqilRjzSK+YIedLkCYQKJni+0kW?= =?utf-8?q?Ve7MwL/iN0b4X+5il5/TqW36CY6BdXYYjV7wu2cDdmJVXb6jCqRWLLUIjDWFZmRwL?= =?utf-8?q?ZcBFwq9UjIpG/w9C5BtOJArVUkZJf2tHRDlwVpO6Nj3wk6xQhWqMZpsv3UQgUstVS?= =?utf-8?q?tB9sGcVZiDjewU6Dj/+wiK+BW8d5S0zaaEJX1UDMBFx2OzZi+RromK++HxhPybKKz?= =?utf-8?q?vGgvRyEDj6n6Ias6lSNk1UGC4BG4BC2yicuOKJ6nb3e717ul6kuOYmGkxUymmML+w?= =?utf-8?q?QsAmENbzmIP73Tb3AAcCE+UKGnl63zL9Y1RzrxWSjFUpys56oVmaIwPF94LtsAVx1?= =?utf-8?q?QC8w/6B+OIXUgLbFppDZD9p/Z30b3NEh7Gi2h/OSnTc+BgvfuTTfCoz8Cip5RCbwA?= =?utf-8?q?/W70wKg1U79acosn0b7lU3QqAHMSsVjj18aIhrPnFZlxk9ol5SDQBlsIv0CjRMVwf?= =?utf-8?q?z1rOzzpd7FDUPV3xSV6tPq+mu5U4BeIVZJDX6Wlr/dnFTBQcxzVfX7seBOL4kela6?= =?utf-8?q?Vs4YFqBL5uWoeM1mfCNXtciqzUVu2gpqB5dEpS7/ZVVrLXqU2WVBSKX4YLFyYCEcq?= =?utf-8?q?qin/kyLPEMfmjzGckBupHT+VexhrFHZnHcD/njV+WI7BXd6QzUE0Cr8/nxQfbD3+H?= =?utf-8?q?EbdxjlZnZ29nupqxWrlnH62uUrNPcRprU2ERwRxV5WR9ryqJlqeu/qRZ3jSDJWaGQ?= =?utf-8?q?k/u0X3xBVoZXhZSwiZOZFy9KNFIo8hzHY+m6v0JxjhiRQK2UlAXYnHms8rN4rvA4H?= =?utf-8?q?3dpJifr1lhJhEhCWeBopg9Qxouu043avubAhZ9/kVy2BaRNXkK4FuJ/WTvyV2A4wE?= =?utf-8?q?HpIyWVPcbDZ+2/wvlttX++khw2G6Z84EO2GRB6H710fbd17iWspZvz57v1e7YUoha?= =?utf-8?q?NREEytTcio/aBbtgx7CR8p5oZMVdb+q8LUpUsaCKbwIcE9UjMlmgd8/Rrb4IPNRlv?= =?utf-8?q?Bdf9PbZFWXhSc8EkOhTdTqjrgMHi7gMKxXgP6898WZUC6x9/aOEWky93RGknvEBFi?= =?utf-8?q?G7Z8E/6oN97lDaFBBftX+9xa36DwC2yZuhsMIMXnoboay4/W5eXtm7HXPfYsovq1D?= =?utf-8?q?CVnKfx/Gsa5bUmRRYiVdiIWGsZ7CHDowKEAnvDgHBDqLw9KdixJC3kXs7nL/4QZnd?= =?utf-8?q?sP2mJLkdfiYG6Oe/iU/PWGA7Vm1n4SekB8uumHYVK7UaYTyNXxMeaarUTjKKu++k5?= =?utf-8?q?GdAMUNG0zgEFeSouMANnByO183VbBSBu+DB2fcGWWzT+Gdxxp073bVt6AprinKw3E?= =?utf-8?q?zGlgV3aTWfvS/3GzGhBtALYVkk6XRh0VzUiX/7GRPCqsQm5CnZm6OZ4xSQnc4NjVi?= =?utf-8?q?MTVogWu/yEBPQIMfMIs53VY6SHCbEHLQ4UpNyz3VPTO2wiPMVUcHsB8KjfsFD5qIV?= =?utf-8?q?xhd1mWpXJn2V3kqFUfKjFiDjucv44JiVV+dVe2xvfh+OCwuWxU0pDc=3D?= 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:64aa7808-outbound-1.mta.getcheckrecipient.com; CAT:NONE; SFS:(13230040)(35042699022)(82310400026)(376014)(1800799024)(14060799003)(36860700013); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2025 13:05:00.0412 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6a1afb92-0cb3-419c-f244-08dd44535da2 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: DB1PEPF000509F5.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB8284 X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org This is similar to clone_function_name and its siblings but takes an identifier tree node rather than a function declaration. This is to be used in conjunction with the identifier node stored in cgraph_function_version_info::assembler_name to mangle FMV functions in later patches. gcc/ChangeLog: * cgraph.h (clone_identifier): New function. * cgraphclones.cc (clone_identifier): New function. clone_function_name: Refactored to use clone_identifier. --- gcc/cgraph.h | 1 + gcc/cgraphclones.cc | 16 ++++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/gcc/cgraph.h b/gcc/cgraph.h index 9561bce2c33..a4eff14ddf6 100644 --- a/gcc/cgraph.h +++ b/gcc/cgraph.h @@ -2627,6 +2627,7 @@ tree clone_function_name (const char *name, const char *suffix, tree clone_function_name (tree decl, const char *suffix, unsigned long number); tree clone_function_name (tree decl, const char *suffix); +tree clone_identifier (tree decl, const char *suffix); void tree_function_versioning (tree, tree, vec *, ipa_param_adjustments *, diff --git a/gcc/cgraphclones.cc b/gcc/cgraphclones.cc index 5332a433317..6b650849a63 100644 --- a/gcc/cgraphclones.cc +++ b/gcc/cgraphclones.cc @@ -557,6 +557,14 @@ clone_function_name (tree decl, const char *suffix) /* For consistency this needs to behave the same way as ASM_FORMAT_PRIVATE_NAME does, but without the final number suffix. */ + return clone_identifier (identifier, suffix); +} + +/* Return a new clone of ID ending with the string SUFFIX. */ + +tree +clone_identifier (tree id, const char *suffix) +{ char *separator = XALLOCAVEC (char, 2); separator[0] = symbol_table::symbol_suffix_separator (); separator[1] = 0; @@ -565,15 +573,11 @@ clone_function_name (tree decl, const char *suffix) #else const char *prefix = ""; #endif - char *result = ACONCAT ((prefix, - IDENTIFIER_POINTER (identifier), - separator, - suffix, - (char*)0)); + char *result = ACONCAT ( + (prefix, IDENTIFIER_POINTER (id), separator, suffix, (char *) 0)); return get_identifier (result); } - /* Create callgraph node clone with new declaration. The actual body will be copied later at compilation stage. The name of the new clone will be constructed from the name of the original node, SUFFIX and NUM_SUFFIX. From patchwork Mon Feb 3 13:04:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alfie Richards X-Patchwork-Id: 105919 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id BCF433858C60 for ; Mon, 3 Feb 2025 13:15:30 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazlp170130007.outbound.protection.outlook.com [IPv6:2a01:111:f403:c20a::7]) by sourceware.org (Postfix) with ESMTPS id 1BBFF3858C50 for ; Mon, 3 Feb 2025 13:05:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1BBFF3858C50 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 1BBFF3858C50 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c20a::7 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587909; cv=pass; b=s2qa98Ap2LX0knW2p6cMxYQTuqbJSQtf0j6ipg79+ug7QM9gnE5ojJy8qPRaQgcGAwUAdsW0ghlSHHPznVgveW1UN+HBgsGiPrr7RknPjHMcZ8Kalub3KrfJakZBDenxt/EuSmCNnq6SNKHmZuymme+ldQ1rixfXhtm5jLh5FKw= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587909; c=relaxed/simple; bh=1elQXLfE90viTtnLw7ImM9M1BG4BMDT5WVP/BpU3gmA=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=s90IcAGjZjO/RewNt8t+R4uVex2RzSYBWDZ67cDZcuNZDnkGLDeJE6YztaWV/2lHhFHMBq2WUOnmbA1n8g+L06Rleuo0xuY3d6jksC9sB+hdrFiW8kzAWtlgWpPJVanjb1f00Srj5I7KifGXxpTesJUclE7E+/PAHHMmixTXrHA= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=FdbThDZEct6oo8ke+E0brDmTQpjAe1KDCzXWFY3htsi52LxTvq4KZtzIAJdXMeiZuAPQNabU6V5lsmTxGx9P3uCjBSoVXM4jTPSzyXlvi46GFpCjsFS0vWs0IurVTjNZD9JBEMsrMSuiY3DH6DTm9OR87TVJ6jIA9VYirs016tnQPu2kb+TMB6WDm0PEMGTYTjPiydv0OyDhTiRi2dWa33Wd2kKcSYlVQMjBOymi2EDpny7nz63UyrqI2GEF85tpVMZs7hSVn1wr+bHDRv3iZoo7ZeXIrZP7gcd/0zlA6m4Xu0nHYwsJEzG+p3+ciiztoVMIRFxToZwt8PPw4761lw== ARC-Message-Signature: i=2; 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=UnvJzPhdTLZ5xOtrs7btEu65F3+09/4KEkt+PkOhJwg=; b=tQh/c9D/kV2VVdhWDomTemmzHGb41E37my1GS34sJpjSygfgqfrQu0nfB/ORNszR6XvhivUduGr0Cgn8o10CM/pzCJOUPuWTc1t3QFbcvZGpBSUBUCad77wNyEq+cZpACOsNlRC0+QJdzXjxs2DJnxENMSrXihgZWAdNnVtoylur5eH5+LoPjF53Q44ryxtmO7ITybmP8V0+8Dvfs7UxqM69E3SmKbb9j+HwEc1/q4Nc5qjDey07DWe1VBbpVUYPYJyxBywRwAHhRliDGgtbgnelg8YEFOeAieOlq2L5CbZvf0gM068/GG175dbYAsBEptJT1tq8Klpi23cUBCPwGA== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=0 ltdi=1) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UnvJzPhdTLZ5xOtrs7btEu65F3+09/4KEkt+PkOhJwg=; b=a27kgHa+kkL0bw6TD/v4ily4352luJnQw4eQiJ10/Oew++bg+7gneDQCVxSRG3zt7Uv5dDzr+Jyr3ohb6iMP4PexKfwNI/oDn+ylJ9yorCLDnuSenX5HVrAE2xGMqvat94yBcfkN8lNYkjSXKn2MucNp+uYtGc5OgPEpkXnlZKU= Received: from AS9PR06CA0334.eurprd06.prod.outlook.com (2603:10a6:20b:466::19) by DU5PR08MB10578.eurprd08.prod.outlook.com (2603:10a6:10:51c::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.24; Mon, 3 Feb 2025 13:05:05 +0000 Received: from AM4PEPF00027A60.eurprd04.prod.outlook.com (2603:10a6:20b:466:cafe::94) by AS9PR06CA0334.outlook.office365.com (2603:10a6:20b:466::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.25 via Frontend Transport; Mon, 3 Feb 2025 13:05:05 +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=arm.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 AM4PEPF00027A60.mail.protection.outlook.com (10.167.16.68) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:05:04 +0000 Received: ("Tessian outbound 9c42971d7905:v560"); Mon, 03 Feb 2025 13:05:04 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: c71c483d1dbb0028 X-TessianGatewayMetadata: 3OHw2SKPYhsEuuYHjQ0OQR/mhvJudpm9//C0pe0vu+1hVl5Gv22w88fdJ9gp39+DwdWd+PZC/kx4cyCE448qreC7ZYTPpXlDdclw9NKWHWGqU61UJbr7L3XjhyFj3p0LY9pX7CTCW99AzX/EcDem9HQwEVeaQzAO40KnjNobZ0A= X-CR-MTA-TID: 64aa7808 Received: from Lb2479c19538a.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id EF57FCE2-BF38-4A2F-8C55-5CDF6260D053.1; Mon, 03 Feb 2025 13:04:57 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id Lb2479c19538a.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Mon, 03 Feb 2025 13:04:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hRvrNoUkD8aTxpCo7xFtpx2WAI+3wD7xYdlbxZgyQsCdGHAfW+bVGCljtAkBPlQzcvlNbWNzZK1Oq3kF3wRiIt6+RbgJ/cuYRXfxnsySo3ELJJYnqttu8uBFJTjEg7IE6wn17cgT/mY4xEReat6PPbkvRZHo/e++HyHUr8NCqsFVWFw4GkRh7x0/c9Yb7INxzogmsz9OlucGcOWWU/eC/R7GagVqMoQLpm01lAfM/eScguXI4doE0Nul96vIGEphv3vjkB0Fdp3d8QS7eaI1OSlISdwc+H8HUp7HsQfFlwS99eiPOlB8sSHYA8iJm4PII5gHim1CgPZ9a8rzUqkQXQ== 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=UnvJzPhdTLZ5xOtrs7btEu65F3+09/4KEkt+PkOhJwg=; b=i2vDh+qufe6brLx1lhTPsFmNauYEvwt26pUsgAISM2Iu+MtfidQxMKRcLvknd8nN0jhV0+qvqCara+gAYMbpHxnivJYUgKuw/1OGSPUFByNEGT/I4PKhZR5ZjrjDIqFnV0XqCyGcDuiXD/yjq1ahJInjtfBsKFcAfObK09G6FGbE8+xt2BA9tWC4rZp5sMoOUamKdRiR5q8d/fOVSmxpNUD8s0VLTYzTC+6eJUJGla/tsjjDiAp0djTpvn8FjtKTvaLZm4ZSLnhTOFO44Vt3fIkPJABVkY5lK2QpErshC6NWVB+t4IndwsSHI4OHpF9ud1O4lBX8gpk8CZWyWKvISg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 172.205.89.229) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UnvJzPhdTLZ5xOtrs7btEu65F3+09/4KEkt+PkOhJwg=; b=a27kgHa+kkL0bw6TD/v4ily4352luJnQw4eQiJ10/Oew++bg+7gneDQCVxSRG3zt7Uv5dDzr+Jyr3ohb6iMP4PexKfwNI/oDn+ylJ9yorCLDnuSenX5HVrAE2xGMqvat94yBcfkN8lNYkjSXKn2MucNp+uYtGc5OgPEpkXnlZKU= Received: from DB8P191CA0007.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:130::17) by AS2PR08MB10127.eurprd08.prod.outlook.com (2603:10a6:20b:642::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.25; Mon, 3 Feb 2025 13:04:51 +0000 Received: from DU2PEPF00028CFD.eurprd03.prod.outlook.com (2603:10a6:10:130:cafe::bc) by DB8P191CA0007.outlook.office365.com (2603:10a6:10:130::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.24 via Frontend Transport; Mon, 3 Feb 2025 13:04:51 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=arm.com; Received-SPF: Fail (protection.outlook.com: domain of arm.com does not designate 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; Received: from nebula.arm.com (172.205.89.229) by DU2PEPF00028CFD.mail.protection.outlook.com (10.167.242.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:04:51 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX05.Arm.com (10.240.25.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:32 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:31 +0000 Received: from ip-10-248-139-135.eu-west-1.compute.internal (10.252.78.54) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 3 Feb 2025 13:04:30 +0000 From: Alfie Richards To: CC: , , , , , , , Alfie Richards Subject: [PATCH v1 12/16] Refactor FMV name mangling. Date: Mon, 3 Feb 2025 13:04:17 +0000 Message-ID: <20250203130421.2192732-14-alfie.richards@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250203130421.2192732-1-alfie.richards@arm.com> References: <20250203130421.2192732-1-alfie.richards@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DU2PEPF00028CFD:EE_|AS2PR08MB10127:EE_|AM4PEPF00027A60:EE_|DU5PR08MB10578:EE_ X-MS-Office365-Filtering-Correlation-Id: 7a3fe380-94d4-467e-701a-08dd4453605f x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|376014|82310400026|36860700013|1800799024; X-Microsoft-Antispam-Message-Info-Original: fbXeAPfhlSJy2WlHFufoR/Q2Un0KgWSkK7WW4kr4DdxED0jkA6v3neBS8sJJ0r6Me9xAdRrFagAPzsyL+9HdVVZMuJvNPflcs81JQQCcYe+01X7EPRfMUgnkPOW80WCzsqFQN7gzwtyyzUf9h5rIdGmlVc2spVJWJpe1TJ/Ryp+PUfGg17EA8u3VZBS/VZdXdmV4DrUdrzZIor6e/n60lktJh2AshufuaqGrnVAAx6hIsVY2bfZun3seagYeJPzw3FXICrWNELPtSl8s0zxOEi7vRTnSfr7QT0WgGSgwY4PWlVBpc12qUTFyIkWzndbJ8j7u0MLljoq0SACCRSsjwnlWe8rdOBS3mrLrI/YNSgfTbAIuBf13mK14m9w0uuBBRO8X1dS3jquxclNwqSUJDkn9LwiOy35Gf8BfYf7jxuDmmscspAxGC1ijkbUaTL4qBVzV2gIOkICABRMk19O1i6YGJh4Kx3jMaPU/HyjUee/v4g97l7kJ/km5Q8ARHDQ78VXYm44VSlk16dEe+aOnXInJkUXKBj0Qwsd3QaB0KpZI1S1BuWdgHqMGCJQ1XPWNUHwOQTyH6gRE/G+U/j3CYs/D2OUEWgZELANqBf5/MlnDTnXFJWp5WPAXdP4308eyH4YbSU0oqXGckk65dIUbroP1dU/zEJVLt1XEVmQSeeY7ZU9rKDiaR82u8gUPzsfmZZ9XR9uG9MyZ6Ie+wCTUTrX+TeY9m2TaaBaVH9O5RkN1NIHIR1C1NYWtp8orguNaIcDD63EZNSC3qtHoBrQv/T4pPRKFUhTVXq7fdkKYON+1qNFTzgYe0p9jIq8hi6fwosuP2hYuPKLoyjxTkm/m51md+ngUbU5FcLwy0L2xsiATUwXvLqrXINqSGq9xaBL2CAqstEISij2+jqjEBOmYgIMFF+D2g3eyKwqzJL70nW2fQVzZD+ztfLY8kpD3Md1xkztgQAAH50kjdf9uFpJbDB2FVZ+UoEotVP+7vZZAp2dKJDkFW3rl4BZEDUTJY8gER1watG8kXvH2Wsp6vULDvhHFr0bqnArM8DkSZtNBsSA3gsH2hvxZOq37sJBMA4sbGHcY2IdhxjzTtWtOp1OMNrcyrRUtDasxUkcvEhhM+iuHVRo4p7pTDoR6SAT2vV5rY01G/wFfoViKY3XKhm/E9FxE/8KAK3+ZvjPGvK8EdYZowlZ/OPjLIm9hUFOQS64p6OTqawGTP1oegIursNDC+WFadeejmecl36ykalirippntfA45bNUj8ZYLxTf3Jo0LPRPoRp6eFnep23cfWz9T3aidCNf2SJOG616g+6D+qS/HVY48yUJDwUZ5O2QkxaddcAtsQjkDWAsWQuqpMb79Yb8mDctKrcnML6Y7Cfq85wF0xrfk8OtREyGmqKBgRr3ilFcdbsd2KIoj+6jDeDFNhgxCWioY36338Q4uI8FBDcvXQSSkI3i0hNGdLA1H6sx/EsJcTt5/kYyKIgf3A+c/m4Ofn4EQZCV/Fo9dUSVfVY= X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(376014)(82310400026)(36860700013)(1800799024); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB10127 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:10:130::17]; domain=DB8P191CA0007.EURP191.PROD.OUTLOOK.COM X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM4PEPF00027A60.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 5aa9753b-cb4f-44a6-77da-08dd44535881 X-Microsoft-Antispam: BCL:0; ARA:13230040|35042699022|1800799024|14060799003|36860700013|376014|82310400026; X-Microsoft-Antispam-Message-Info: =?utf-8?q?aI/p19C692o/XjSWs9LpQ6yynm5gPGp?= =?utf-8?q?OSVMUwMJd0n8+pmslxZ0hEt3ma7WX/wp12klDpvQT8S3pPY7Fg9T59v1z7/2zY3Rk?= =?utf-8?q?jDcd+QGlggixcgkZKwh82uWUIYD+348tKxNhs+BjW6Ta/TIIO+98jqlId5IWCcW2j?= =?utf-8?q?4G6eDCZLmcZTXuO7/Rniiony4IdFSt6hvEQRehUsZ5cEN0UTi2+UE7WQcKMdW5MGB?= =?utf-8?q?f5Sj7SP6qFUvM3wPt2Z7hkOeLpq/OdsZ3JjovjZjshQUAu/0AU8G8Ck9Du/ovsz9X?= =?utf-8?q?KHpWmA2a3+iGNoQRoYw/ZO9w7Uik5vzeKtBsTu+MTV2roYIBo5wCPU5FZ43KM0hcz?= =?utf-8?q?PkafHDp9i+dO6wypU7PiofMgrvPLsXfkNQa4KT9HsYYEznhp4d4OVOIchqKXaErlj?= =?utf-8?q?Nv2oDA6S/qBqg1z3gInfsCs0p+LGGgU///aSUtr8HiJQAf7EvXbf+BjQw7ol1z+t0?= =?utf-8?q?XHClejCc/xsOA9bf6LnhQuodPKBR5mncyAHn/V3z2aHPJWQqb4ketfjoqE5C0fFuO?= =?utf-8?q?mmNfO98K03jNnM4ZpJiWDvVisByainuRNwBr2K8lf+j3vE6/vmxGCA1oDhq2ledyz?= =?utf-8?q?aHFNEtFOE9xFDDwjCZvgnXmw9urYapaeIkdS6IVW0dptldIVL8mEQxP0OpWTbTH5P?= =?utf-8?q?/2oWtVlr4m6qWe6xg9DkCHFTCiw+49GlwE0NvP/S2OHjJyj0bzpKRlrFWYQTfP+Si?= =?utf-8?q?z6VY7/6q3hBhGwzDNBzb+gv66kCHVbR+BMAV2/Pf3MfoPhj4uQ9CA7ab7TwHPzS1D?= =?utf-8?q?5TYEC/qdJEqvKin0HISx8O8Uj1tCDBk41/+5Je3wTco/6TWI6QUIYrRAK3vlAt8jW?= =?utf-8?q?Vv8y1YBYPyWPJepDOwWp+YGxXA5JliXNLO9MFQ8NjqjI+4JLwPbWuUdDkvo1Vixo4?= =?utf-8?q?RKXwknoWOiLIvY1Zy7E8PZh8T8qO7rQbrpLZntnqj045QcTctGIhrBIqQn8heweOa?= =?utf-8?q?srRsPqw3yi6cYf5LSXy02sUf/qfctcRI6YkyptaIbzxO9+uMMYbNSzSir4OWv8BjS?= =?utf-8?q?GPNFzPUuTmaHn7at0I7s9g9ViIvtqz5+UL/Dv+TuezjizQKipR8ITrnTsia2qrSkq?= =?utf-8?q?OQ5iyWdHGxhqGAp2KLTqFepQX0CLGDdnkbFJ2iZxuu1onh0/AUJasIw4rZExAgjqZ?= =?utf-8?q?ADoDiAPrw8AWfrUnW2Xf5QnjOi4QQ4BfMJdfwY+XiqxfC+g5KmwcW+ilQzhdKE3dV?= =?utf-8?q?pi5oVS1lk+HTAA7C2vIieX0gWpd+Xy1XjvX5ZrWmSYiC83TC8YjLGuljdPkudfvNN?= =?utf-8?q?sqhxMcH0X+CWuyKjh+dzn2+VZajDgnBAkbkHQkgndjKd5Yz703glehiZs43JL2KAb?= =?utf-8?q?UDpuG8Hljx9EciTPqbudoxh47DVRbVhY4eikLMPKS6SzXgxuOD/cBSRD7IXXLFlF4?= =?utf-8?q?MlMwKPPzDTloGWm1hbzutNbQ4Fj6uUJ/xwU9iH6lGw5nXg8Of61ekY=3D?= 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:64aa7808-outbound-1.mta.getcheckrecipient.com; CAT:NONE; SFS:(13230040)(35042699022)(1800799024)(14060799003)(36860700013)(376014)(82310400026); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2025 13:05:04.5538 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7a3fe380-94d4-467e-701a-08dd4453605f 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: AM4PEPF00027A60.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU5PR08MB10578 X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org This patch is an overhaul of how FMV name mangling works. Previously mangling logic was duplicated in several places across both target specific and independent code. This patch changes this such that all mangling is done in targetm.mangle_decl_assembler_name (including for the dispatched symbol and dispatcher resolver). This allows for the removing of previous hacks, such as where the default mangled decl's assembler name was unmangled to then remangle all versions and the resolver and dispatched symbol. This does introduce a change though (shown in test changes) where previously x86 for target annotated FMV sets set the function name to the assembler name and remangled this. This was hard to reproduce without resorting to hacks I wasn't comfortable with so the mangling is changed to append ".ifunc" which matches clang. This change also refactors expand_target_clone using targetm.mangle_decl_assembler_name for mangling and get_clone_versions. gcc/ChangeLog: * attribs.cc (make_dispatcher_decl): Refactor to use targetm.mangle_decl_assembler_name for mangling. * config/aarch64/aarch64.cc (aarch64_parse_fmv_features): Change to support string_slice. (aarch64_process_target_version_attr): Ditto. (get_feature_mask_for_version): Ditto. (aarch64_mangle_decl_assembler_name): Refactor to handle FMV dispatched symbol and resolver. (get_suffixed_assembler_name): Removed. (make_resolver_func): Refactor to use aarch64_mangle_decl_assembler_name for mangling. (aarch64_generate_version_dispatcher_body): Ditto. * config/i386/i386-features.cc (is_valid_asm_symbol): Moved from multiple_target.cc. (create_new_asm_name): Moved from gcc/multiple_target.cc. (ix86_mangle_function_version_assembler_name): Refactor to handle FMV dispatched symbol and resolver. (ix86_mangle_decl_assembler_name): Ditto. (ix86_get_function_versions_dispatcher): Refactor to use ix86_mangle_decl_assembler_name for mangling. (make_resolver_func): Ditto. * config/riscv/riscv.cc (riscv_mangle_decl_assembler_name): Refactor to handle FMV dispatched symbol and resolver. (get_suffixed_assembler_name): Removed. (make_resolver_func): Refactor to use riscv_mangle_decl_assembler_name for mangling. (riscv_generate_version_dispatcher_body): Ditto. * config/rs6000/rs6000.cc (rs6000_mangle_decl_assembler_name): Refactor to handle FMV dispatched symbol and resolver. (make_resolver_func): Refactor to use rs6000_mangle_function_version_assembler_name for mangling. (is_valid_asm_symbol): Moved from gcc/multiple_target.cc. (create_new_asm_name): Ditto. (rs6000_mangle_function_version_assembler_name): Refactor to handle FMV dispatched symbol and resolver. * multiple_target.cc (create_dispatcher_calls): Refactored to use targetm.mangle_decl_assembler_name for mangling. (is_valid_asm_symbol): Moved to target specific code. (create_new_asm_name): Ditto. (expand_target_clones): Refactored to use targetm.mangle_decl_assembler_name for mangling. gcc/cp/ChangeLog: * decl.cc (duplicate_decls): Added logic to remangle FMV decls when merging. gcc/testsuite/ChangeLog: * g++.target/i386/mv-symbols1.C: Change FMV mangling. * g++.target/i386/mv-symbols3.C: Ditto. * g++.target/i386/mv-symbols4.C: Ditto. * g++.target/i386/mv-symbols5.C: Ditto. --- gcc/attribs.cc | 25 +++- gcc/config/aarch64/aarch64.cc | 141 ++++++++----------- gcc/config/i386/i386-features.cc | 90 +++++++++--- gcc/config/riscv/riscv.cc | 95 ++++++------- gcc/config/rs6000/rs6000.cc | 104 +++++++++++++- gcc/cp/decl.cc | 13 ++ gcc/multiple_target.cc | 146 +++++++++----------- gcc/testsuite/g++.target/i386/mv-symbols1.C | 12 +- gcc/testsuite/g++.target/i386/mv-symbols3.C | 10 +- gcc/testsuite/g++.target/i386/mv-symbols4.C | 10 +- gcc/testsuite/g++.target/i386/mv-symbols5.C | 10 +- 11 files changed, 375 insertions(+), 281 deletions(-) diff --git a/gcc/attribs.cc b/gcc/attribs.cc index cb25845715d..687e6d4143a 100644 --- a/gcc/attribs.cc +++ b/gcc/attribs.cc @@ -39,6 +39,7 @@ along with GCC; see the file COPYING3. If not see #include "tree-pretty-print.h" #include "intl.h" #include "gcc-urlifier.h" +#include "cgraph.h" /* Table of the tables of attributes (common, language, format, machine) searched. */ @@ -1271,18 +1272,13 @@ common_function_versions (tree fn1, tree fn2) tree make_dispatcher_decl (const tree decl) { - tree func_decl; - char *func_name; - tree fn_type, func_type; - - func_name = xstrdup (IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl))); + tree func_decl, fn_type, func_type; fn_type = TREE_TYPE (decl); func_type = build_function_type (TREE_TYPE (fn_type), TYPE_ARG_TYPES (fn_type)); - func_decl = build_fn_decl (func_name, func_type); - XDELETEVEC (func_name); + func_decl = build_fn_decl (IDENTIFIER_POINTER (DECL_NAME (decl)), func_type); TREE_USED (func_decl) = 1; DECL_CONTEXT (func_decl) = NULL_TREE; DECL_INITIAL (func_decl) = error_mark_node; @@ -1293,6 +1289,21 @@ make_dispatcher_decl (const tree decl) /* This will be of type IFUNCs have to be externally visible. */ TREE_PUBLIC (func_decl) = 1; + cgraph_node *node = cgraph_node::get_create (decl); + + cgraph_node *func_node = cgraph_node::get_create (func_decl); + func_node->dispatcher_function = true; + + /* If the default node is from a target_clone, mark the dispatcher as from + target_clone. */ + if (node->is_target_clone) + func_node->is_target_clone = true; + + /* Get the assembler name by mangling with the base assembler name. */ + tree id = targetm.mangle_decl_assembler_name + (func_decl, node->function_version ()->assembler_name); + symtab->change_decl_assembler_name (func_decl, id); + return func_decl; } diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index 15dd7dda48a..420bbba9be2 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -19862,7 +19862,7 @@ static aarch64_fmv_feature_datum aarch64_fmv_feature_data[] = { #include "config/aarch64/aarch64-option-extensions.def" }; -/* Parse a function multiversioning feature string STR, as found in a +/* Parse a function multiversioning feature string_slice STR, as found in a target_version or target_clones attribute. If ISA_FLAGS is nonnull, then update it with the specified architecture @@ -19874,37 +19874,33 @@ static aarch64_fmv_feature_datum aarch64_fmv_feature_data[] = { the extension string is created and stored to INVALID_EXTENSION. */ static enum aarch_parse_opt_result -aarch64_parse_fmv_features (const char *str, aarch64_feature_flags *isa_flags, +aarch64_parse_fmv_features (string_slice str, aarch64_feature_flags *isa_flags, aarch64_fmv_feature_mask *feature_mask, std::string *invalid_extension) { if (feature_mask) *feature_mask = 0ULL; - if (strcmp (str, "default") == 0) + if (strcmp (str, string_slice ("default")) == 0) return AARCH_PARSE_OK; - while (str != NULL && *str != 0) + while (str.is_valid ()) { - const char *ext; - size_t len; + string_slice ext; - ext = strchr (str, '+'); + ext = string_slice::strtok (&str, string_slice ("+")); - if (ext != NULL) - len = ext - str; - else - len = strlen (str); - - if (len == 0) + // This doesnt seem to actually work :( + if (!ext.is_valid () || ext.empty ()) return AARCH_PARSE_MISSING_ARG; int num_features = ARRAY_SIZE (aarch64_fmv_feature_data); int i; for (i = 0; i < num_features; i++) { - if (strlen (aarch64_fmv_feature_data[i].name) == len - && strncmp (aarch64_fmv_feature_data[i].name, str, len) == 0) + if (strlen (aarch64_fmv_feature_data[i].name) == ext.size () + && strcmp (string_slice (aarch64_fmv_feature_data[i].name), ext) + == 0) { if (isa_flags) *isa_flags |= aarch64_fmv_feature_data[i].opt_flags; @@ -19916,7 +19912,8 @@ aarch64_parse_fmv_features (const char *str, aarch64_feature_flags *isa_flags, { /* Duplicate feature. */ if (invalid_extension) - *invalid_extension = std::string (str, len); + *invalid_extension + = std::string (ext.front (), ext.size ()); return AARCH_PARSE_DUPLICATE_FEATURE; } } @@ -19928,14 +19925,9 @@ aarch64_parse_fmv_features (const char *str, aarch64_feature_flags *isa_flags, { /* Feature not found in list. */ if (invalid_extension) - *invalid_extension = std::string (str, len); + *invalid_extension = std::string (str.front (), str.size ()); return AARCH_PARSE_INVALID_FEATURE; } - - str = ext; - if (str) - /* Skip over the next '+'. */ - str++; } return AARCH_PARSE_OK; @@ -19978,7 +19970,7 @@ aarch64_process_target_version_attr (tree args) auto isa_flags = aarch64_asm_isa_flags; std::string invalid_extension; - parse_res = aarch64_parse_fmv_features (str, &isa_flags, NULL, + parse_res = aarch64_parse_fmv_features (string_slice (str), &isa_flags, NULL, &invalid_extension); if (parse_res == AARCH_PARSE_OK) @@ -20079,8 +20071,8 @@ get_feature_mask_for_version (tree decl) enum aarch_parse_opt_result parse_res; aarch64_fmv_feature_mask feature_mask; - parse_res = aarch64_parse_fmv_features (version_string, NULL, &feature_mask, - NULL); + parse_res = aarch64_parse_fmv_features (string_slice (version_string), NULL, + &feature_mask, NULL); /* We should have detected any errors before getting here. */ gcc_assert (parse_res == AARCH_PARSE_OK); @@ -20175,36 +20167,39 @@ tree aarch64_mangle_decl_assembler_name (tree decl, tree id) { /* For function version, add the target suffix to the assembler name. */ - if (TREE_CODE (decl) == FUNCTION_DECL - && DECL_FUNCTION_VERSIONED (decl)) + if (TREE_CODE (decl) == FUNCTION_DECL) { - aarch64_fmv_feature_mask feature_mask = get_feature_mask_for_version (decl); - - std::string name = IDENTIFIER_POINTER (id); - - /* For the default version, append ".default". */ - if (feature_mask == 0ULL) + if (cgraph_node::get_create (decl)->dispatcher_function) + return id; + else if (cgraph_node::get_create (decl)->dispatcher_resolver_function) + id = clone_identifier (id, "resolver"); + else if (DECL_FUNCTION_VERSIONED (decl)) { - name += ".default"; - return get_identifier (name.c_str()); - } - - name += "._"; + aarch64_fmv_feature_mask feature_mask + = get_feature_mask_for_version (decl); - int num_features = ARRAY_SIZE (aarch64_fmv_feature_data); - for (int i = 0; i < num_features; i++) - { - if (feature_mask & aarch64_fmv_feature_data[i].feature_mask) + if (feature_mask == 0ULL) // && not implemented! { - name += "M"; - name += aarch64_fmv_feature_data[i].name; + if (!DECL_INITIAL (decl)) + return id; + return clone_identifier (id, "default"); } - } - if (DECL_ASSEMBLER_NAME_SET_P (decl)) - SET_DECL_RTL (decl, NULL); + std::string suffix = "_"; + + int num_features = ARRAY_SIZE (aarch64_fmv_feature_data); + for (int i = 0; i < num_features; i++) + if (feature_mask & aarch64_fmv_feature_data[i].feature_mask) + { + suffix += "M"; + suffix += aarch64_fmv_feature_data[i].name; + } + + if (DECL_ASSEMBLER_NAME_SET_P (decl)) + SET_DECL_RTL (decl, NULL); - id = get_identifier (name.c_str()); + id = clone_identifier (id, suffix.c_str ()); + } } return id; } @@ -20213,18 +20208,6 @@ aarch64_mangle_decl_assembler_name (tree decl, tree id) This is computed by taking the default version's assembler name, and stripping off the ".default" suffix if it's already been appended. */ -static tree -get_suffixed_assembler_name (tree default_decl, const char *suffix) -{ - std::string name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (default_decl)); - - auto size = name.size (); - if (size >= 8 && name.compare (size - 8, 8, ".default") == 0) - name.resize (size - 8); - name += suffix; - return get_identifier (name.c_str()); -} - /* Make the resolver function decl to dispatch the versions of a multi-versioned function, DEFAULT_DECL. IFUNC_ALIAS_DECL is ifunc alias that will point to the created resolver. Create an @@ -20240,8 +20223,6 @@ make_resolver_func (const tree default_decl, /* Create resolver function name based on default_decl. We need to remove an existing ".default" suffix if this has already been appended. */ - tree decl_name = get_suffixed_assembler_name (default_decl, ".resolver"); - const char *resolver_name = IDENTIFIER_POINTER (decl_name); /* The resolver function should have signature (void *) resolver (uint64_t, const __ifunc_arg_t *) */ @@ -20250,10 +20231,17 @@ make_resolver_func (const tree default_decl, build_ifunc_arg_type (), NULL_TREE); - decl = build_fn_decl (resolver_name, type); - SET_DECL_ASSEMBLER_NAME (decl, decl_name); + cgraph_node *node = cgraph_node::get (default_decl); + gcc_assert (node && node->function_version ()); + + decl = build_fn_decl (IDENTIFIER_POINTER (DECL_NAME (default_decl)), type); + cgraph_node *resolver_node = cgraph_node::get_create (decl); + resolver_node->dispatcher_resolver_function = true; + + tree id = aarch64_mangle_decl_assembler_name ( + decl, node->function_version ()->assembler_name); + symtab->change_decl_assembler_name (decl, id); - DECL_NAME (decl) = decl_name; TREE_USED (decl) = 1; DECL_ARTIFICIAL (decl) = 1; DECL_IGNORED_P (decl) = 1; @@ -20318,7 +20306,7 @@ make_resolver_func (const tree default_decl, gcc_assert (ifunc_alias_decl != NULL); /* Mark ifunc_alias_decl as "ifunc" with resolver as resolver_name. */ DECL_ATTRIBUTES (ifunc_alias_decl) - = make_attribute ("ifunc", resolver_name, + = make_attribute ("ifunc", IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)), DECL_ATTRIBUTES (ifunc_alias_decl)); /* Create the alias for dispatch to resolver here. */ @@ -20595,27 +20583,6 @@ aarch64_generate_version_dispatcher_body (void *node_p) cgraph_edge::rebuild_edges (); pop_cfun (); - /* Fix up symbol names. First we need to obtain the base name, which may - have already been mangled. */ - tree base_name = get_suffixed_assembler_name (default_ver_decl, ""); - - /* We need to redo the version mangling on the non-default versions for the - target_clones case. Redoing the mangling for the target_version case is - redundant but does no harm. We need to skip the default version, because - expand_clones will append ".default" later; fortunately that suffix is the - one we want anyway. */ - for (versn_info = node_version_info->next->next; versn_info; - versn_info = versn_info->next) - { - tree version_decl = versn_info->this_node->decl; - tree name = aarch64_mangle_decl_assembler_name (version_decl, - base_name); - symtab->change_decl_assembler_name (version_decl, name); - } - - /* We also need to use the base name for the ifunc declaration. */ - symtab->change_decl_assembler_name (node->decl, base_name); - return resolver_decl; } diff --git a/gcc/config/i386/i386-features.cc b/gcc/config/i386/i386-features.cc index 2eb3a21bb5d..4c03a8acd4d 100644 --- a/gcc/config/i386/i386-features.cc +++ b/gcc/config/i386/i386-features.cc @@ -3888,6 +3888,37 @@ dispatch_function_versions (tree dispatch_decl, return 0; } +/* Return true if symbol is valid in assembler name. */ + +static bool +is_valid_asm_symbol (char c) +{ + if ('a' <= c && c <= 'z') + return true; + if ('A' <= c && c <= 'Z') + return true; + if ('0' <= c && c <= '9') + return true; + if (c == '_') + return true; + return false; +} + +/* Replace all not valid assembler symbols with '_'. */ +static void +create_new_asm_name (char *old_asm_name, char *new_asm_name) +{ + int i; + int old_name_len = strlen (old_asm_name); + /* Replace all not valid assembler symbols with '_'. */ + for (i = 0; i < old_name_len; i++) + if (!is_valid_asm_symbol (old_asm_name[i])) + new_asm_name[i] = '_'; + else + new_asm_name[i] = old_asm_name[i]; + new_asm_name[old_name_len] = '\0'; +} + /* This function changes the assembler name for functions that are versions. If DECL is a function version and has a "target" attribute, it appends the attribute string to its assembler name. */ @@ -3896,8 +3927,7 @@ static tree ix86_mangle_function_version_assembler_name (tree decl, tree id) { tree version_attr; - const char *orig_name, *version_string; - char *attr_str, *assembler_name; + char *attr_str; if (DECL_DECLARED_INLINE_P (decl) && lookup_attribute ("gnu_inline", @@ -3915,25 +3945,24 @@ ix86_mangle_function_version_assembler_name (tree decl, tree id) /* target attribute string cannot be NULL. */ gcc_assert (version_attr != NULL_TREE); - orig_name = IDENTIFIER_POINTER (id); - version_string - = TREE_STRING_POINTER (TREE_VALUE (TREE_VALUE (version_attr))); - - if (strcmp (version_string, "default") == 0) + if (!cgraph_node::get_create (decl)->is_target_clone + && is_function_default_version (decl)) return id; attr_str = sorted_attr_string (TREE_VALUE (version_attr)); - assembler_name = XNEWVEC (char, strlen (orig_name) + strlen (attr_str) + 2); - sprintf (assembler_name, "%s.%s", orig_name, attr_str); + char *suffix = XNEWVEC (char, strlen (attr_str) + 1); + create_new_asm_name (attr_str, suffix); /* Allow assembler name to be modified if already set. */ if (DECL_ASSEMBLER_NAME_SET_P (decl)) SET_DECL_RTL (decl, NULL); - tree ret = get_identifier (assembler_name); + tree ret = clone_identifier (id, suffix); + XDELETEVEC (attr_str); - XDELETEVEC (assembler_name); + XDELETEVEC (suffix); + return ret; } @@ -3941,9 +3970,17 @@ tree ix86_mangle_decl_assembler_name (tree decl, tree id) { /* For function version, add the target suffix to the assembler name. */ - if (TREE_CODE (decl) == FUNCTION_DECL - && DECL_FUNCTION_VERSIONED (decl)) - id = ix86_mangle_function_version_assembler_name (decl, id); + if (TREE_CODE (decl) == FUNCTION_DECL) + { + if (DECL_FUNCTION_VERSIONED (decl)) + id = ix86_mangle_function_version_assembler_name (decl, id); + /* Mangle the dispatched symbol but only in the case of target clones. */ + else if (cgraph_node::get_create (decl)->dispatcher_function + && !cgraph_node::get_create (decl)->is_target_clone) + id = clone_identifier (id, "ifunc"); + else if (cgraph_node::get_create (decl)->dispatcher_resolver_function) + id = clone_identifier (id, "resolver"); + } #ifdef SUBTARGET_MANGLE_DECL_ASSEMBLER_NAME id = SUBTARGET_MANGLE_DECL_ASSEMBLER_NAME (decl, id); #endif @@ -3982,6 +4019,7 @@ ix86_get_function_versions_dispatcher (void *decl) default_version_info = node_v; while (default_version_info->prev != NULL) default_version_info = default_version_info->prev; + default_node = default_version_info->this_node; /* If there is no default node, just return NULL. */ if (!is_function_default_version (default_node->decl)) @@ -4038,17 +4076,25 @@ make_resolver_func (const tree default_decl, { tree decl, type, t; - /* Create resolver function name based on default_decl. */ - tree decl_name = clone_function_name (default_decl, "resolver"); - const char *resolver_name = IDENTIFIER_POINTER (decl_name); - /* The resolver function should return a (void *). */ type = build_function_type_list (ptr_type_node, NULL_TREE); - decl = build_fn_decl (resolver_name, type); - SET_DECL_ASSEMBLER_NAME (decl, decl_name); + cgraph_node *node = cgraph_node::get (default_decl); + gcc_assert (node && node->function_version ()); + + decl = build_fn_decl (IDENTIFIER_POINTER (DECL_NAME (default_decl)), type); + + cgraph_node *resolver_node = cgraph_node::get_create (decl); + resolver_node->dispatcher_resolver_function = true; + + if (node->is_target_clone) + resolver_node->is_target_clone = true; + + tree id = ix86_mangle_decl_assembler_name + (decl, node->function_version ()->assembler_name); + SET_DECL_ASSEMBLER_NAME (decl, id); - DECL_NAME (decl) = decl_name; + DECL_NAME (decl) = DECL_NAME (default_decl); TREE_USED (decl) = 1; DECL_ARTIFICIAL (decl) = 1; DECL_IGNORED_P (decl) = 1; @@ -4095,7 +4141,7 @@ make_resolver_func (const tree default_decl, gcc_assert (ifunc_alias_decl != NULL); /* Mark ifunc_alias_decl as "ifunc" with resolver as resolver_name. */ DECL_ATTRIBUTES (ifunc_alias_decl) - = make_attribute ("ifunc", resolver_name, + = make_attribute ("ifunc", IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)), DECL_ATTRIBUTES (ifunc_alias_decl)); /* Create the alias for dispatch to resolver here. */ diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc index 69e47ec7e79..142f27b78f6 100644 --- a/gcc/config/riscv/riscv.cc +++ b/gcc/config/riscv/riscv.cc @@ -13204,32 +13204,39 @@ tree riscv_mangle_decl_assembler_name (tree decl, tree id) { /* For function version, add the target suffix to the assembler name. */ - if (TREE_CODE (decl) == FUNCTION_DECL - && DECL_FUNCTION_VERSIONED (decl)) + if (TREE_CODE (decl) == FUNCTION_DECL) { - std::string name = IDENTIFIER_POINTER (id) + std::string ("."); - tree target_attr = lookup_attribute ("target_version", - DECL_ATTRIBUTES (decl)); - - if (target_attr == NULL_TREE) + if (cgraph_node::get_create (decl)->dispatcher_resolver_function) + return clone_identifier (id, "resolver"); + /* Do not mangle the default if it is not implemented. + If the default is external to the TU the ifunc resolver is not created + and the dispatched symbol is not created, so the default version can + be called unmangled. */ + else if (is_function_default_version (decl) && !DECL_INITIAL (decl)) + return id; + else if (DECL_FUNCTION_VERSIONED (decl)) { - name += "default"; - return get_identifier (name.c_str ()); - } + tree target_attr + = lookup_attribute ("target_version", DECL_ATTRIBUTES (decl)); - const char *version_string = TREE_STRING_POINTER (TREE_VALUE (TREE_VALUE - (target_attr))); + if (target_attr == NULL_TREE) + return clone_identifier (id, "default"); - /* Replace non-alphanumeric characters with underscores as the suffix. */ - for (const char *c = version_string; *c; c++) - name += ISALNUM (*c) == 0 ? '_' : *c; + const char *version_string + = TREE_STRING_POINTER (TREE_VALUE (TREE_VALUE (target_attr))); - if (DECL_ASSEMBLER_NAME_SET_P (decl)) - SET_DECL_RTL (decl, NULL); + /* Replace non-alphanumeric characters with underscores as the suffix. + */ + std::string suffix = ""; + for (const char *c = version_string; *c; c++) + suffix += ISALNUM (*c) == 0 ? '_' : *c; - id = get_identifier (name.c_str ()); - } + if (DECL_ASSEMBLER_NAME_SET_P (decl)) + SET_DECL_RTL (decl, NULL); + id = clone_identifier (id, suffix.c_str ()); + } + } return id; } @@ -13510,22 +13517,6 @@ dispatch_function_versions (tree dispatch_decl, return 0; } -/* Return an identifier for the base assembler name of a versioned function. - This is computed by taking the default version's assembler name, and - stripping off the ".default" suffix if it's already been appended. */ - -static tree -get_suffixed_assembler_name (tree default_decl, const char *suffix) -{ - std::string name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (default_decl)); - - auto size = name.size (); - if (size >= 8 && name.compare (size - 8, 8, ".default") == 0) - name.resize (size - 8); - name += suffix; - return get_identifier (name.c_str ()); -} - /* Make the resolver function decl to dispatch the versions of a multi-versioned function, DEFAULT_DECL. IFUNC_ALIAS_DECL is ifunc alias that will point to the created resolver. Create an @@ -13539,10 +13530,8 @@ make_resolver_func (const tree default_decl, { tree decl, type, t; - /* Create resolver function name based on default_decl. We need to remove an - existing ".default" suffix if this has already been appended. */ - tree decl_name = get_suffixed_assembler_name (default_decl, ".resolver"); - const char *resolver_name = IDENTIFIER_POINTER (decl_name); + cgraph_node *node = cgraph_node::get (default_decl); + gcc_assert (node && node->function_version ()); /* The resolver function should have signature (void *) resolver (uint64_t, void *) */ @@ -13551,10 +13540,18 @@ make_resolver_func (const tree default_decl, ptr_type_node, NULL_TREE); - decl = build_fn_decl (resolver_name, type); - SET_DECL_ASSEMBLER_NAME (decl, decl_name); + decl = build_fn_decl (IDENTIFIER_POINTER (DECL_NAME (default_decl)), type); + + cgraph_node *resolver_node = cgraph_node::get_create (decl); + resolver_node->dispatcher_resolver_function = true; + + if (node->is_target_clone) + resolver_node->is_target_clone = true; + + tree id = riscv_mangle_decl_assembler_name ( + decl, node->function_version ()->assembler_name); + symtab->change_decl_assembler_name (decl, id); - DECL_NAME (decl) = decl_name; TREE_USED (decl) = 1; DECL_ARTIFICIAL (decl) = 1; DECL_IGNORED_P (decl) = 1; @@ -13619,7 +13616,7 @@ make_resolver_func (const tree default_decl, gcc_assert (ifunc_alias_decl != NULL); /* Mark ifunc_alias_decl as "ifunc" with resolver as resolver_name. */ DECL_ATTRIBUTES (ifunc_alias_decl) - = make_attribute ("ifunc", resolver_name, + = make_attribute ("ifunc", IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)), DECL_ATTRIBUTES (ifunc_alias_decl)); /* Create the alias for dispatch to resolver here. */ @@ -13686,24 +13683,12 @@ riscv_generate_version_dispatcher_body (void *node_p) /* Fix up symbol names. First we need to obtain the base name, which may have already been mangled. */ - tree base_name = get_suffixed_assembler_name (default_ver_decl, ""); /* We need to redo the version mangling on the non-default versions for the target_clones case. Redoing the mangling for the target_version case is redundant but does no harm. We need to skip the default version, because expand_clones will append ".default" later; fortunately that suffix is the one we want anyway. */ - for (versn_info = node_version_info->next->next; versn_info; - versn_info = versn_info->next) - { - tree version_decl = versn_info->this_node->decl; - tree name = riscv_mangle_decl_assembler_name (version_decl, - base_name); - symtab->change_decl_assembler_name (version_decl, name); - } - - /* We also need to use the base name for the ifunc declaration. */ - symtab->change_decl_assembler_name (node->decl, base_name); return resolver_decl; } diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc index c59bd43c76d..6ef769a1084 100644 --- a/gcc/config/rs6000/rs6000.cc +++ b/gcc/config/rs6000/rs6000.cc @@ -88,6 +88,7 @@ extern tree rs6000_builtin_mask_for_load (void); extern tree rs6000_builtin_md_vectorized_function (tree, tree, tree); extern tree rs6000_builtin_reciprocal (tree); +static tree rs6000_mangle_decl_assembler_name (tree, tree); /* Set -mabi=ieeelongdouble on some old targets. In the future, power server systems will also set long double to be IEEE 128-bit. AIX and Darwin @@ -25379,13 +25380,21 @@ make_resolver_func (const tree default_decl, { /* Make the resolver function static. The resolver function returns void *. */ - tree decl_name = clone_function_name (default_decl, "resolver"); - const char *resolver_name = IDENTIFIER_POINTER (decl_name); tree type = build_function_type_list (ptr_type_node, NULL_TREE); - tree decl = build_fn_decl (resolver_name, type); - SET_DECL_ASSEMBLER_NAME (decl, decl_name); + tree decl = build_fn_decl (IDENTIFIER_POINTER (DECL_NAME (default_decl)), + type); - DECL_NAME (decl) = decl_name; + cgraph_node *node = cgraph_node::get (default_decl); + gcc_assert (node && node->function_version ()); + + cgraph_node *resolver_node = cgraph_node::get_create (decl); + resolver_node->dispatcher_resolver_function = true; + + tree id = rs6000_mangle_decl_assembler_name + (decl, node->function_version ()->assembler_name); + symtab->change_decl_assembler_name (decl, id); + + DECL_NAME (decl) = DECL_NAME (default_decl); TREE_USED (decl) = 1; DECL_ARTIFICIAL (decl) = 1; DECL_IGNORED_P (decl) = 0; @@ -25431,7 +25440,8 @@ make_resolver_func (const tree default_decl, /* Mark dispatch_decl as "ifunc" with resolver as resolver_name. */ DECL_ATTRIBUTES (dispatch_decl) - = make_attribute ("ifunc", resolver_name, DECL_ATTRIBUTES (dispatch_decl)); + = make_attribute ("ifunc", IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl)), + DECL_ATTRIBUTES (dispatch_decl)); cgraph_node::create_same_body_alias (dispatch_decl, decl); @@ -28471,6 +28481,81 @@ complex_divide_builtin_code (machine_mode mode) return (built_in_function) func; } +static bool +is_valid_asm_symbol (char c) +{ + if ('a' <= c && c <= 'z') + return true; + if ('A' <= c && c <= 'Z') + return true; + if ('0' <= c && c <= '9') + return true; + if (c == '_') + return true; + return false; +} + +/* Replace all not valid assembler symbols with '_'. */ +static void +create_new_asm_name (char *old_asm_name, char *new_asm_name) +{ + int i; + int old_name_len = strlen (old_asm_name); + /* Replace all not valid assembler symbols with '_'. */ + for (i = 0; i < old_name_len; i++) + if (!is_valid_asm_symbol (old_asm_name[i])) + new_asm_name[i] = '_'; + else + new_asm_name[i] = old_asm_name[i]; + new_asm_name[old_name_len] = '\0'; +} + +/* This function changes the assembler name for functions that are + versions. If DECL is a function version and has a "target" + attribute, it appends the attribute string to its assembler name. */ + +static tree +rs6000_mangle_function_version_assembler_name (tree decl, tree id) +{ + tree version_attr; + const char *version_string; + char *attr_str; + + if (DECL_DECLARED_INLINE_P (decl) + && lookup_attribute ("gnu_inline", DECL_ATTRIBUTES (decl))) + error_at (DECL_SOURCE_LOCATION (decl), + "function versions cannot be marked as %," + " bodies have to be generated"); + + if (DECL_VIRTUAL_P (decl) || DECL_VINDEX (decl)) + sorry ("virtual function multiversioning not supported"); + + version_attr = lookup_attribute ("target", DECL_ATTRIBUTES (decl)); + + /* target attribute string cannot be NULL. */ + gcc_assert (version_attr != NULL_TREE); + + version_string = TREE_STRING_POINTER (TREE_VALUE (TREE_VALUE (version_attr))); + + if (strcmp (version_string, "default") == 0) + return clone_identifier (id, "default"); + + attr_str = sorted_attr_string (TREE_VALUE (version_attr)); + + char *suffix = XNEWVEC (char, strlen (attr_str) + 1); + create_new_asm_name (attr_str, suffix); + + /* Allow assembler name to be modified if already set. */ + if (DECL_ASSEMBLER_NAME_SET_P (decl)) + SET_DECL_RTL (decl, NULL); + + tree ret = clone_identifier (id, suffix); + + XDELETEVEC (attr_str); + XDELETEVEC (suffix); + return ret; +} + /* On 64-bit Linux and Freebsd systems, possibly switch the long double library function names from l to f128 if the default long double type is IEEE 128-bit. Typically, with the C and C++ languages, the standard math.h @@ -28656,6 +28741,13 @@ rs6000_mangle_decl_assembler_name (tree decl, tree id) } } + if (TREE_CODE (decl) == FUNCTION_DECL) + { + if (cgraph_node::get_create (decl)->dispatcher_resolver_function) + id = clone_identifier (id, "resolver"); + else if (DECL_FUNCTION_VERSIONED (decl)) + id = rs6000_mangle_function_version_assembler_name (decl, id); + } return id; } diff --git a/gcc/cp/decl.cc b/gcc/cp/decl.cc index fdef98f8062..9e1a2e0a9bd 100644 --- a/gcc/cp/decl.cc +++ b/gcc/cp/decl.cc @@ -3375,6 +3375,19 @@ duplicate_decls (tree newdecl, tree olddecl, bool hiding, bool was_hidden) } } + /* If merging versioned functions, it is possible olddecl needs to be + re-mangled. */ + if (TREE_CODE (olddecl) == FUNCTION_DECL && DECL_FUNCTION_VERSIONED (olddecl)) + { + /* The function version and assembler name should have been initialized + when DECL_FUNCTION_VERSIONED was set. */ + gcc_assert (cgraph_node::get (olddecl)->function_version ()); + tree id = targetm.mangle_decl_assembler_name + (olddecl, cgraph_node::get (olddecl)->function_version () + ->assembler_name); + symtab->change_decl_assembler_name (olddecl, id); + } + /* Remove the associated constraints for newdecl, if any, before reclaiming memory. */ if (flag_concepts) diff --git a/gcc/multiple_target.cc b/gcc/multiple_target.cc index d8becf4d9a9..6aeceadbfd1 100644 --- a/gcc/multiple_target.cc +++ b/gcc/multiple_target.cc @@ -162,9 +162,6 @@ create_dispatcher_calls (struct cgraph_node *node) } } - tree fname = clone_function_name (node->decl, "default"); - symtab->change_decl_assembler_name (node->decl, fname); - if (node->definition) { /* FIXME: copy of cgraph_node::make_local that should be cleaned up @@ -241,39 +238,6 @@ separate_attrs (char *attr_str, char **attrs, int attrnum) return i; } -/* Return true if symbol is valid in assembler name. */ - -static bool -is_valid_asm_symbol (char c) -{ - if ('a' <= c && c <= 'z') - return true; - if ('A' <= c && c <= 'Z') - return true; - if ('0' <= c && c <= '9') - return true; - if (c == '_') - return true; - return false; -} - -/* Replace all not valid assembler symbols with '_'. */ - -static void -create_new_asm_name (char *old_asm_name, char *new_asm_name) -{ - int i; - int old_name_len = strlen (old_asm_name); - - /* Replace all not valid assembler symbols with '_'. */ - for (i = 0; i < old_name_len; i++) - if (!is_valid_asm_symbol (old_asm_name[i])) - new_asm_name[i] = '_'; - else - new_asm_name[i] = old_asm_name[i]; - new_asm_name[old_name_len] = '\0'; -} - /* Creates target clone of NODE. */ static cgraph_node * @@ -309,7 +273,6 @@ create_target_clone (cgraph_node *node, bool definition, char *name, static bool expand_target_clones (struct cgraph_node *node, bool definition) { - int i; /* Parsing target attributes separated by TARGET_CLONES_ATTR_SEPARATOR. */ tree attr_target = lookup_attribute ("target_clones", DECL_ATTRIBUTES (node->decl)); @@ -317,11 +280,11 @@ expand_target_clones (struct cgraph_node *node, bool definition) if (!attr_target) return false; - tree arglist = TREE_VALUE (attr_target); - int attr_len = get_target_clone_attr_len (arglist); + int num_def = 0; + auto_vec attr_list = get_clone_versions (node->decl, &num_def); /* No need to clone for 1 target attribute. */ - if (attr_len == -1) + if (attr_list.length () == 1) { warning_at (DECL_SOURCE_LOCATION (node->decl), 0, "single % attribute is ignored"); @@ -348,67 +311,70 @@ expand_target_clones (struct cgraph_node *node, bool definition) return false; } - char *attr_str = XNEWVEC (char, attr_len); - int attrnum = get_attr_str (arglist, attr_str); - char **attrs = XNEWVEC (char *, attrnum); - - attrnum = separate_attrs (attr_str, attrs, attrnum); - switch (attrnum) + /* Disallow multiple defaults. */ + if (num_def > 1) { - case -1: - error_at (DECL_SOURCE_LOCATION (node->decl), - "% target was not set"); - break; - case -2: - error_at (DECL_SOURCE_LOCATION (node->decl), - "an empty string cannot be in % attribute"); - break; - case -3: error_at (DECL_SOURCE_LOCATION (node->decl), "multiple % targets were set"); - break; - default: - break; + return false; } - - if (attrnum < 0) + /* Disallow target clones with no defaults. */ + if (num_def == 0 && TARGET_HAS_FMV_TARGET_ATTRIBUTE) { - XDELETEVEC (attrs); - XDELETEVEC (attr_str); + error_at (DECL_SOURCE_LOCATION (node->decl), + "% target was not set"); return false; } - const char *new_attr_name = (TARGET_HAS_FMV_TARGET_ATTRIBUTE - ? "target" : "target_version"); + /* Disallow any empty values in the clone attr. */ + for (string_slice attr : attr_list) + if (attr == string_slice ("") || !attr.is_valid ()) + { + error_at (DECL_SOURCE_LOCATION (node->decl), + "an empty string cannot be in % attribute"); + return false; + } + + string_slice new_attr_name = string_slice + (TARGET_HAS_FMV_TARGET_ATTRIBUTE ? "target" : "target_version"); cgraph_function_version_info *decl1_v = NULL; cgraph_function_version_info *decl2_v = NULL; cgraph_function_version_info *before = NULL; cgraph_function_version_info *after = NULL; decl1_v = node->function_version (); - if (decl1_v == NULL) - decl1_v = node->insert_new_function_version (); + /* Function version should have been initialized when the target_clone was + processed in the front-end. */ + gcc_assert (decl1_v); before = decl1_v; DECL_FUNCTION_VERSIONED (node->decl) = 1; - - for (i = 0; i < attrnum; i++) + node->is_target_clone = true; + + /* The existing decl is turned into one of the target versions. + If there is a default in the list then this decl is used for that version + as the calls are already to it so in the case where there is no + implementation and !TARGET_HAS_FMV_TARGET_ATTRIBUTE there is no redirection + necessary. + Otherwise, the first version listed in the attribute is used. */ + string_slice this_node_version = num_def ? string_slice ("default") + : attr_list.pop (); + + for (string_slice attr : attr_list) { - char *attr = attrs[i]; + /* Skip default nodes. */ + if (attr == string_slice ("default")) + continue; /* Create new target clone. */ tree attributes = make_attribute (new_attr_name, attr, DECL_ATTRIBUTES (node->decl)); - char *suffix = XNEWVEC (char, strlen (attr) + 1); - create_new_asm_name (attr, suffix); - cgraph_node *new_node = create_target_clone (node, definition, suffix, - attributes); - XDELETEVEC (suffix); + /* Remove the target_clones attribute, as this can confuse + is_function_default_version. */ + remove_attribute ("target_clones", attributes); + cgraph_node *new_node + = create_target_clone (node, definition, NULL, attributes); if (new_node == NULL) - { - XDELETEVEC (attrs); - XDELETEVEC (attr_str); - return false; - } + return false; new_node->local = false; decl2_v = new_node->function_version (); @@ -427,16 +393,30 @@ expand_target_clones (struct cgraph_node *node, bool definition) before->next = after; after->prev = before; DECL_FUNCTION_VERSIONED (new_node->decl) = 1; - } - XDELETEVEC (attrs); - XDELETEVEC (attr_str); + /* Use the base nodes assembler name for all created nodes. */ + new_node->function_version ()->assembler_name + = node->function_version ()->assembler_name; + new_node->is_target_clone = true; + + /* Mangle all new nodes. */ + tree id = targetm.mangle_decl_assembler_name ( + new_node->decl, new_node->function_version ()->assembler_name); + symtab->change_decl_assembler_name (new_node->decl, id); + } /* Setting new attribute to initial function. */ - tree attributes = make_attribute (new_attr_name, "default", + tree attributes = make_attribute (new_attr_name, this_node_version, DECL_ATTRIBUTES (node->decl)); + remove_attribute ("target_clones", attributes); DECL_ATTRIBUTES (node->decl) = attributes; node->local = false; + + /* Remangle base node after new target version string set. */ + tree id = targetm.mangle_decl_assembler_name + (node->decl, node->function_version ()->assembler_name); + symtab->change_decl_assembler_name (node->decl, id); + return true; } diff --git a/gcc/testsuite/g++.target/i386/mv-symbols1.C b/gcc/testsuite/g++.target/i386/mv-symbols1.C index 1290299aea5..3163f03ddd8 100644 --- a/gcc/testsuite/g++.target/i386/mv-symbols1.C +++ b/gcc/testsuite/g++.target/i386/mv-symbols1.C @@ -55,14 +55,14 @@ int bar(int x) /* { dg-final { scan-assembler-times "\n_Z3foov\.arch_slm:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\.sse4.2:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\tcall\t_Z7_Z3foovv\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.type\t_Z7_Z3foovv, @gnu_indirect_function\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.set\t_Z7_Z3foovv,_Z3foov\.resolver\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov.ifunc\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov.ifunc, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov.ifunc,_Z3foov\.resolver\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch_slm:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.sse4.2:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\tcall\t_Z7_Z3fooii\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.type\t_Z7_Z3fooii, @gnu_indirect_function\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.set\t_Z7_Z3fooii,_Z3fooi\.resolver\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi.ifunc\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi.ifunc, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi.ifunc,_Z3fooi\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/g++.target/i386/mv-symbols3.C b/gcc/testsuite/g++.target/i386/mv-symbols3.C index a5cf3445a43..67b27351143 100644 --- a/gcc/testsuite/g++.target/i386/mv-symbols3.C +++ b/gcc/testsuite/g++.target/i386/mv-symbols3.C @@ -32,13 +32,13 @@ int bar() /* { dg-final { scan-assembler-times "\n_Z3foov\.arch_slm:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\.sse4.2:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\tcall\t_Z7_Z3foovv\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.type\t_Z7_Z3foovv, @gnu_indirect_function\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.set\t_Z7_Z3foovv,_Z3foov\.resolver\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov.ifunc\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov.ifunc, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov.ifunc,_Z3foov\.resolver\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch_slm:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.sse4.2:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n\t\.type\t_Z7_Z3fooii, @gnu_indirect_function\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n\t\.set\t_Z7_Z3fooii,_Z3fooi\.resolver\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi.ifunc, @gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi.ifunc,_Z3fooi\.resolver\n" 0 } } */ diff --git a/gcc/testsuite/g++.target/i386/mv-symbols4.C b/gcc/testsuite/g++.target/i386/mv-symbols4.C index bb10f126f67..c82db70da35 100644 --- a/gcc/testsuite/g++.target/i386/mv-symbols4.C +++ b/gcc/testsuite/g++.target/i386/mv-symbols4.C @@ -38,13 +38,13 @@ int bar() /* { dg-final { scan-assembler-times "\n_Z3foov\.arch_slm:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\.sse4.2:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\tcall\t_Z7_Z3foovv\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.type\t_Z7_Z3foovv, @gnu_indirect_function\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.set\t_Z7_Z3foovv,_Z3foov\.resolver\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov.ifunc\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov.ifunc, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov.ifunc,_Z3foov\.resolver\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch_slm:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.sse4.2:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n\t\.type\t_Z7_Z3fooii, @gnu_indirect_function\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n\t\.set\t_Z7_Z3fooii,_Z3fooi\.resolver\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi.ifunc, @gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi.ifunc,_Z3fooi\.resolver\n" 0 } } */ diff --git a/gcc/testsuite/g++.target/i386/mv-symbols5.C b/gcc/testsuite/g++.target/i386/mv-symbols5.C index d36e4c304c2..7792f113f22 100644 --- a/gcc/testsuite/g++.target/i386/mv-symbols5.C +++ b/gcc/testsuite/g++.target/i386/mv-symbols5.C @@ -44,13 +44,13 @@ int bar() /* { dg-final { scan-assembler-times "\n_Z3foov\.arch_slm:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\.sse4.2:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\tcall\t_Z7_Z3foovv\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.type\t_Z7_Z3foovv, @gnu_indirect_function\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.set\t_Z7_Z3foovv,_Z3foov\.resolver\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov.ifunc\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov.ifunc, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov.ifunc,_Z3foov\.resolver\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch_slm:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.sse4.2:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n\t\.type\t_Z7_Z3fooii, @gnu_indirect_function\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n\t\.set\t_Z7_Z3fooii,_Z3fooi\.resolver\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi.ifunc, @gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi.ifunc,_Z3fooi\.resolver\n" 0 } } */ From patchwork Mon Feb 3 13:04:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alfie Richards X-Patchwork-Id: 105909 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 1F5C8385841D for ; Mon, 3 Feb 2025 13:06:01 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on20609.outbound.protection.outlook.com [IPv6:2a01:111:f403:2612::609]) by sourceware.org (Postfix) with ESMTPS id 126D13858C56 for ; Mon, 3 Feb 2025 13:05:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 126D13858C56 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 126D13858C56 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:2612::609 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587924; cv=pass; b=f3zuEojtulCHsCZ9lcWQHMuGR6x/ZBM9HJPO6C+hWFKBOOnaqQvRJAaLc/K3jcrVR2DMpYpKYN2uvfncdt6FQSzYRboRU7KYLRMIMDnYEEwqN30sqwdNzUiAhY+t8XQqwMvFa9dytmBkhHEjrTYgR026yL9CAl7YX9zOv/6ldC4= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587924; c=relaxed/simple; bh=dX/MrxEw1Jm5T0s3SPtbnyh0ckQK0vgK9XaAHdgXEqM=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=VHuI5SBT92EwDKqKF9Qx81Gf8ZuF/ysswOGPFmXBEatNx3/cK4NRqx3wpRyNxPE6cdt2RPxPEPFP0j8wKJLQ/K50xeApxk2gHjNogrmLdoBmdnHMYKlZ3I10wgCtrXOQFrZ22D16oOl31iznKayS5Ixsj/AtVoGIXR+On3cr8I8= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=am9mNhuRbh/Z3Y/hxn4ky/Dr+S3Rg4bkwkU1D0+eHn8SKSMTBJhNblFFxOMm/949GA0xlhZ5YY+hV/MkrllrhRotuL9LBdIMUlDrfiI3nHEGk1Tdr6nwoo+t3orNphy4avXgVJgSzbdaHesuEvLFfq9ZaEl0P3YnJlYepVlPShKjifYJjWxilUs4b512vSvtyValMem5QayvLseyM2Bo/oNMixtbssERUo3c77V8Qvef/Qr8F8YNJvFkh2e/kIwp0Ii2ybLxbmBQ+w+Qh0FYLaZkP0lWyx1kG6ShJAM8IKTaSMdYKugQ4m7IPzP6fBgF09Vyt7KPScu2j0JBsT5JEQ== ARC-Message-Signature: i=2; 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=VdPBPq9OP5Y99rhS+e8r7MMUz3RAuGYh+qI1oWWyfQs=; b=JKf50Zr1ylzX/Pyuo1LCYD/cU01kWjfBvZTigXPxSt3P2J5fJK1fGF6GlewfVDeWHAY1Vj96mPTygbf3CDNy9nIPsrwkX2b+SBS20tDpydfxguPPP2ODrnbjSvIq/sLfhRcdQa8VNKjtkerxkK3s9LXGch1g8J6DP2TyWKnU7r8Cs/DwcrjQ51sn5G2kR9y0ATdL5rBjCjXYDaDdBJ+M5vD411pIo2l32VA4rwCpuP0zenYIWE5mJbvpDsX7nPBX27J10+q25SjTxsa/NKbRNZhP83eMPIFiP9JQmgCpT1aSXTeikM6F8rTlBx4kEJge5NCZMbOjTtB3nAwJNzXuLg== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=0 ltdi=1) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VdPBPq9OP5Y99rhS+e8r7MMUz3RAuGYh+qI1oWWyfQs=; b=DwOFRt5oGrGCS3hzGin85UUsJ28OhcK7k/QKdvyZYFIWeXpVVvPhY+v1IyGOLL4FZ0Secxhd6NNVyy9dJaBAg6qh2BpShlWgg8RYQuwKzhEiW9I8yruzTcqZeMAk8Z6FvG3sMnwY4FgeIc59ZiumT7QA+1dqd+b2/7n/Vg+YEtA= Received: from DU2PR04CA0173.eurprd04.prod.outlook.com (2603:10a6:10:2b0::28) by AS2PR08MB10177.eurprd08.prod.outlook.com (2603:10a6:20b:64f::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.24; Mon, 3 Feb 2025 13:05:08 +0000 Received: from DU6PEPF0000A7E4.eurprd02.prod.outlook.com (2603:10a6:10:2b0:cafe::34) by DU2PR04CA0173.outlook.office365.com (2603:10a6:10:2b0::28) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.25 via Frontend Transport; Mon, 3 Feb 2025 13:05:08 +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=arm.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 DU6PEPF0000A7E4.mail.protection.outlook.com (10.167.8.43) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:05:08 +0000 Received: ("Tessian outbound f834169b9670:v560"); Mon, 03 Feb 2025 13:05:08 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: c507a819f3652207 X-TessianGatewayMetadata: aMaWJM8s6revTWQuJwmIloLx5g2uvphCisFegiima7SkqYPVQGtzqNZJQsrTxRFOHU1nc7hU0GD1z/j6XP0DdYaW7lOlVLXkfmjw9IPVPwfgKqwqqrqdyrA1BdjGvc+23FmRFRl+PJm3sIPIZVuUZNFfp2nDcMxipv5sqnjxCc8= X-CR-MTA-TID: 64aa7808 Received: from Lef685dda3c02.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 70D074C8-0DB2-4593-87B7-DA6F7CBE0985.1; Mon, 03 Feb 2025 13:04:57 +0000 Received: from EUR03-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id Lef685dda3c02.2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Mon, 03 Feb 2025 13:04:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jE3RWMwRHeo8V7+xT8p/E2O6/3VvJY3CO9MjatxC7anSQDsSu6QnG9X2cpESpfa1ci6kdw0fsKlzVw2R6vtMWHhXGTF8O/cX8ApXbBK1WiNt0JOG0wt1YhuzcRMj7vxCklyG1u2OZk/6C78zSPZsP0uTzvK6SWUzoCww6lv9ShhHUHp03LcfhWbt8KeBlPXkr+ifGXRJAoxCkunrU5bWED58KFZaMMOAuPDAVzuiaxUolWFNj6Jc0Owec9+7RGetDx04liurn5cLk+ayIwFfsd7s7vi/EmF6ldMjSiEyw9dp/uj/cPSCAk17GSgFdiZ59zVeScLrswZwS8zYeyoSjg== 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=VdPBPq9OP5Y99rhS+e8r7MMUz3RAuGYh+qI1oWWyfQs=; b=xzFhADUdUddN+3gl1ixAY4AoEUf72bbchMYQHAuHqBNtuJBfoRAE1oB46XaQNizi2YtuZHwhq1ZEVio95HDfU8YqrxRsphNadepd7ebuEq2BswPlsrdmetKt24ScXW7NtDgqLWMVrmnvsjl0vZ3UG8qQ19G+23a2ravG9YbOqSCxiOLrGQWJurBe58o4ZG3stq2aeieQPsu/Tmtk14qugApTmwk+zglPt8vy7UGbsG9WZvS2ZLVJt0ja/kpnCurj4F6keLyvft4RL0qny7hp+reHDtK1ivvXazddMzs9tBVBfvYUqZSTFGuxJjV35rGuip8TXooQDrfwETnbv7Hi2Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 172.205.89.229) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VdPBPq9OP5Y99rhS+e8r7MMUz3RAuGYh+qI1oWWyfQs=; b=DwOFRt5oGrGCS3hzGin85UUsJ28OhcK7k/QKdvyZYFIWeXpVVvPhY+v1IyGOLL4FZ0Secxhd6NNVyy9dJaBAg6qh2BpShlWgg8RYQuwKzhEiW9I8yruzTcqZeMAk8Z6FvG3sMnwY4FgeIc59ZiumT7QA+1dqd+b2/7n/Vg+YEtA= Received: from DB8P191CA0008.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:130::18) by PA4PR08MB7484.eurprd08.prod.outlook.com (2603:10a6:102:2a8::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.23; Mon, 3 Feb 2025 13:04:52 +0000 Received: from DU2PEPF00028CFD.eurprd03.prod.outlook.com (2603:10a6:10:130:cafe::41) by DB8P191CA0008.outlook.office365.com (2603:10a6:10:130::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.25 via Frontend Transport; Mon, 3 Feb 2025 13:04:51 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=arm.com; Received-SPF: Fail (protection.outlook.com: domain of arm.com does not designate 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; Received: from nebula.arm.com (172.205.89.229) by DU2PEPF00028CFD.mail.protection.outlook.com (10.167.242.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:04:51 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX05.Arm.com (10.240.25.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:32 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:31 +0000 Received: from ip-10-248-139-135.eu-west-1.compute.internal (10.252.78.54) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 3 Feb 2025 13:04:31 +0000 From: Alfie Richards To: CC: , , , , , , , Alfie Richards Subject: [PATCH v1 13/16] Remove unused target_clone parsing code. Date: Mon, 3 Feb 2025 13:04:18 +0000 Message-ID: <20250203130421.2192732-15-alfie.richards@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250203130421.2192732-1-alfie.richards@arm.com> References: <20250203130421.2192732-1-alfie.richards@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DU2PEPF00028CFD:EE_|PA4PR08MB7484:EE_|DU6PEPF0000A7E4:EE_|AS2PR08MB10177:EE_ X-MS-Office365-Filtering-Correlation-Id: 3cd6f6c8-3e8c-4694-b582-08dd4453628c x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|376014|36860700013|82310400026|1800799024; X-Microsoft-Antispam-Message-Info-Original: BwoXmIZ6b8dhRq0D7eQzTrerGt3Xm6aGz7dEnHauor6ftKSxcNaNUEx+6IDD4xHdks68XJ5jvHnaFbg/BTp4mZS72dD79jyiCFZg4ZNjAZ7VKtD9gKCiF8bMe49yV7n7rkX8qeXRhXmOx8inMKIA6GvrO4f0EMtNHOzYaGGQCcYs3ZLx2DbP4DkuNBb55Nf79Epr4+WBsrMuQdueU+BNOQkzJ0s8cUqe3exOnm6aEDhlzuDYeuJcMqOsYfEDTV87QGE/ltBc/RCXJYwdDqTBZmAAEX9rYuLzmhfbSV4PP2ntlE5YewWkCvBeboxa4fjm2ZMoG7zmrxwnKPR1X+TMpWzW4w6CBsLdT5HiNnQtWx6FaKNmaxn40YzoskA4SXaSzMbtKC22W66h/oRDbjdJih14Nrsis5SsYQnKYVo6HcJq7CN1jUmxeiZdYMHONIy4oBf8A2S6BvVBYYnM97wGNYaM7E8/94yHwHFZbK1FeJLAsVP39ilVIcIKjR9WsPHGDK5+8ryWAeFVWVpzbvWFo8QbjOk3mDlh71qm5xa+qE81wm2iJXEGHNTzoVYjiFnLHvMBAGfqS4QEFNNxCpw2WyMjzZPHFPzbNYGV6vxswKxvkb/pdMRn7cw005jmBjGdVIMR/cINu1ifhEgnnIx1+MGJ64yM77fdshc7jKq5X7cfTUlUGM9MeojM/22FINCTkdTBCBGvToLupPkeq3A+LpM+p/NLrHtUberZG8og2gcfIL17nqfYMGVjsmLfeEEkQJZKcfLcYlEB1X3fGkKwCkkvGECEAmuUaHtUSvZsCVJFFHUFLVPq7yXuNuJbCN3VYV1kbjQJ4RoOPnniYcjoY7YHhKJfT1qvmDFwZM5vJ+EvT743cIX0zw1MeORZvTlxXDGomlEHh7SN25onD/p+a65zEOcciXoB26el8BZb2ak2sThjcKE4XwWsGn6MCd9JwiqY4aIKhrk8065tIIxTa5P0pX0zkhLQU7sx+iIhamZCR4iq49QlQ7mLehkkzm5lsPZzDFRZOzDrX2pQsu5vC+bmF+UljphtGWDNU3oenQN/7lPDk5q2IZ/Phwe4AXOc3F2+AT153W7yOd2Fmzv32Qu5JnEOcONSLLT2Wq+S3O7CLX2w8wnHFAdr+eMXX/vnRd1X/Q6sLYHrX93fRMlFu0B4nUBwqqzSJEWppdqufzg+IdMEyiWEPqthaVnaVJbwfXaGPux+V69895L+MZv0C4yRAMl6f87kT7tm4k3WFD5szAW62sBVXeZPUjZe5GtnZ9IvJwHCwXWPRyOe6IyjPMEWVK2m5G58GTTRlJcWCTaWl5WpTma4C4N+naws/veyamfEprE8dyWOyekf1WtBxHhh8Jy47OvRS6wOMcLOKbvEhI1gDDLiTJ0oqVyk3e6qF032Ty5RYVrJe4M++6i/MK4BKkd7Ey/e48t4e4yCrGoMgpoMeoWr4dBneivbciVxejQZ9r1meo3lluD9cOaPozQT8NW6S/+Bc9hu03Uz6Kk= X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(376014)(36860700013)(82310400026)(1800799024); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB7484 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:10:130::18]; domain=DB8P191CA0008.EURP191.PROD.OUTLOOK.COM X-MS-Exchange-Transport-CrossTenantHeadersStripped: DU6PEPF0000A7E4.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: c4a7e464-a124-4024-d71c-08dd445358c1 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|36860700013|376014|14060799003|35042699022|82310400026; X-Microsoft-Antispam-Message-Info: =?utf-8?q?YrbbaHJUHp28zKh7UAxlg9g2QUgM3cj?= =?utf-8?q?8bxeaU1PZkUh20+hjlvKVx0RSsQrrWOw0v0JT4gNOUObWX3JemU+1mp98vzFRZLt6?= =?utf-8?q?LZ6yrJWHUtUlaVf+wA/pe8samm96Wo89vnnwE+PnpBU9M3gZWKhl7m1fzcHuhyCrD?= =?utf-8?q?ykwVV2mC+vPtNfHtkxatxbyBIZtjbO028wYa3Hw28T15BU+LQrvu/D9VApcsNjY+y?= =?utf-8?q?/5Iv4l8IYUBbJelUwUjt37nFS1QiQkskIYEurK26JxWcXeG62ekB7Wk12T3T+abOI?= =?utf-8?q?RPlAJiYe2jrIjQ3ULh901inQvlpqTe2unIS1nVE4NNJoATHMVf3C3P82R4s7MFyIl?= =?utf-8?q?IMBfhAIPmSoyoajRTfYCZJwWx0JatYwcvKWH9YNmAQImvyrk2N3GYeYPxk4y+zMzF?= =?utf-8?q?sUwTom5ONv12Q9OCJ70L96jSAhU62SmLhHNCg7KmVomAoh3ztuzbCuOFNi15deydK?= =?utf-8?q?9CWIQk2fkEzwV3ZXutctUkqwzniMaE4SQMM9d1OOkJtTi6Kv2eaSANZ4S1x9bQBFi?= =?utf-8?q?I4WbwNq1weft0wW4h3W0/1pEZM6Foe5WLjL8rEWZnh9V8iWPIHSOVFAEemeBeJGyc?= =?utf-8?q?s8HkzObw51RMl6bpzm+EOVLqY5/C8KTJYnWLoT4C8i+IwtY6QXdt9FUA2LpV6v8bu?= =?utf-8?q?kbOPjqGX26irKvWSotAHg6zPuRPeSHla1iYGF8pi3HSm7DFHpvSB+L+xKz7/HzdRx?= =?utf-8?q?IMhQWA2w3Yhnnc4ADER0k/B8EzIzHY25i95tJ0gLgggSIABtXmmtgfewxH5G0M6i7?= =?utf-8?q?akgz1xis0RPp6a0yx4SMfJ7VwwBF9NsIDmv2Dvp1wtEJ16BYGQtrM+ZRuJEyPZIhl?= =?utf-8?q?Sms7ZWXxxAkQVNh5O42Fb50TRaWC4Hct4v/UAjyWuMrsnOa383x7Hmq+uvZjh+HB6?= =?utf-8?q?3sVOt61J2NJ2NWFRvpXtZ9nkZT9e7Im7arSofQjLhclE7x8xGccyOduWsrNZT3fz7?= =?utf-8?q?lFqBU+65xvr5MmGOhDcUf+sppO5OjlxtHbKgjkJrVOMlf1g/AmrBNLs8lRuVdp/WO?= =?utf-8?q?KnG9IPXYRZ8oVFNkFneM7AOTrvjfjnoqhAg2plb/VCRPTrgapvKajLvpWPdZq34A/?= =?utf-8?q?RHYhF9r0LXBnDzY4gKZWsl6M+YlocjUOvJ6Ohd35dvGpZ5BlMewOsp+wwuz6002VA?= =?utf-8?q?DJfjN5iOJjzz7WEBs/8dup4PpzbLskwDxgoznnWucLlbHME9JKwayitD4f1mqKvBG?= =?utf-8?q?2Z79hgpmDzRe+BvuGlLvRPs5GRwwzrWeiHSdGw3dICuBSc4ak+hqZhisaLV9bdcGb?= =?utf-8?q?x1bghPLfBYTYKQpaQMrktzcCygfOC7vUqdWsEYVf8nBxF3IGqhxCIEmHa4OTZEfOm?= =?utf-8?q?qyl/2f1l3yfVMlqTCTcuXd54I5NOnJde1cMfSesOaddCq4m9bJeT2n7Yc31RmPDnO?= =?utf-8?q?hbae+6q65DxFiysVJgL9y98zEpr/Bur0uenbBnqCfkJz2a+aWpJK7M=3D?= 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:64aa7808-outbound-1.mta.getcheckrecipient.com; CAT:NONE; SFS:(13230040)(1800799024)(36860700013)(376014)(14060799003)(35042699022)(82310400026); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2025 13:05:08.2528 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3cd6f6c8-3e8c-4694-b582-08dd4453628c 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: DU6PEPF0000A7E4.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB10177 X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org This removes the target_clone parsing code that was replaced with get_clone_versions. gcc/ChangeLog: * multiple_target.cc (get_attr_str): Removed. (separate_attrs): Removed. * tree.cc (get_target_clone_attr_len): Removed. * tree.h (get_target_clone_attr_len): Removed. --- gcc/multiple_target.cc | 61 ------------------------------------------ gcc/tree.cc | 26 ------------------ gcc/tree.h | 1 - 3 files changed, 88 deletions(-) diff --git a/gcc/multiple_target.cc b/gcc/multiple_target.cc index 6aeceadbfd1..4f748a81f9b 100644 --- a/gcc/multiple_target.cc +++ b/gcc/multiple_target.cc @@ -177,67 +177,6 @@ create_dispatcher_calls (struct cgraph_node *node) } } -/* Create string with attributes separated by TARGET_CLONES_ATTR_SEPARATOR. - Return number of attributes. */ - -static int -get_attr_str (tree arglist, char *attr_str) -{ - tree arg; - size_t str_len_sum = 0; - int argnum = 0; - - for (arg = arglist; arg; arg = TREE_CHAIN (arg)) - { - const char *str = TREE_STRING_POINTER (TREE_VALUE (arg)); - size_t len = strlen (str); - for (const char *p = strchr (str, TARGET_CLONES_ATTR_SEPARATOR); - p; - p = strchr (p + 1, TARGET_CLONES_ATTR_SEPARATOR)) - argnum++; - memcpy (attr_str + str_len_sum, str, len); - attr_str[str_len_sum + len] - = TREE_CHAIN (arg) ? TARGET_CLONES_ATTR_SEPARATOR : '\0'; - str_len_sum += len + 1; - argnum++; - } - return argnum; -} - -/* Return number of attributes separated by TARGET_CLONES_ATTR_SEPARATOR - and put them into ARGS. - If there is no DEFAULT attribute return -1. - If there is an empty string in attribute return -2. - If there are multiple DEFAULT attributes return -3. - */ - -static int -separate_attrs (char *attr_str, char **attrs, int attrnum) -{ - int i = 0; - int default_count = 0; - static const char separator_str[] = { TARGET_CLONES_ATTR_SEPARATOR, 0 }; - - for (char *attr = strtok (attr_str, separator_str); - attr != NULL; attr = strtok (NULL, separator_str)) - { - if (strcmp (attr, "default") == 0) - { - default_count++; - continue; - } - attrs[i++] = attr; - } - if (default_count == 0) - return -1; - else if (default_count > 1) - return -3; - else if (i + default_count < attrnum) - return -2; - - return i; -} - /* Creates target clone of NODE. */ static cgraph_node * diff --git a/gcc/tree.cc b/gcc/tree.cc index 346522d01c0..9856f190367 100644 --- a/gcc/tree.cc +++ b/gcc/tree.cc @@ -15273,32 +15273,6 @@ get_attr_nonstring_decl (tree expr, tree *ref) return NULL_TREE; } -/* Return length of attribute names string, - if arglist chain > 1, -1 otherwise. */ - -int -get_target_clone_attr_len (tree arglist) -{ - tree arg; - int str_len_sum = 0; - int argnum = 0; - - for (arg = arglist; arg; arg = TREE_CHAIN (arg)) - { - const char *str = TREE_STRING_POINTER (TREE_VALUE (arg)); - size_t len = strlen (str); - str_len_sum += len + 1; - for (const char *p = strchr (str, TARGET_CLONES_ATTR_SEPARATOR); - p; - p = strchr (p + 1, TARGET_CLONES_ATTR_SEPARATOR)) - argnum++; - argnum++; - } - if (argnum <= 1) - return -1; - return str_len_sum; -} - /* Returns an auto_vec of string_slices containing the version strings from ARGLIST. DEFAULT_COUNT is incremented for each default version found. */ diff --git a/gcc/tree.h b/gcc/tree.h index aea1cf078a0..df64d9cc847 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -7035,7 +7035,6 @@ extern unsigned fndecl_dealloc_argno (tree); object or pointer. Otherwise return null. */ extern tree get_attr_nonstring_decl (tree, tree * = NULL); -extern int get_target_clone_attr_len (tree); auto_vec get_clone_versions (const tree, int * = NULL); auto_vec From patchwork Mon Feb 3 13:04:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alfie Richards X-Patchwork-Id: 105921 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C9E0E3858431 for ; Mon, 3 Feb 2025 13:17:12 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR02-DB5-obe.outbound.protection.outlook.com (mail-db5eur02on20615.outbound.protection.outlook.com [IPv6:2a01:111:f403:2608::615]) by sourceware.org (Postfix) with ESMTPS id 0212F3858430 for ; Mon, 3 Feb 2025 13:05:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0212F3858430 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 0212F3858430 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:2608::615 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587930; cv=pass; b=M+NvFwo0jJ6vY8ds3wh5ZTIlSCQydzxoJHHc/zvCeXIMohxUoX+PAxl1uH16Vu/amkq9MtMBGtaHd9odVPO9mMP9t8tg6aHltPryMAQS5MrcLDOt3Q4zkwxAkNdvwoluNaaLkrFQQdzlTbJM/2Y5vJTKt+jUZtMpamHIHpYyzvw= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587930; c=relaxed/simple; bh=DYWGRDCwvLtvkvouwC81DCW/VDxyRa6iM8szup9PMB0=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=AsePeTSBBsJCzoEKJVaG4P95q+cNFATPHK4Z13YV0SExZcjGnjlo1ysBlcryeAgNfS/SzuXxqe2wsOSksJWYLqxGaLYDtEUTSFpVuqCKDJAEHy1rkn/0MAq/KZQe5/KW3lg5SU0ej0b7aLSu5OQ2BWJR4fGgrawLxLd+GtI5nnM= ARC-Authentication-Results: i=3; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0212F3858430 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=FtZr73bA; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=FtZr73bA ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=k+aJIgM4mJaO3SMdMyurAenCY0HqI1uovd33NAcGEBc4uR57BDRDETFsF1+AFBDV/Td1CYJpcP6YmVCPTHYjn2lsZD9550esmQ+ioqn7dwQ1ZzFoWE9sHPO+dQ5eHCtP5/FEUQSJwfidvOvo4Dp9xASzddW14y3Ms4AHG12HVUqzBFQKkbAmhHhQzbrVYXld6Uc0eCkadcBC2er+JevAUwnXblZAQbTwASUk3P5quC3if6E+M2cK15F77wFS0Oim7NWkoMbBTYBIFswKLbp7/9rMMaGy6ObEB0vjXzwAXseOP7c6KxzYyV5fYxaEX6JgYQHke/owS3DA30DXLqo0Sg== ARC-Message-Signature: i=2; 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=ssOB6UbqF43UAGyRpVIhqKmJ78KMwvAsd88BIjIw3Bc=; b=pkXmcX/eRKACaMnsOqFdgl8RgXUHAiLRBCNjJdqMqFMAR2NmujY9uvg5UHG8pw+VUZuFpswf0mG4puhHCp4qt6adLtRCuBbRPLwhLMU9HzNExSq+VDXx0oj1I62JC7SFIkaYhTMpfgzhb+tCMDDyb4nPSwc+Q7gLgvMuRXEMfLk1sVDWYfvAe9F7TLMm+kahYrLVoAezZiJh0vzy2qJw++lq6kDId+YYXog40zNyWjh4BKdEikwQokB+7Hrp8dA+dGnShwx/dBDNY/D/RyYt4m+0L+IiQOqWocUL5wnO72smIYNixkPLPX43+N/zVKtTDEATLs/vOfE2QJp3x7fPNw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=0 ltdi=1) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ssOB6UbqF43UAGyRpVIhqKmJ78KMwvAsd88BIjIw3Bc=; b=FtZr73bAzqjPQJpjH/Oy2f6HAHk5n2x6UhPXCkShyyfPzQfdtNW+hhU1hKrikQCO6zIgYkQgtjjrKRRnyNnArNjdPKi/1SS4PWJXDsv8ITNH2mILrTj2gQWlp56U4jyDdTa5+kgvI1gyWs0Zr3chtTHJV0gU/sUGNWIhlcTOjek= Received: from DUZPR01CA0194.eurprd01.prod.exchangelabs.com (2603:10a6:10:4b6::19) by DB9PR08MB9705.eurprd08.prod.outlook.com (2603:10a6:10:45c::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.24; Mon, 3 Feb 2025 13:05:08 +0000 Received: from DU2PEPF00028D06.eurprd03.prod.outlook.com (2603:10a6:10:4b6:cafe::c6) by DUZPR01CA0194.outlook.office365.com (2603:10a6:10:4b6::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.25 via Frontend Transport; Mon, 3 Feb 2025 13:05:12 +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=arm.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 DU2PEPF00028D06.mail.protection.outlook.com (10.167.242.166) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:05:08 +0000 Received: ("Tessian outbound 9503ad2ac7d1:v560"); Mon, 03 Feb 2025 13:05:08 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 7210919f343b5a79 X-TessianGatewayMetadata: RIX5sucMU0u1kJLjqjuql3ZfclskclkdTJIbjoo+GPyfmW++os1pAA9Nakg9pmv/xtd8oKSWd+kL9mwnZ8tHbhZ6KeQmEr9JBwTbsOLbTf+SAcLugsL/R0cASpPcZD/a8APN08u7lz79ASsxwuQeYCUizzPv1fn5Dsy4U+SQftU= X-CR-MTA-TID: 64aa7808 Received: from L42e4b81d7552.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 1600B5AF-BEB2-4AA8-8F55-5B1D8BA7AD49.1; Mon, 03 Feb 2025 13:04:57 +0000 Received: from EUR03-AM7-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id L42e4b81d7552.2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Mon, 03 Feb 2025 13:04:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=apDtpJ8dvAOzRc1DurRbjAkSYL/mGa/GkNdj5uAgeY4oevoGZ6JUFuGxjATQm8DeD/ZHt/LgeUfWEml5QRHp9LawIMGHZlokb9CVFitgVaO5qC0ZZjlv1gZs7LWqiOFguSQ2aopilA+8biNiV5v31ueNoKWueoaZi0JfvOelkk8sE3kRveYVwqkgebbHfGUeW0cQUGrQD75wGMbr6b15c1jITrKMutrVPgq/R3DBLNVen0AJ3Ex6hwDyLD7O3kuoBUzYJa0B4X20VIKtJK5OqACaBzw5KMnfjarMT0eSLEWhLSw+E5mNgddx65kjNniqxRkJrGCY9VkDe/ijLih5AA== 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=ssOB6UbqF43UAGyRpVIhqKmJ78KMwvAsd88BIjIw3Bc=; b=oPv8dDkVrY+OBUzDj2eDPPjCrGwP2FpdyyeT8fHYLTqwXXKrJkZNmcAwTVW0xZvUvy7wIRUlXkudXZezHvDO8MJjYM/3u8A5wMYy760X+dJUlIA9/PPlJOQky8oE94f/1oZqR23FSbD9P/KEJ0RGa+YNUvOGVSQ4Nwzi74Z4U74/rV1NwVlK9aSoVl7IW9kYAhYNg0/ko1ufa7LKFYPDj9OL5k3heEk7Dp+BhKxWd8GGgTBBdJXlZ1G8aHLiHG/ebv35RRpmWukP69justD7r7WRtlQ6v/Pf092pnf0ClcM8Y9EfIsmYqjZ4Sl5huoEyGd7lFVMoDbC4Zgae0Ry5rg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 172.205.89.229) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ssOB6UbqF43UAGyRpVIhqKmJ78KMwvAsd88BIjIw3Bc=; b=FtZr73bAzqjPQJpjH/Oy2f6HAHk5n2x6UhPXCkShyyfPzQfdtNW+hhU1hKrikQCO6zIgYkQgtjjrKRRnyNnArNjdPKi/1SS4PWJXDsv8ITNH2mILrTj2gQWlp56U4jyDdTa5+kgvI1gyWs0Zr3chtTHJV0gU/sUGNWIhlcTOjek= Received: from DUZPR01CA0275.eurprd01.prod.exchangelabs.com (2603:10a6:10:4b9::6) by DB9PR08MB7842.eurprd08.prod.outlook.com (2603:10a6:10:39d::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.25; Mon, 3 Feb 2025 13:04:54 +0000 Received: from DU2PEPF00028CFC.eurprd03.prod.outlook.com (2603:10a6:10:4b9:cafe::25) by DUZPR01CA0275.outlook.office365.com (2603:10a6:10:4b9::6) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.26 via Frontend Transport; Mon, 3 Feb 2025 13:04:59 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=arm.com; Received-SPF: Fail (protection.outlook.com: domain of arm.com does not designate 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; Received: from nebula.arm.com (172.205.89.229) by DU2PEPF00028CFC.mail.protection.outlook.com (10.167.242.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:04:54 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX05.Arm.com (10.240.25.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:33 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:31 +0000 Received: from ip-10-248-139-135.eu-west-1.compute.internal (10.252.78.54) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 3 Feb 2025 13:04:31 +0000 From: Alfie Richards To: CC: , , , , , , , Alfie Richards Subject: [PATCH v1 14/16] Change target_version semantics to follow ACLE specification. Date: Mon, 3 Feb 2025 13:04:19 +0000 Message-ID: <20250203130421.2192732-16-alfie.richards@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250203130421.2192732-1-alfie.richards@arm.com> References: <20250203130421.2192732-1-alfie.richards@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DU2PEPF00028CFC:EE_|DB9PR08MB7842:EE_|DU2PEPF00028D06:EE_|DB9PR08MB9705:EE_ X-MS-Office365-Filtering-Correlation-Id: 6c04ddf7-768c-4593-1fd9-08dd445362e1 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|36860700013|376014|82310400026|1800799024; X-Microsoft-Antispam-Message-Info-Original: LVDt2Bu5yW7JgXCRGEZ63ePHNjwVOdciPJl+5yIHCezlcQQCikGyM0nCM4NEWh0WUwuTfzE8qV9aZR1/2Gb+vCekfYBvUTq4XaQuyAxzq9rDoVDh4ThEssLsIny7KAWgLN3OWolow72gmrJpoFSb66jOrcc78cf/NJ+DQtVn0w0ztheogE16fOYQzgVQaqE8j/uDgcYRahhzul9w1c2WfMLsjgwGcE0ngTKKLjJbA8/T0QOI5RJS+u0dSn68xUsYMd+a4ca21+6U9v7IFGc+YDsiA/z8UUOw199IU/ReZ+HCFN5Zvn1icZuRET0XcL6nOs9genoiZt0Z8VQK2H3D5T+pjPd+uxjGG8Cv3zOEJvvB27MqSf5IEYCHuBecSFTHV6/hNk9ZRmxnYLbYjFdejIDZ447Y72Nl5mH/sHvXhpwbebW/9KhXu6MxPA79S6SGTd2a4iHuPnPx2rJXMvfPQUQTB2zu4ePU54/sokKksMClrbsNvi6JVhKLxChMd45ZkgdGVkE+Bbln3seLMdjiJO5rhdCsgNvsstzoZ01SxQ7jal0pypdnpo3kAReQeMNIw2y8oSuH46YwQOPUxU5tFOLXcH0CLg49Mrn1yan619obX0BEE8jm2yF2RVFcTc0+zSm+lMHSuboGp/sLuB2m8eBNbdRQADoXSErGO637oji7dcd6wJfBEEZ1UL561ZXEpoig+AFd9Ac8oHwKUWaDjt5deT6AkmdAwI71vZG2CSA2JIORHJulLgdNaL2N1ZedqRYM1dXys+eAzy3xJCydXvYmJqdgRb23Qwoyc5KTTIPw4UJjVDO+5ZUgBg2wZir9gbZ6IqTgWZ9nrrc/1MeAZ4Q1kFPwLl05EU67VqfzdsxL14YLzPMt8DCanoAwL3RJMw9jQhfZWoqUxHBBtUOXmo/9Cwe9jYtB1dYFY6ilUk2sq2+1LT9E+ThMMFcCDCfOD4aa6zWsFSoTYCzHxQkBNjsmEL0j+cU/juVCthosID+vtO1RwuOmLrtEFRLVe75eVjkvfFlMa3Qp1wF0btU9Ibj6KpPoScKCAGnlu4g4u+84Bkp0iiAHHcoSyesWYVgDmKPEsdCy9zybdJKuWO4OQgNDg9IPp4FlFvNsWYxShoDGCUjEaOlKo1uIJz+NyE5tbT9KAF7hHvwJKl5FDefTaDdE3X4d9j6YkmJDlJ/WDNkYpnvNJ1djFwkqQu8GH5hugGJOcXJa+CKJGgAXL2Wk1dw3QqmnJlqQ+M+KELSMuwVJVIFkP5/EVSMfRqwtbYwgeb168xczoWnFOTDn9wCeZJgTG7pgMIDfQ0/iKYDOfiwKWfv6Nna+j0l9Fce2Hw/0ZDNl05H3WO0PoQCkCUdUQxWR9ve6g3mhSzCHkgFF/50BNh3MOwe8Ev6xd5SciLtiWh76GbU42qfRMl8vjDqs41NJxNVpIJtIbG8MrEeosgrVQDwDrBYEBDqi9pF6ssSevP7fOACW+b//Yudv9jWwWPYhM3z/Cee/lQB/GePnRsM= X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7842 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:10:4b9::6]; domain=DUZPR01CA0275.eurprd01.prod.exchangelabs.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: DU2PEPF00028D06.eurprd03.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 1b0ceab5-3230-4121-92a9-08dd44535a3d X-Microsoft-Antispam: BCL:0; ARA:13230040|14060799003|1800799024|35042699022|376014|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: =?utf-8?q?MHiADdX3NfOda+ZAy3M2wnXtcctMldu?= =?utf-8?q?MvG1m3PC2gaBvTpgDOnkdx0biPC3QVbMsHf/dibl0Z6R6PXxM6lyqACmgSnoEhDE7?= =?utf-8?q?Yxca+ZZC4a+oCtMBnJmA512JHZEoqcprptDDxG4d/Uw2uakwrc55T7JBJErB/SI/A?= =?utf-8?q?ZGRZR1O1OXwMZXMVPEY8nFesgD8mBbV1g/Hn5OP0PpXzdLFEFLUwb/3CQ3XASVhH8?= =?utf-8?q?PpjG/P9S9DmA25egm3R6H7hVzlaUH/Knz+BLoeoLOPBtLia1lNkwl5IRwkiQNOR4F?= =?utf-8?q?tHYJS/OAr5T2M7coRpHy/aZlgtVxFO6jFFW18p5J4l0JifYSHMAqRfyQsY3RS/byK?= =?utf-8?q?L0L6YncjkmkRY/0pATDXJkNd751jg0LmTJD5fKdENUI4JmrgBPfULNnJ+NBUPb8YB?= =?utf-8?q?U22GOOi21WqigfrALEzvoAlxI8xr63XJ6/L02fRht92HcsDL7gMEdK0C+nURnc3ww?= =?utf-8?q?Dxm611DXEWeaSK3heiyo0MXymVUc69putVZmWsushtlETLTwnd6RWouSMjjsyeOHA?= =?utf-8?q?oPwbyf7LFdM6Hnfp9fnByVBWF8iOh4Uefl63QFgwB2lnCplOUu6iKZ7Tw0d0qrKyQ?= =?utf-8?q?WAawJA9wbX7jv1sxAxB4SOfXC3fgrt0+UFdGJSA0LohtZ6ByHengpjieQxOpizmYy?= =?utf-8?q?nh0ils8k791kwkPFNB4hQjo4rjkIvGo84d7tlbig2iMjMEGaX2Gl+oLn0LZZ5ihFl?= =?utf-8?q?/kPFNXXc5T4ST2FQOYvVuocCj1NUTGJJ3FJejyFNKHilT/pgWtN5NFq5h3TJY2LZa?= =?utf-8?q?Af+O7AelRu5IopNemkr648QC1iZ1L4d8JNr6DfP6RzC6VF974zYW4bd84Ih5Losgv?= =?utf-8?q?q30CZNc3cHYxcYAJ/mpGbROPDXU3HRtLAL/0QpbX6Bzu0lPrzoF4QrGiT9cDjLhi7?= =?utf-8?q?Mp/fMck7DuB881l/Hs6EeaekeyW5ceYiRUp8ojwn1DXTIFMqSux7951YDeYMrSpk0?= =?utf-8?q?KzMzcG2vf1D1RhMiS1B7OjZoTB+kmAl9RAf5rhF62ey/99u+ptGDmnB6b2C/iQwhx?= =?utf-8?q?Bu3YoZBraJL++VeYd1ZRerEmzIbhsqnxZOirceDzWKDJx/8RxKiZBv3ZxTnUQiohy?= =?utf-8?q?ecqNjxGjrWSWPVFh0ajvMC+OWuRgiHwgZrkljBzQNtL/XyUs3UkZoYuYpDntrxGy7?= =?utf-8?q?Vqg5OZ8q+z+eN7syJx8ZQB9S9ejQPkgvsNp9roHUh53yeme/Uv0QJCXMhYSncwE9z?= =?utf-8?q?d6M03JzzwnSkeRSTJQ/MgI4D9t/KS1eyxv37Bml5XUPRbf0o0+1v0M4HACOIwS2FI?= =?utf-8?q?5cueWOJshJ0VPXW7sI2Bb/8DVJuMBrWm5GRcsUCS1ZoUq8aMLHfsXJqtn9aOJFbgj?= =?utf-8?q?acBLjmvYHbBWJ9eLnFa6yr6AxvNVgyTrysybu7w2WrhIdK36rx8LlTuHMcwKJ9IM6?= =?utf-8?q?G4cKKoB3bZfZ8KZziLsM5pf6LCewPJUrPEXNQqC2vgffYgIwVOdF7U=3D?= 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:64aa7808-outbound-1.mta.getcheckrecipient.com; CAT:NONE; SFS:(13230040)(14060799003)(1800799024)(35042699022)(376014)(36860700013)(82310400026); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2025 13:05:08.8217 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6c04ddf7-768c-4593-1fd9-08dd445362e1 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: DU2PEPF00028D06.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9705 X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, KAM_SHORT, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org This changes behavior of target_clones and target_version attributes to be inline with what is specified in the Arm C Language Extension. Notably this changes the scope and signature of multiversioned functions to that of the default version, and changes the resolver to be created at the implementation of the default version. This is achieved by changing the C++ front end to no longer resolve any non-default version decls in lookup, and by moving dipatching for default_target sets to reuse the dispatching logic for target_clones in multiple_target.cc. This also fixes https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118313 for aarch64 and riscv. This changes the behavior of both the aarch64, and riscv targets. gcc/ChangeLog: * cgraphunit.cc (analyze_functions): Add dependency from default node to non-default versions. * ipa.cc (symbol_table::remove_unreachable_nodes): Ditto. * multiple_target.cc (ipa_target_clone): Change logic to conditionally dispatch target_clones and to dispatch some target_version sets. gcc/cp/ChangeLog: * call.cc (add_candidates): For target_version semantics don't resolve non-default versions. * class.cc (resolve_address_of_overloaded_function): Ditto. * cp-gimplify.cc (cp_genericize_r): For target_version semantics don't redirect calls to versioned functions (done later at multiple_target.cc.) * decl.cc (start_decl): Mangle and mark all non-default function decls. (start_preparsed_function): Ditto. * typeck.cc (cp_build_function_call_vec): Add error if target has no default implementation. gcc/testsuite/ChangeLog: * g++.target/aarch64/mv-1.C: Change for new semantics. * g++.target/aarch64/mv-symbols2.C: Ditto. * g++.target/aarch64/mv-symbols3.C: Ditto. * g++.target/aarch64/mv-symbols4.C: Ditto. * g++.target/aarch64/mv-symbols5.C: Ditto. * g++.target/aarch64/mvc-symbols3.C: Ditto. * g++.target/riscv/mv-symbols2.C: Ditto. * g++.target/riscv/mv-symbols3.C: Ditto. * g++.target/riscv/mv-symbols4.C: Ditto. * g++.target/riscv/mv-symbols5.C: Ditto. * g++.target/riscv/mvc-symbols3.C: Ditto. * g++.target/aarch64/mv-symbols10.C: New test. * g++.target/aarch64/mv-symbols11.C: New test. * g++.target/aarch64/mv-symbols12.C: New test. * g++.target/aarch64/mv-symbols14.C: New test. * g++.target/aarch64/mv-symbols15.C: New test. * g++.target/aarch64/mv-symbols6.C: New test. * g++.target/aarch64/mv-symbols8.C: New test. * g++.target/aarch64/mv-symbols9.C: New test. --- gcc/cgraphunit.cc | 9 ++++ gcc/cp/call.cc | 8 ++++ gcc/cp/class.cc | 11 ++++- gcc/cp/cp-gimplify.cc | 6 ++- gcc/cp/decl.cc | 24 ++++++++++ gcc/cp/typeck.cc | 8 ++++ gcc/ipa.cc | 11 +++++ gcc/multiple_target.cc | 13 ++++- gcc/testsuite/g++.target/aarch64/mv-1.C | 4 ++ .../g++.target/aarch64/mv-symbols10.C | 43 +++++++++++++++++ .../g++.target/aarch64/mv-symbols11.C | 27 +++++++++++ .../g++.target/aarch64/mv-symbols12.C | 18 +++++++ .../g++.target/aarch64/mv-symbols14.C | 16 +++++++ .../g++.target/aarch64/mv-symbols15.C | 16 +++++++ .../g++.target/aarch64/mv-symbols2.C | 12 ++--- .../g++.target/aarch64/mv-symbols3.C | 6 +-- .../g++.target/aarch64/mv-symbols4.C | 6 +-- .../g++.target/aarch64/mv-symbols5.C | 6 +-- .../g++.target/aarch64/mv-symbols6.C | 23 +++++++++ .../g++.target/aarch64/mv-symbols8.C | 48 +++++++++++++++++++ .../g++.target/aarch64/mv-symbols9.C | 46 ++++++++++++++++++ .../g++.target/aarch64/mvc-symbols3.C | 12 ++--- gcc/testsuite/g++.target/riscv/mv-symbols2.C | 12 ++--- gcc/testsuite/g++.target/riscv/mv-symbols3.C | 6 +-- gcc/testsuite/g++.target/riscv/mv-symbols4.C | 6 +-- gcc/testsuite/g++.target/riscv/mv-symbols5.C | 6 +-- gcc/testsuite/g++.target/riscv/mvc-symbols3.C | 12 ++--- 27 files changed, 368 insertions(+), 47 deletions(-) create mode 100644 gcc/testsuite/g++.target/aarch64/mv-symbols10.C create mode 100644 gcc/testsuite/g++.target/aarch64/mv-symbols11.C create mode 100644 gcc/testsuite/g++.target/aarch64/mv-symbols12.C create mode 100644 gcc/testsuite/g++.target/aarch64/mv-symbols14.C create mode 100644 gcc/testsuite/g++.target/aarch64/mv-symbols15.C create mode 100644 gcc/testsuite/g++.target/aarch64/mv-symbols6.C create mode 100644 gcc/testsuite/g++.target/aarch64/mv-symbols8.C create mode 100644 gcc/testsuite/g++.target/aarch64/mv-symbols9.C diff --git a/gcc/cgraphunit.cc b/gcc/cgraphunit.cc index 82f205488e9..f7f8957e618 100644 --- a/gcc/cgraphunit.cc +++ b/gcc/cgraphunit.cc @@ -1264,6 +1264,15 @@ analyze_functions (bool first_time) if (!cnode->analyzed) cnode->analyze (); + /* A reference to a default node in a funciton set implies a + refrence to all versions in the set. */ + if (cnode->function_version () + && is_function_default_version (node->decl)) + for (cgraph_function_version_info *fvi + = cnode->function_version ()->next; + fvi; fvi = fvi->next) + enqueue_node (fvi->this_node); + for (edge = cnode->callees; edge; edge = edge->next_callee) if (edge->callee->definition && (!DECL_EXTERNAL (edge->callee->decl) diff --git a/gcc/cp/call.cc b/gcc/cp/call.cc index 3a56a82632d..ae39c9b09a4 100644 --- a/gcc/cp/call.cc +++ b/gcc/cp/call.cc @@ -6785,6 +6785,14 @@ add_candidates (tree fns, tree first_arg, const vec *args, continue; } + /* Do not resolve any non-default function. Only the default version + is resolvable (for the target_version attribute semantics.) */ + if (!TARGET_HAS_FMV_TARGET_ATTRIBUTE && !is_function_default_version (fn)) + { + add_ignored_candidate (candidates, fn); + continue; + } + if (TREE_CODE (fn) == TEMPLATE_DECL) add_template_candidate (candidates, fn, diff --git a/gcc/cp/class.cc b/gcc/cp/class.cc index a9a80d1b4be..a926dc00945 100644 --- a/gcc/cp/class.cc +++ b/gcc/cp/class.cc @@ -8789,6 +8789,11 @@ resolve_address_of_overloaded_function (tree target_type, if (!constraints_satisfied_p (fn)) continue; + /* Never resolve a non-default version. */ + if (!TARGET_HAS_FMV_TARGET_ATTRIBUTE + && !is_function_default_version (fn)) + continue; + if (undeduced_auto_decl (fn)) { /* Force instantiation to do return type deduction. */ @@ -9014,8 +9019,10 @@ resolve_address_of_overloaded_function (tree target_type, /* If a pointer to a function that is multi-versioned is requested, the pointer to the dispatcher function is returned instead. This works well because indirectly calling the function will dispatch the right - function version at run-time. */ - if (DECL_FUNCTION_VERSIONED (fn)) + function version at run-time. + This is done at multiple_target.cc for target_version semantics. */ + + if (DECL_FUNCTION_VERSIONED (fn) && TARGET_HAS_FMV_TARGET_ATTRIBUTE) { fn = get_function_version_dispatcher (fn); if (fn == NULL) diff --git a/gcc/cp/cp-gimplify.cc b/gcc/cp/cp-gimplify.cc index 4ec3de13008..3ef5bec5d54 100644 --- a/gcc/cp/cp-gimplify.cc +++ b/gcc/cp/cp-gimplify.cc @@ -2130,10 +2130,12 @@ cp_genericize_r (tree *stmt_p, int *walk_subtrees, void *data) returns the function with the highest target priority, that is, the version that will checked for dispatching first. If this version is inlinable, a direct call to this version can be made - otherwise the call should go through the dispatcher. */ + otherwise the call should go through the dispatcher. + This is done at multiple_target.cc for target_version semantics. */ { tree fn = cp_get_callee_fndecl_nofold (stmt); - if (fn && DECL_FUNCTION_VERSIONED (fn) + if (fn && TARGET_HAS_FMV_TARGET_ATTRIBUTE + && DECL_FUNCTION_VERSIONED (fn) && (current_function_decl == NULL || !targetm.target_option.can_inline_p (current_function_decl, fn))) diff --git a/gcc/cp/decl.cc b/gcc/cp/decl.cc index 9e1a2e0a9bd..552b1845352 100644 --- a/gcc/cp/decl.cc +++ b/gcc/cp/decl.cc @@ -6174,6 +6174,12 @@ start_decl (const cp_declarator *declarator, was_public = TREE_PUBLIC (decl); + /* Mark any non-default function as versioned as it needs to be mangled + even when on its own in a TU. */ + if (!TARGET_HAS_FMV_TARGET_ATTRIBUTE && TREE_CODE (decl) == FUNCTION_DECL + && !is_function_default_version (decl)) + maybe_mark_function_versioned (decl); + /* Set the assembler string for any versioned function. */ if (TREE_CODE (decl) == FUNCTION_DECL && (lookup_attribute (TARGET_HAS_FMV_TARGET_ATTRIBUTE ? "target" @@ -6186,6 +6192,12 @@ start_decl (const cp_declarator *declarator, node->insert_new_function_version (); if (!node->function_version ()->assembler_name) node->function_version ()->assembler_name = DECL_ASSEMBLER_NAME (decl); + + /* In target_version semantics mangle non-default versions even if no + other versions are present. */ + if (!TARGET_HAS_FMV_TARGET_ATTRIBUTE + && !is_function_default_version (decl)) + maybe_mark_function_versioned (decl); } if ((DECL_EXTERNAL (decl) || TREE_CODE (decl) == FUNCTION_DECL) @@ -18776,6 +18788,12 @@ start_preparsed_function (tree decl1, tree attrs, int flags) if (!DECL_OMP_DECLARE_REDUCTION_P (decl1)) start_lambda_scope (decl1); + /* Mark any non-default function as versioned as it needs to be mangled + even when on its own in a TU. */ + if (!TARGET_HAS_FMV_TARGET_ATTRIBUTE && TREE_CODE (decl1) == FUNCTION_DECL + && !is_function_default_version (decl1)) + maybe_mark_function_versioned (decl1); + /* Set the assembler string for any versioned function. */ if (TREE_CODE (decl1) == FUNCTION_DECL && (lookup_attribute (TARGET_HAS_FMV_TARGET_ATTRIBUTE ? "target" @@ -18788,6 +18806,12 @@ start_preparsed_function (tree decl1, tree attrs, int flags) node->insert_new_function_version (); if (!node->function_version ()->assembler_name) node->function_version ()->assembler_name = DECL_ASSEMBLER_NAME (decl1); + + /* In target_version semantics mangle non-default versions even if no + other versions are present. */ + if (!TARGET_HAS_FMV_TARGET_ATTRIBUTE + && !is_function_default_version (decl1)) + maybe_mark_function_versioned (decl1); } return true; diff --git a/gcc/cp/typeck.cc b/gcc/cp/typeck.cc index a9c32ff930d..ccb17df1feb 100644 --- a/gcc/cp/typeck.cc +++ b/gcc/cp/typeck.cc @@ -4439,6 +4439,14 @@ cp_build_function_call_vec (tree function, vec **params, return error_mark_node; fndecl = function; + if (!TARGET_HAS_FMV_TARGET_ATTRIBUTE + && !is_function_default_version (fndecl)) + { + if (complain & tf_error) + error ("no default version in scope"); + return error_mark_node; + } + /* Convert anything with function type to a pointer-to-function. */ if (DECL_MAIN_P (function)) { diff --git a/gcc/ipa.cc b/gcc/ipa.cc index 8a7b067a526..39ab0cc3de5 100644 --- a/gcc/ipa.cc +++ b/gcc/ipa.cc @@ -433,6 +433,17 @@ symbol_table::remove_unreachable_nodes (FILE *file) e, &first, &reachable); } } + + /* A refrence to the default node implies use of all the other + versions (they get used in the function resolver made later + in multiple_target.cc) */ + if (cnode->function_version () + && is_function_default_version (node->decl)) + for (cgraph_function_version_info *fvi + = cnode->function_version ()->next; + fvi; fvi = fvi->next) + enqueue_node (fvi->this_node, &first, &reachable); + for (e = cnode->callees; e; e = e->next_callee) { symtab_node *body = e->callee->function_symbol (); diff --git a/gcc/multiple_target.cc b/gcc/multiple_target.cc index 4f748a81f9b..07a894087f8 100644 --- a/gcc/multiple_target.cc +++ b/gcc/multiple_target.cc @@ -424,9 +424,20 @@ ipa_target_clone (void) auto_vec to_dispatch; FOR_EACH_FUNCTION (node) - if (expand_target_clones (node, node->definition)) + /* Expand all target versions. */ + if (expand_target_clones (node, node->definition) + && TARGET_HAS_FMV_TARGET_ATTRIBUTE) + /* In non target_version semantics, dispatch all target clone sets. */ to_dispatch.safe_push (node); + /* In target_version semantics dispatch all FMV function sets with a default + implementation. */ + if (!TARGET_HAS_FMV_TARGET_ATTRIBUTE) + FOR_EACH_FUNCTION (node) + if (is_function_default_version (node->decl) + && DECL_FUNCTION_VERSIONED (node->decl) && TREE_STATIC (node->decl)) + to_dispatch.safe_push (node); + for (unsigned i = 0; i < to_dispatch.length (); i++) create_dispatcher_calls (to_dispatch[i]); diff --git a/gcc/testsuite/g++.target/aarch64/mv-1.C b/gcc/testsuite/g++.target/aarch64/mv-1.C index b10037f1b9b..93b8a136587 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-1.C +++ b/gcc/testsuite/g++.target/aarch64/mv-1.C @@ -37,3 +37,7 @@ int bar() /* { dg-final { scan-assembler-times "\n_Z3foov\._Mrng:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\._MrngMflagm:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\._Mflagm:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tbl\t_Z3foov\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols10.C b/gcc/testsuite/g++.target/aarch64/mv-symbols10.C new file mode 100644 index 00000000000..dc5a8ff6572 --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols10.C @@ -0,0 +1,43 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ +/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + +int +foo (); + +int +foo () +{ + return 1; +} + +__attribute__ ((target_version ("dotprod"))) int +foo () +{ + return 3; +} +__attribute__ ((target_version ("sve+sve2"))) int +foo () +{ + return 5; +} + +int +bar () +{ + return foo (); +} + +/* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\._Mdotprod:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\._MsveMsve2:\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx., _Z3foov\._MsveMsve2\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx., _Z3foov\._Mdotprod\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx., _Z3foov\.default\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n\tbl\t_Z3foov\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols11.C b/gcc/testsuite/g++.target/aarch64/mv-symbols11.C new file mode 100644 index 00000000000..92d4ab617d8 --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols11.C @@ -0,0 +1,27 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ +/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + +__attribute__ ((target_version ("default"))) void +foo (int a = 3); + +__attribute__ ((target_version ("sve"))) void +foo (int a = 4); + +void bar() { + foo(); +} + +__attribute__ ((target_version ("sve"))) void +foo2 (int a = 6); + +__attribute__ ((target_version ("default"))) void +foo2 (int a = 5); + +void bar2() { + foo2(); +} + + +/* { dg-final { scan-assembler-times "\n\tmov\tw\[0-9\]\+, 3\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tmov\tw\[0-9\]\+, 5\n" 1 } } */ diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols12.C b/gcc/testsuite/g++.target/aarch64/mv-symbols12.C new file mode 100644 index 00000000000..05d915f19ab --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols12.C @@ -0,0 +1,18 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ +/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + +__attribute__ ((target_version ("default"))) int +foo () { return 1; } + +__attribute__ ((target_version ("dotprod"))) int +foo () { return 3; } + +int (*test)(); + +int bar () +{ + test = foo; + + return test(); +} diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols14.C b/gcc/testsuite/g++.target/aarch64/mv-symbols14.C new file mode 100644 index 00000000000..fbee7800ba2 --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols14.C @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ +/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + +int foo () { + return 1; +} + +void +bar () +{ + foo (); +} + +__attribute__ ((target_version ("dotprod"))) int +foo (); diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols15.C b/gcc/testsuite/g++.target/aarch64/mv-symbols15.C new file mode 100644 index 00000000000..a10c0bfb990 --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols15.C @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ +/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + +int foo () { + return 1; +} + +void bar () +{ + int (*test)() = foo; + + test(); +} + +__attribute__ ((target_version ("dotprod"))) int foo (); diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols2.C b/gcc/testsuite/g++.target/aarch64/mv-symbols2.C index 6da88ddfb48..55f2d48f5e4 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-symbols2.C +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols2.C @@ -41,13 +41,13 @@ int foo (int) /* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\._Mdotprod:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\._MsveMsve2:\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, %gnu_indirect_function\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.default:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\._Mdotprod:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\._MsveMsve2:\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, %gnu_indirect_function\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols3.C b/gcc/testsuite/g++.target/aarch64/mv-symbols3.C index 5dd7b49be2a..6ba02a2aae9 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-symbols3.C +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols3.C @@ -29,10 +29,10 @@ int bar() /* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\._Mdotprod:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\._MsveMsve2:\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n\tbl\t_Z3foov\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, %gnu_indirect_function\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, %gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.default:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\._Mdotprod:\n" 0 } } */ diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols4.C b/gcc/testsuite/g++.target/aarch64/mv-symbols4.C index 4b25d17cc15..cc013c47848 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-symbols4.C +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols4.C @@ -44,6 +44,6 @@ int bar() /* { dg-final { scan-assembler-times "\n_Z3fooi\.default:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\._Mdotprod:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\._MsveMsve2:\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, %gnu_indirect_function\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols5.C b/gcc/testsuite/g++.target/aarch64/mv-symbols5.C index fac00b20313..1396ca379e4 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-symbols5.C +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols5.C @@ -44,10 +44,10 @@ int bar() /* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\._Mdotprod:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\._MsveMsve2:\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n\tbl\t_Z3foov\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, %gnu_indirect_function\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, %gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.default:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\._Mdotprod:\n" 1 } } */ diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols6.C b/gcc/testsuite/g++.target/aarch64/mv-symbols6.C new file mode 100644 index 00000000000..bdfdcdbdaed --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols6.C @@ -0,0 +1,23 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ +/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + +__attribute__ ((target_version ("default"))) int +foo () +{ + return 1; +} + +int bar() +{ + return foo(); +} + +/* It is not overly clear what the correct behaviour is in this case. + This test serves more as a test of consistency for this case rather + than a test of correctness. */ + +/* { dg-final { scan-assembler-times "\n_Z3foov:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 0 } } */ +/* { dg-final { scan-assembler-times "bl\t_Z3foov\n" 1 } } */ diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols8.C b/gcc/testsuite/g++.target/aarch64/mv-symbols8.C new file mode 100644 index 00000000000..6c526227b31 --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols8.C @@ -0,0 +1,48 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ +/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + +__attribute__ ((target_version ("dotprod"))) int +foo (); + +__attribute__ ((target_version ("sve+sve2"))) int +foo (); + +__attribute__ ((target_version ("default"))) int +foo (); + +__attribute__ ((target_version ("sve+sve2"))) int +foo () +{ + return 5; +} +__attribute__ ((target_version ("dotprod"))) int +foo () +{ + return 3; +} +__attribute__ ((target_version ("default"))) int +foo () +{ + return 1; +} + +int +bar () +{ + return foo (); +} + +/* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\._Mdotprod:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\._MsveMsve2:\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx., _Z3foov\._MsveMsve2\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx., _Z3foov\._Mdotprod\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx., _Z3foov\.default\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n\tbl\t_Z3foov\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols9.C b/gcc/testsuite/g++.target/aarch64/mv-symbols9.C new file mode 100644 index 00000000000..937a223fcb2 --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols9.C @@ -0,0 +1,46 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ +/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + +__attribute__ ((target_version ("dotprod"))) int +foo (); +__attribute__ ((target_version ("sve+sve2"))) int +foo (); + +int +foo () +{ + return 1; +} + +__attribute__ ((target_version ("dotprod"))) int +foo () +{ + return 3; +} +__attribute__ ((target_version ("sve+sve2"))) int +foo () +{ + return 5; +} + +int +bar () +{ + return foo (); +} + +/* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\._Mdotprod:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\._MsveMsve2:\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx., _Z3foov\._MsveMsve2\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx., _Z3foov\._Mdotprod\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx., _Z3foov\.default\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n\tbl\t_Z3foov\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/g++.target/aarch64/mvc-symbols3.C b/gcc/testsuite/g++.target/aarch64/mvc-symbols3.C index 350a5586643..2a315d2db5c 100644 --- a/gcc/testsuite/g++.target/aarch64/mvc-symbols3.C +++ b/gcc/testsuite/g++.target/aarch64/mvc-symbols3.C @@ -22,15 +22,15 @@ int bar(int x) /* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\._Mdotprod:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\._MsveMsve2:\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n\tbl\t_Z3foov\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, %gnu_indirect_function\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, %gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.default:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\._Mdotprod:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\._MsveMsve2:\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n\tbl\t_Z3fooi\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, %gnu_indirect_function\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, %gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 0 } } */ diff --git a/gcc/testsuite/g++.target/riscv/mv-symbols2.C b/gcc/testsuite/g++.target/riscv/mv-symbols2.C index 43fa1502b7d..8a5c5a0bc9f 100644 --- a/gcc/testsuite/g++.target/riscv/mv-symbols2.C +++ b/gcc/testsuite/g++.target/riscv/mv-symbols2.C @@ -47,15 +47,15 @@ int foo (int) /* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__v:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__zba__zbb:\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, @gnu_indirect_function\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.default:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__v:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__zba__zbb:\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, @gnu_indirect_function\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/g++.target/riscv/mv-symbols3.C b/gcc/testsuite/g++.target/riscv/mv-symbols3.C index 4dc81cf7395..fa2d3371e87 100644 --- a/gcc/testsuite/g++.target/riscv/mv-symbols3.C +++ b/gcc/testsuite/g++.target/riscv/mv-symbols3.C @@ -36,10 +36,10 @@ int bar() /* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__v:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__zba__zbb:\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, @gnu_indirect_function\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, @gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.default:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__v:\n" 0 } } */ diff --git a/gcc/testsuite/g++.target/riscv/mv-symbols4.C b/gcc/testsuite/g++.target/riscv/mv-symbols4.C index b0ed16a5eda..fa84e25900c 100644 --- a/gcc/testsuite/g++.target/riscv/mv-symbols4.C +++ b/gcc/testsuite/g++.target/riscv/mv-symbols4.C @@ -50,7 +50,7 @@ int bar() /* { dg-final { scan-assembler-times "\n_Z3fooi\.default:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__v:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__zba__zbb:\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, @gnu_indirect_function\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, @gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/g++.target/riscv/mv-symbols5.C b/gcc/testsuite/g++.target/riscv/mv-symbols5.C index f4c6b294e0f..5551f5da554 100644 --- a/gcc/testsuite/g++.target/riscv/mv-symbols5.C +++ b/gcc/testsuite/g++.target/riscv/mv-symbols5.C @@ -48,10 +48,10 @@ int bar() /* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__v:\n" 1 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__zba__zbb:\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, @gnu_indirect_function\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, @gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.default:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__v:\n" 1 } } */ diff --git a/gcc/testsuite/g++.target/riscv/mvc-symbols3.C b/gcc/testsuite/g++.target/riscv/mvc-symbols3.C index b36c3fa7a95..256fec7d368 100644 --- a/gcc/testsuite/g++.target/riscv/mvc-symbols3.C +++ b/gcc/testsuite/g++.target/riscv/mvc-symbols3.C @@ -28,15 +28,15 @@ int bar(int x) /* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__v:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3foov\.arch__zba__zbb:\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n\tcall\t_Z3foov\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, @gnu_indirect_function\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, @gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.default:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__v:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n_Z3fooi\.arch__zba__zbb:\n" 0 } } */ -/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3fooi\.resolver:\n" 0 } } */ /* { dg-final { scan-assembler-times "\n\tcall\t_Z3fooi\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, @gnu_indirect_function\n" 1 } } */ -/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3fooi, @gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3fooi,_Z3fooi\.resolver\n" 0 } } */ From patchwork Mon Feb 3 13:04:20 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alfie Richards X-Patchwork-Id: 105918 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 50A233858408 for ; Mon, 3 Feb 2025 13:14:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 50A233858408 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=T9F7c2YB; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=T9F7c2YB X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2062f.outbound.protection.outlook.com [IPv6:2a01:111:f403:2612::62f]) by sourceware.org (Postfix) with ESMTPS id EF6DB385828B for ; Mon, 3 Feb 2025 13:05:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org EF6DB385828B Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org EF6DB385828B Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:2612::62f ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587916; cv=pass; b=Apd+nQRxWzDO6gMpaS+XfHC7Xo+5gFC3tu+JpA3G7PB6jt07HAjYHN2jaK/3ymawHJRjTyOpBg1033L6Td3Rf7+4ph+5DRe+xBIz4L9rP32b7iNjlaMkXkWxs+kpXZv2wq8IYzX7XxjRSyiko/Uqhsu2Sa3WnbrxoL9Txhba0z4= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587916; c=relaxed/simple; bh=Uq0G11bnwB2SOizB5LkuF/kzKe3J3wXgvZ61BtSPmEg=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=fje49rlcOe5oJ7pMgKayLMvjGxkIdeNBIfClViI2Go3UxoW830vA3yfmgRQOLJIdhF1OLxaofkmWODvCljfWN1e19bh/g7Xa3vfVJK+ztd4LtE429gVXj7M+w0BO0neY/0A0V6rjWe4QeBQ8cJWCRBUZI6UA1Vbxcngqv+UhJ1E= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=vj6kqcYi3LKdpSuGw8sdFDh7P2owZr77SC2Xczuet636uSe8h8DosdC1gDDq37AgHDmggWnp69yIbtXjmnoSsQyst1KrRoPHWRic/5EHELA0N9J9ROyE0asPA2uMuqhGK8dii6tto/bC3mjnbwls2a/j6M/v8Ie4PyTCZJFX3nZhl8nK5O9K9JKDud2fh2sNuIxiBLp1M3KslJT6cH131lV61qOtMVN2Ne3AU3CxULbNa/mI/hZPC1DNXfKKfC1CFORbperfEep0KskpuwKKV41dHQdNqjym1FI3M/Pv6ydHcVnGxA779ehzuPfiMTWIcovr1ZHSlxei0rSR/zkyPA== ARC-Message-Signature: i=2; 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=3K/EfSYBBr1GUChEWfI7YmYyM8ynjpUxX+MYcaaJKNU=; b=aLC2kNsxu2QhM6ParqkUi4/XwYAM2UvGXmRspDMg50zEvpEbhueB65K92SEppZwprI7duOPR4oLUJAtRstdj/qI6x33rziBgj/SFUUb3rcV3SCFPAc3uFj4vKT4Yv81n+4KL8pSeOeEPklHJ0U8HBNBYLetvkx5C/Z36jZhaCJlVfwT5iY01q807OCMIvQT+E8fY9eSLjiHlEHND8LyHQry1dmuAqpbn2ZFwNfJMKg807HB+N2X4kvUg2jKKLb0v5r0yLRpnimdURqQAAwEaYCTxnBAHmHun3bboKhkhsAlBN8u/vHResuwCI0emLSsPr0qZihevqEJlOjNCCQcE8g== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=0 ltdi=1) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3K/EfSYBBr1GUChEWfI7YmYyM8ynjpUxX+MYcaaJKNU=; b=T9F7c2YB+mBsQ/kKsGrRyTs++dp9eGiAoZmWq+FgqmSGzmUprm1e8OdGQix8+b3rMCOERl2oqCQXkjWHXSGIB70CKBh2MxiT0aZE218rhzRjQ0d6dfS7KiSIZHn1JyZ1J6viu3I7RN05TSSvnKaFk4PRnEFuUjvbYKNGkCeDJTY= Received: from PA7P264CA0256.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:375::10) by GV2PR08MB8656.eurprd08.prod.outlook.com (2603:10a6:150:b2::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.24; Mon, 3 Feb 2025 13:05:05 +0000 Received: from AM4PEPF00027A5D.eurprd04.prod.outlook.com (2603:10a6:102:375:cafe::c7) by PA7P264CA0256.outlook.office365.com (2603:10a6:102:375::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.24 via Frontend Transport; Mon, 3 Feb 2025 13:05:05 +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=arm.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 AM4PEPF00027A5D.mail.protection.outlook.com (10.167.16.69) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:05:05 +0000 Received: ("Tessian outbound ca1ab514ff10:v560"); Mon, 03 Feb 2025 13:05:04 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: c800d2bf86c0d6ce X-TessianGatewayMetadata: i6ZxDSUIeNIZ4FfExT+blYHk39aSTuYPSUH/05ghuqkGF4W2aQGy8GhFT8pmnehI4Y2pQ12Buf8z6tqQqFwkY1GfXfXvODvxyvB1JHl135ny10pG5efI8DfcaBL4ptXONBG7MzCneq5HEXQ+DdGefj7j34ruMEHgbP/QUaZ62aY= X-CR-MTA-TID: 64aa7808 Received: from Le387ab55eda7.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 9C34CC1C-66B5-4D1E-9E54-BBDC1372229D.1; Mon, 03 Feb 2025 13:04:57 +0000 Received: from EUR02-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id Le387ab55eda7.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Mon, 03 Feb 2025 13:04:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RfB5xbhGwgmg0hC4JmE2l6U9CyybXjqryopZIkDbYVy8lsM2H3XEgjDUKr3HojhE/5cfPGzm1Hgu2jkDs1rBimIvavtZx0H4QFCYdI/VGovQdCtxd4VWimbYRD1jsIv/CUhmtrpaff+UZwnhUhaJAp3fO8eiKNrgjmk/Dn7QT2jHhEatvbNfsjziy1VLYumntApZkleQoOFm5by3/tlVw2hYsvR9+KXAzTOSD7ytoX1C/wjKbJSQzBV/MuVejuN65gRHW/yDU89u5RHkGw6LLOOVpMQxZ2qrFSnw6BYFuXuHVlrtBreqW62JOeNqRIOGl9+ScJ6ccaByZzuYQ8RWTg== 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=3K/EfSYBBr1GUChEWfI7YmYyM8ynjpUxX+MYcaaJKNU=; b=j0aSOzhmxWkMyI2Tz5XhwUQFkVDzQFD3W+ZfEao4MqH4ObLENzxSUm3Ql9CwGSP7uAZlcai5kPafBDT+0JZBUtmkxyBxE0CMBdMAEEi5+bioHDN0ElF3vuu07RoLPiaYJ/98dWrYKRHxkloiGz7rw4A9E6Gser6pVUA7oAEhuJMClWxVFcY3orC1IfGmc6tBmmFwlFYIDlJ3ti6jh6azjTPSymQ9xa0EdXae9sdHuvmyx0CLLI2dkvB/AT+Sc6JSjZyNFRSdst3QhkXq1JClpRnjBNpPoA6bSUR2OF3oKpD6UMPL/Qz9GCgcI/ZaTKMKUbsO7cZ3MVH9zhn6Be0Akg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 172.205.89.229) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3K/EfSYBBr1GUChEWfI7YmYyM8ynjpUxX+MYcaaJKNU=; b=T9F7c2YB+mBsQ/kKsGrRyTs++dp9eGiAoZmWq+FgqmSGzmUprm1e8OdGQix8+b3rMCOERl2oqCQXkjWHXSGIB70CKBh2MxiT0aZE218rhzRjQ0d6dfS7KiSIZHn1JyZ1J6viu3I7RN05TSSvnKaFk4PRnEFuUjvbYKNGkCeDJTY= Received: from DU2PR04CA0302.eurprd04.prod.outlook.com (2603:10a6:10:2b5::7) by AM8PR08MB6625.eurprd08.prod.outlook.com (2603:10a6:20b:357::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.24; Mon, 3 Feb 2025 13:04:53 +0000 Received: from DU2PEPF00028D00.eurprd03.prod.outlook.com (2603:10a6:10:2b5:cafe::2a) by DU2PR04CA0302.outlook.office365.com (2603:10a6:10:2b5::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.25 via Frontend Transport; Mon, 3 Feb 2025 13:04:53 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=arm.com; Received-SPF: Fail (protection.outlook.com: domain of arm.com does not designate 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; Received: from nebula.arm.com (172.205.89.229) by DU2PEPF00028D00.mail.protection.outlook.com (10.167.242.184) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:04:53 +0000 Received: from AZ-NEU-EXJ01.Arm.com (10.240.25.132) by AZ-NEU-EX05.Arm.com (10.240.25.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:33 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EXJ01.Arm.com (10.240.25.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:32 +0000 Received: from ip-10-248-139-135.eu-west-1.compute.internal (10.252.78.54) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 3 Feb 2025 13:04:32 +0000 From: Alfie Richards To: CC: , , , , , , , Alfie Richards Subject: [PATCH v1 15/16] Support mixing of target_clones and target_version for aarch64. Date: Mon, 3 Feb 2025 13:04:20 +0000 Message-ID: <20250203130421.2192732-17-alfie.richards@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250203130421.2192732-1-alfie.richards@arm.com> References: <20250203130421.2192732-1-alfie.richards@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DU2PEPF00028D00:EE_|AM8PR08MB6625:EE_|AM4PEPF00027A5D:EE_|GV2PR08MB8656:EE_ X-MS-Office365-Filtering-Correlation-Id: bccf41a3-c4af-4a75-feb6-08dd445360a1 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|1800799024|376014|36860700013|82310400026; X-Microsoft-Antispam-Message-Info-Original: Nbesd2j8qEWmQFeDmc+RmKUQJcOkOC7KTy74V5bsM3E939ZxAStEsp94We7M9mDF+bFH0uI4lK08NmZbxSWb8TbZZ9Ac/IxrL79pkGK0oB7aytOVNSDwmf9SB6mxovHtbcjHc4SCBsrwvPozuizgXtKUXpckeRPLmEaGB6Va3Rkjn3sLac1Zpsh6bQOx14666fLFkLeuyDx3+GxgIE28/9zm/yh3AlYBB6mLYpM07YoOoIctQcR+GgV+jeRVRNwIUOwr7ufjmva085PoA+WWG2iAABtVmN73gi3kmvPBBv4DkC5QJOw1TZDY/zEBWKsER2cfb4sA6XKdcuFS9ZMLBotXoyVOlHVrhdOMuCmgFjd4/Ak5J3ZgFjOLeMKOjUdoF3VBYBoR6sH38rCif2AVBlYdgXJu6d4xiogb6efxuv96E8QY0pK5LyCU1/r7eQRCCPcSXdlGmgdXSnmsziph6qYOmrPHBFmQ6xIhge/p5LEtreEvnc+6z+XBg15czjTP3Fw6SkrNXAq7SL81MhTkotgkirDQwcEXX0wcREBZ2RwvXKvjWh0k3WXJ8m37HnDwKBOi6uWEwhPoxlQFmYnji4PIHIRtxf13AMQ2izrVEzkktsJMQfD2ZUxVOSiciMk/H4pfpB92z3H+UYxswCL+ko8tvO3HRDZzecat0Wm3+DmT0P2L8p/n4txjSBaAPMGSTIGo+qCeL3TwvB2gKSWk0UuVR4iBPNtFx882rk8NuOWiQH2Ax2UA4fGvkhxfO3hxF8mX+UX6PzmjwVt729+K0udL8zC23aAk1eSBra7la9bwMvmN7Agi3dtpz3iBsNAD7h3+43DJokSVQi2c0sHnBsGVIu67Qw9hIBYuOo0HCTKvHFGSBDBWixQow6o5o0oCuT1vzouXipFjWIwzEc9ztLLgWSwlzUPhSaZqnFFYGVf055H6qKjZOWgHqqzPypFoo6czjwLVWE1LAImeRgC1yG7bzu2uNIENA0KrKi6wuw2wEai5NMugxrqxm5gaXs1U/6vSmXjb7hnpiinuFU8bEIlQwk/q8OP3hNKOxUOOAMdHukRrgqgOkmmbjJOwysvgZzTtovVfYmZZIuacdaK/ckR6Cczf7hzjlvTnoAw3FgJmjIFZjctAbNavm27cjMq4bVEvGNG2pMs7hhmV26oAFC2slN2oEcE75+K4znKbNP+TUEBhZPJoo9A0bsUeNPZPDjcabQbwAHmGb4l3UwMN8vEPGekGjoI8Edp/rApq7O8eXV0NaAIBgcP2V/4QAmZXsCLV+Mha1rdTramdOhTwAOr5kwGU87lXgJlU8JsboGzyP8oDz8Lg03DUZpQzYQn5VPKihTIMglTKU1QXVwShXdkLvHNy82k6arK4WKWHtNY4V47GPftid86hf1Hovd5D7gzCaThjDQdxFcuLGODV8CCis3c6tYCyew8xNfYd9+59JhuqnE3ZbDH2IKJbHHVe+zY9Tn4V1L0loj6u7CO4s9PtZ6nPOgxcqifT+5djzmM= X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(1800799024)(376014)(36860700013)(82310400026); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6625 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:10:2b5::7]; domain=DU2PR04CA0302.eurprd04.prod.outlook.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM4PEPF00027A5D.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 95d7d194-9abe-44e8-b6a6-08dd445359d2 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|14060799003|376014|36860700013|35042699022|82310400026; X-Microsoft-Antispam-Message-Info: =?utf-8?q?9inBUAyThjcPWSYk7dF3lwocdb/XxGO?= =?utf-8?q?gVP5HP9xd8spy+N+R27Q5f/nIiJWS1SUFhyIe1kBn0JxvvCxQEpmE/apXY/XC1c1w?= =?utf-8?q?bLoC+vEMmuwqdomsyCOsurtjivEjeaQ2qwdotw0eBFnZ0spHp89u8GIJgozunMYeK?= =?utf-8?q?LIjwoVhDb7gF3h+5uNT8Abc1DDzFOGe1K6Zre9ox2cwt5LJrbAOQ7XxEMjwgAyTus?= =?utf-8?q?/+1VaCoFoZ2TYhNzNmCI4Cl+ZRFyMD9fQhnekDuO6dc/3KqtNYaO4YtStYDhK3uR1?= =?utf-8?q?hDd+sSXoYBuInWffHKtRa8kE/LMBn1OR6fWtAmCv3CDunmboo78CzZbcywRcr10lj?= =?utf-8?q?WGlcDPzm8L3HwwZTQJhY2vSgqaHVqn0rO8zZGKB+8VB97ilw0Loif2g0QescLFNrV?= =?utf-8?q?mGPY0TH1TJbW9Pw4jWd9Ea64Z5AcCFC2c00LwBSQyUUiS4VTi01zSdCzymcky9k/2?= =?utf-8?q?tFzPKGIupRDo/tRaRJiQGNlJ/i73uCjhoK3j/Us3GfOwxbcL8I4LymJiOjWyADZyK?= =?utf-8?q?UR6/9bzYY/uXRn88MeN3zjQXdLL71ce+TFPRFP8o+vyk5HT3i+TT9jUHAty5XPvDw?= =?utf-8?q?Pn+MPnsj9gCnjGki/SapSDUT4HRWZoEANcnOf7OPLCD3hxxif0ay9ykGmx38sctBJ?= =?utf-8?q?9EkjaMgGbyYq7NcNG0z6wtPLZ3Z/e7Lt6exTxQ3fIYX1u/IXI8fmvtQtL3aLrjt5H?= =?utf-8?q?3zuqEOrJdMriMyOyxKaaI6IjKcd24z4fT2feG9LPLbwdNCHdte0q0lBZmFA7P/aiZ?= =?utf-8?q?Hl6HQmWsK/NTNMxGCvMDcTXn01NhJk+0s2Gp9vPrDBBX9COLqgYS5KtRWl9csdzf2?= =?utf-8?q?00ywrX50mgiRh3nXeEwDZmm1gpraGgM9moi/HSGoddZsutWSejocGNhE2MJ3lLlXh?= =?utf-8?q?IqcC2lAeq8m+XtYw+IZ8x4XdQmMJGzuBkoez7iLSzot3G22MA+eJqNXtX7HeOeh8S?= =?utf-8?q?qrgB4Fx68xYaWWnu1l4+8vg5hi9fDgqNiKZqdfrsaHnY/9mdAc0Du3XFk2bP9ECqi?= =?utf-8?q?ReKZf5Q5ri2/HAW4JdHcAyKdpBMQwoVwuEbd28OIE0vsRATEpo/Pz3w8Rjpa11Mcp?= =?utf-8?q?GVj4Bek2T+76G0Y9J6O6Z+7/liXQ/DUDWF1tQFEIBJnQO/wAuDNUhD5DNm/pB7PSn?= =?utf-8?q?1dXrzH75ePHonaqXWxDoqq6edYfAPSZ/zjx4iL33XeAdrHV812O8R4MDBRnchBqyt?= =?utf-8?q?gA9zCDTX5d0KfPy/8VDU7Ls26OUhXhNEAIA8Ee9bNtHwNb0lsD6snG5JTMwXig0tA?= =?utf-8?q?HCEcINWe805Pr5/x/KDBwHaveCdPfjcT3VDSMwVcnX8HpH1iAsEY3OuFCX8BunIKW?= =?utf-8?q?1ct9uDMf75hckvFprwXxShN8yGY0gCshZftujGPFm4jBzNehxWGtvH0ammXOs9dQC?= =?utf-8?q?rvH9/Gju1QanNmx1ZjmqKClsBjI7mtL4Ni+kjlDXyjJ6H8PHsWFDzo=3D?= 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:64aa7808-outbound-1.mta.getcheckrecipient.com; CAT:NONE; SFS:(13230040)(1800799024)(14060799003)(376014)(36860700013)(35042699022)(82310400026); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2025 13:05:05.0057 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bccf41a3-c4af-4a75-feb6-08dd445360a1 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: AM4PEPF00027A5D.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB8656 X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, PROLO_LEO1, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org This patch adds support for the combination of target_clones and target_version in the definition of a versioned function. This patch changes is_function_default_version to consider a function declaration annotated with target_clones containing default to be a default version. It also changes the common_function_version hook to consider two functions annotated with target_clones and/or target_versions to be common if their specified versions don't overlap. This takes advantage of refactoring done in previous patches changing how target_clones are expanded. gcc/ChangeLog: * attribs.cc (is_function_default_version): Add logic for target_clones defining the default version. * config/aarch64/aarch64.cc (aarch64_common_function_versions): Add logic for a target_clones and target_version, or two target_clones coexisting in a version set. gcc/c-family/ChangeLog: * c-attribs.cc: Add support for target_version and target_clones coexisting. gcc/testsuite/ChangeLog: * g++.target/aarch64/mv-and-mvc1.C: New test. * g++.target/aarch64/mv-and-mvc2.C: New test. * g++.target/aarch64/mv-and-mvc3.C: New test. * g++.target/aarch64/mv-and-mvc4.C: New test. --- gcc/attribs.cc | 7 +++ gcc/c-family/c-attribs.cc | 2 - gcc/config/aarch64/aarch64.cc | 46 ++++++++++++++++++- .../g++.target/aarch64/mv-and-mvc1.C | 38 +++++++++++++++ .../g++.target/aarch64/mv-and-mvc2.C | 29 ++++++++++++ .../g++.target/aarch64/mv-and-mvc3.C | 41 +++++++++++++++++ .../g++.target/aarch64/mv-and-mvc4.C | 38 +++++++++++++++ gcc/testsuite/g++.target/aarch64/mv-error1.C | 13 ++++++ gcc/testsuite/g++.target/aarch64/mv-error13.C | 13 ++++++ gcc/testsuite/g++.target/aarch64/mv-error2.C | 10 ++++ gcc/testsuite/g++.target/aarch64/mv-error3.C | 13 ++++++ gcc/testsuite/g++.target/aarch64/mv-error7.C | 9 ++++ gcc/testsuite/g++.target/aarch64/mv-error8.C | 21 +++++++++ gcc/testsuite/g++.target/aarch64/mv-error9.C | 12 +++++ 14 files changed, 289 insertions(+), 3 deletions(-) create mode 100644 gcc/testsuite/g++.target/aarch64/mv-and-mvc1.C create mode 100644 gcc/testsuite/g++.target/aarch64/mv-and-mvc2.C create mode 100644 gcc/testsuite/g++.target/aarch64/mv-and-mvc3.C create mode 100644 gcc/testsuite/g++.target/aarch64/mv-and-mvc4.C create mode 100644 gcc/testsuite/g++.target/aarch64/mv-error1.C create mode 100644 gcc/testsuite/g++.target/aarch64/mv-error13.C create mode 100644 gcc/testsuite/g++.target/aarch64/mv-error2.C create mode 100644 gcc/testsuite/g++.target/aarch64/mv-error3.C create mode 100644 gcc/testsuite/g++.target/aarch64/mv-error7.C create mode 100644 gcc/testsuite/g++.target/aarch64/mv-error8.C create mode 100644 gcc/testsuite/g++.target/aarch64/mv-error9.C diff --git a/gcc/attribs.cc b/gcc/attribs.cc index 687e6d4143a..f877dc4f6e3 100644 --- a/gcc/attribs.cc +++ b/gcc/attribs.cc @@ -1327,6 +1327,13 @@ is_function_default_version (const tree decl) } else { + if (lookup_attribute ("target_clones", DECL_ATTRIBUTES (decl))) + { + int num_def = 0; + auto_vec versions = get_clone_versions (decl, &num_def); + return num_def > 0; + } + attr = lookup_attribute ("target_version", DECL_ATTRIBUTES (decl)); if (!attr) return true; diff --git a/gcc/c-family/c-attribs.cc b/gcc/c-family/c-attribs.cc index 642d724f6c6..f2cc43ad641 100644 --- a/gcc/c-family/c-attribs.cc +++ b/gcc/c-family/c-attribs.cc @@ -249,13 +249,11 @@ static const struct attribute_spec::exclusions attr_target_clones_exclusions[] = ATTR_EXCL ("always_inline", true, true, true), ATTR_EXCL ("target", TARGET_HAS_FMV_TARGET_ATTRIBUTE, TARGET_HAS_FMV_TARGET_ATTRIBUTE, TARGET_HAS_FMV_TARGET_ATTRIBUTE), - ATTR_EXCL ("target_version", true, true, true), ATTR_EXCL (NULL, false, false, false), }; static const struct attribute_spec::exclusions attr_target_version_exclusions[] = { - ATTR_EXCL ("target_clones", true, true, true), ATTR_EXCL (NULL, false, false, false), }; diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index 420bbba9be2..f6cb7903d88 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -20671,7 +20671,51 @@ aarch64_common_function_versions (tree fn1, tree fn2) || TREE_CODE (fn2) != FUNCTION_DECL) return false; - return (aarch64_compare_version_priority (fn1, fn2) != 0); + if (lookup_attribute ("target_clones", DECL_ATTRIBUTES (fn2))) + { + tree temp = fn1; + fn1 = fn2; + fn2 = temp; + } + + if (lookup_attribute ("target_clones", DECL_ATTRIBUTES (fn1))) + { + auto_vec fn1_versions = get_clone_versions (fn1); + // fn1 is target_clone + if (lookup_attribute ("target_clones", DECL_ATTRIBUTES (fn2))) + { + auto_vec fn2_versions = get_clone_versions (fn2); + for (string_slice v1 : fn1_versions) + { + aarch64_fmv_feature_mask v1_mask; + aarch64_parse_fmv_features (v1, NULL, &v1_mask, NULL); + for (string_slice v2 : fn2_versions) + { + aarch64_fmv_feature_mask v2_mask; + aarch64_parse_fmv_features (v2, NULL, &v2_mask, NULL); + if (v1_mask == v2_mask) + return false; + } + } + return true; + } + else + { + aarch64_fmv_feature_mask v2_mask = get_feature_mask_for_version (fn2); + for (string_slice v1 : fn1_versions) + { + aarch64_fmv_feature_mask v1_mask; + aarch64_parse_fmv_features (v1, NULL, &v1_mask, NULL); + if (v1_mask == v2_mask) + return false; + } + return true; + } + } + // Can assume both are target_version + else + // Both are target_version + return (aarch64_compare_version_priority (fn1, fn2) != 0); } /* Implement TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P. Use an opt-out diff --git a/gcc/testsuite/g++.target/aarch64/mv-and-mvc1.C b/gcc/testsuite/g++.target/aarch64/mv-and-mvc1.C new file mode 100644 index 00000000000..0e2e746f20e --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/mv-and-mvc1.C @@ -0,0 +1,38 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ +/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + +__attribute__((target_version("default"))) +int foo () +{ + return 0; +} + +__attribute__((target_clones("dotprod", "sve+sve2"))) +int foo () +{ + return 1; +} + +__attribute__((target_clones("sme", "sme2"))) +int foo () +{ + return 2; +} + +int bar() +{ + return foo (); +} + + +/* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\._Mdotprod:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\._MsveMsve2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\._Msme:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\._Msme2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tbl\t_Z3foov\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/g++.target/aarch64/mv-and-mvc2.C b/gcc/testsuite/g++.target/aarch64/mv-and-mvc2.C new file mode 100644 index 00000000000..6929b153c47 --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/mv-and-mvc2.C @@ -0,0 +1,29 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ +/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + +__attribute__((target_version("default"))) +int foo (); + +__attribute__((target_clones("dotprod", "sve+sve2"))) +int foo () +{ + return 1; +} + +__attribute__((target_clones("sme", "sme2"))) +int foo () +{ + return 2; +} + +/* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\._Mdotprod:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\._MsveMsve2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\._Msme:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\._Msme2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, %gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 0 } } */ diff --git a/gcc/testsuite/g++.target/aarch64/mv-and-mvc3.C b/gcc/testsuite/g++.target/aarch64/mv-and-mvc3.C new file mode 100644 index 00000000000..b25b6214f4c --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/mv-and-mvc3.C @@ -0,0 +1,41 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ +/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + +__attribute__((target_clones("dotprod", "sve+sve2"))) +int foo (); + +__attribute__((target_version("default"))) +int foo () +{ + return 0; +} + +__attribute__((target_clones("sme", "sme2"))) +int foo () +{ + return 2; +} + +int bar() +{ + return foo (); +} + + +/* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\._Mdotprod:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\._MsveMsve2:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\._Msme:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\._Msme2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tbl\t_Z3foov\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ +// { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\]+, _Z3foov\.default\n" 1 } } +/* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\]+, _Z3foov\._Mdotprod\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\]+, _Z3foov\._MsveMsve2\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\]+, _Z3foov\._Msme\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\]+, _Z3foov\._Msme2\n" 1 } } */ + diff --git a/gcc/testsuite/g++.target/aarch64/mv-and-mvc4.C b/gcc/testsuite/g++.target/aarch64/mv-and-mvc4.C new file mode 100644 index 00000000000..c122c9fe3ab --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/mv-and-mvc4.C @@ -0,0 +1,38 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ +/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + +__attribute__((target_version("dotprod"))) +int foo () +{ + return 0; +} + +__attribute__((target_clones("default", "sve+sve2"))) +int foo () +{ + return 1; +} + +__attribute__((target_clones("sme", "sme2"))) +int foo () +{ + return 2; +} + +int bar() +{ + return foo (); +} + + +/* { dg-final { scan-assembler-times "\n_Z3foov\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\._Mdotprod:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\._MsveMsve2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\._Msme:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\._Msme2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n_Z3foov\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tbl\t_Z3foov\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\t_Z3foov, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\t_Z3foov,_Z3foov\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/g++.target/aarch64/mv-error1.C b/gcc/testsuite/g++.target/aarch64/mv-error1.C new file mode 100644 index 00000000000..2a659c02dfc --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/mv-error1.C @@ -0,0 +1,13 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ +/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + +__attribute__ ((target_version ("default"))) int +foo (); + +__attribute__ ((target_version ("default"))) int +foo () { return 1; } /* { dg-message "old declaration" } */ + +__attribute__ ((target_version ("dotprod"))) float +foo () { return 3; } /* { dg-error "ambiguating new declaration of" } */ diff --git a/gcc/testsuite/g++.target/aarch64/mv-error13.C b/gcc/testsuite/g++.target/aarch64/mv-error13.C new file mode 100644 index 00000000000..0b6b38ce100 --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/mv-error13.C @@ -0,0 +1,13 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ +/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + +__attribute__ ((target_version ("dotprod"))) int +foo (); + +int +bar () +{ + return foo (); /* { dg-error "no default version in scope" } */ +} diff --git a/gcc/testsuite/g++.target/aarch64/mv-error2.C b/gcc/testsuite/g++.target/aarch64/mv-error2.C new file mode 100644 index 00000000000..167af4ad380 --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/mv-error2.C @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ +/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + +__attribute__ ((target_version ("dotprod"))) float +foo () { return 3; } /* { dg-message "previously defined here" } */ + +__attribute__ ((target_version ("dotprod"))) float +foo () { return 3; } /* { dg-error "redefinition of" } */ diff --git a/gcc/testsuite/g++.target/aarch64/mv-error3.C b/gcc/testsuite/g++.target/aarch64/mv-error3.C new file mode 100644 index 00000000000..cc641488263 --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/mv-error3.C @@ -0,0 +1,13 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ +/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + +__attribute__ ((target_version ("dotprod"))) float +foo () { return 3; } + +__attribute__ ((target_version ("default"))) float +foo () { return 3; } /* { dg-message "previously defined here" } */ + +__attribute__ ((target_version ("default"))) float +foo () { return 3; } /* { dg-error "redefinition of" } */ diff --git a/gcc/testsuite/g++.target/aarch64/mv-error7.C b/gcc/testsuite/g++.target/aarch64/mv-error7.C new file mode 100644 index 00000000000..3d2c73446be --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/mv-error7.C @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ +/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + +__attribute__ ((target_version ("sve+sve2"))) int +foo(); + +int bar () { return foo (); } /* { dg-error "no default version in scope" } */ diff --git a/gcc/testsuite/g++.target/aarch64/mv-error8.C b/gcc/testsuite/g++.target/aarch64/mv-error8.C new file mode 100644 index 00000000000..8ea26750480 --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/mv-error8.C @@ -0,0 +1,21 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ +/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + +__attribute__ ((target_version ("sve+sve2"))) int +foo () { + return 1; +} + +__attribute__ ((target_version ("sve"))) int +foo () { + return 1; +} + +int bar () { return foo (); } /* { dg-error "no matching function for call to" } */ + +__attribute__ ((target_version ("sve+sve2"))) int +foo2(); + +int bar2 () { return foo2 (); } /* { dg-error "no default version in scope" } */ diff --git a/gcc/testsuite/g++.target/aarch64/mv-error9.C b/gcc/testsuite/g++.target/aarch64/mv-error9.C new file mode 100644 index 00000000000..c1b58edca11 --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/mv-error9.C @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ +/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + +__attribute__ ((target_version ("dotprod"))) int +foo (); + +__attribute__ ((target_version ("sve+sve2"))) int +foo (); + +int bar () { return foo (); } /* { dg-error "no matching function for call to" } */ From patchwork Mon Feb 3 13:04:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alfie Richards X-Patchwork-Id: 105923 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C2112385841F for ; Mon, 3 Feb 2025 13:22:02 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C2112385841F Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=XsGQBCdp; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=XsGQBCdp X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on20610.outbound.protection.outlook.com [IPv6:2a01:111:f403:2612::610]) by sourceware.org (Postfix) with ESMTPS id 12B0F3857BBB for ; Mon, 3 Feb 2025 13:05:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 12B0F3857BBB Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 12B0F3857BBB Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:2612::610 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587919; cv=pass; b=UXrbmxItaFUtrm6eQNwxSQxl3EFXhahDtSfjLYJEapQzWjOqRwrUWRRsIOBlSZSSOuBvMp6fzstOgI2Yrdpp6m3kwN8vfgkbk6l7n264K0qdXpVa6koauq6xk8f+JUwQ4EDOLAB8Q8W3kiNQQocngbQlRwVk64pIFB8mspzaMBM= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587919; c=relaxed/simple; bh=l+4SrszSeWv7GAAH0IsyZf+y6hjE2erJBk+l/IeRNfs=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=O8a/pMpXwie8CtmKCcO9DusUFsGOsU/BFN2StxKTxD76IMw80BPkurPEmP/j7lFoJwHehtZB7ExukwNtB7zj/j6SVKiV0ky1ojoHdUe7UVOja7Dy1eOtXGCu2frkScqRLTc9XjVS41eAdyqRLLIGF1ySAicDQCbDoK61Cxxw9JI= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=gfE6rYTju3RcVpXkuHmSuhjcu0ojE1iQDa5h3W+f6revue57xGsgoGkM+hl0YeBL1lPPC/5qGbSUsBSPPfOD0UsblWtCgsitYe+Ygw7jgh7V2AGnnomuZSJjLioQ70K4Qg7FP5V1HEKqG0eCXqBqkfyivnZa04EUvhfB2Ey51mq/H4d7hDgBVj6XefhTdxc45/S2sB68Tput8i1psO2m5zlL9gx6QqioW2VbI+I7EiUYauRLjUff/8hNjfTcucY7MF1b6euf4Y9cXFkyubvANK3tJPAGJqg7x2hGHosp7HBfT6ofcvWJILpobspKeITyHZTfFXy2YwNs/j+EJY8fag== ARC-Message-Signature: i=2; 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=QOOxXB2ZYopd671aLjgr3owjyeQzBcA1ku/HB40rm1E=; b=Fsw+QWSb83NeNmSlr53DEiVHMBg5NiVzXaKPywT1Gk4J/S5VB0++yfvIa1sPLWzW32g8O5ojF5qGI3neYDUgQWKtKEig1LDaN04tBbGKAe1q8h1Nny59gY7nM8Epnd080WczWOlG1T7gypwfbLtscsP4/8hovQ8OG9/bzQW91tYX20xcfrxASHGYt3FY03QlgviZ/kpXy11kFmn3vwmSsMFtW/9ZHTeLDW/u4CrD73P+R66xtNWcszW3mEjiRkXZTrezmHQVh83fRmhQ2WMc4lPXxKEWswwOXJUThgripvDrDalqtTqK5LeCcPW46KPPBE0uOBT2la1WSHp2nA80gA== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=0 ltdi=1) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QOOxXB2ZYopd671aLjgr3owjyeQzBcA1ku/HB40rm1E=; b=XsGQBCdpAcJxtm4LT3IHWXmvIkjkxy5ZiwSBfjVWUw4GweRTOmcaQojV8MkOPxhKr1YM+bNTBzzyUvB4CzZdiD055ohuk0K3ecgzWS5LQ8KmUE3qg2lUaAcfXANQ8CLGGB/cFLftxOIUyYvaMZEaAEdYUbcqdaMRUV32rG5FehA= Received: from DUZPR01CA0198.eurprd01.prod.exchangelabs.com (2603:10a6:10:4b6::29) by AS8PR08MB6264.eurprd08.prod.outlook.com (2603:10a6:20b:29a::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.25; Mon, 3 Feb 2025 13:05:06 +0000 Received: from DU2PEPF00028D06.eurprd03.prod.outlook.com (2603:10a6:10:4b6:cafe::72) by DUZPR01CA0198.outlook.office365.com (2603:10a6:10:4b6::29) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.24 via Frontend Transport; Mon, 3 Feb 2025 13:05:13 +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=arm.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 DU2PEPF00028D06.mail.protection.outlook.com (10.167.242.166) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:05:05 +0000 Received: ("Tessian outbound 57745bc349d8:v560"); Mon, 03 Feb 2025 13:05:05 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 537dfa37647d46f2 X-TessianGatewayMetadata: 64BfdObjzLhRZhWdil6v8wU7MtZl1scNuUVCjG2/+PMePUWKn0qP6HfuiHuxgJWo94g9JpOJuKa10Y5NtZ4GaTmLi3bEGr6JZvhpjocOdVWM86mXArrl10dS4r847xrS0bg5fCwS9WeY/l3hI9fc+/1eEW+oN6Y2Byei0wX55mw= X-CR-MTA-TID: 64aa7808 Received: from L3aaa65f26e90.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 8A2A33D5-BE67-4D76-B5ED-8CDB23DDED7B.1; Mon, 03 Feb 2025 13:04:58 +0000 Received: from DUZPR83CU001.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id L3aaa65f26e90.1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Mon, 03 Feb 2025 13:04:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZuR/HLej2uHO9+TF/MdKkf5yMPKwwzKjEbXFNHmptjTFQeYOJKTZh8JmLCcnoUxE0wmwXwNz9OaRTU8aPMrFxzibnFZxgJlDEI0NPl1KFi8SF63UACI1EhRcDCTqD+O8S1qyVRluYl/fLGtieYJrQYKIVLEGkDufXACBatXTYgvFX0S6uKOb9TaGamAl8d0poWIo9/Q2zOIWmZbJn7MwrAuY6wGOEk1YUUBffvQovizxgjWheflfZJZDhgV3oIDd1nLJ0D/Xu/cUEKMcPwDJYiQJ/1nrTSH64VnL8kHRugkXl8VUhkw5WWGjrx/Vy6zigDvTbbHGaa+q7rBNAvnzsQ== 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=QOOxXB2ZYopd671aLjgr3owjyeQzBcA1ku/HB40rm1E=; b=wn8vL0yilKTV1jtT+rK5MEyv89bKqz6+M+bzVetT9rJMMLqSBa9w8bxSaQXoAQr3oRJDQr8Zafn+41cleZKIEJjfPpIBI2XtVLAMdRL5uOaMZQoju3JcA9qEXZ22g6IsI1OuU+vyLBUpDmDacnt29uXXd2zN5DVwrD8EMNWic7VDK5rxe4iN/S7Jbs2RnzvBpoO5+3Hfw6YU2YOic7s9+W7bmSkpnYyAnWxcTZAcDAGIf7WjeNphnwyXslPcjxRBMQgrBCtWvMxvGG78N6LF6babJtNEcfGssz1mUq5KWIMqRyE2BCTG9KQ+3Zu7QfYYT8RbePBIi8XuKB6T1693cQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 172.205.89.229) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QOOxXB2ZYopd671aLjgr3owjyeQzBcA1ku/HB40rm1E=; b=XsGQBCdpAcJxtm4LT3IHWXmvIkjkxy5ZiwSBfjVWUw4GweRTOmcaQojV8MkOPxhKr1YM+bNTBzzyUvB4CzZdiD055ohuk0K3ecgzWS5LQ8KmUE3qg2lUaAcfXANQ8CLGGB/cFLftxOIUyYvaMZEaAEdYUbcqdaMRUV32rG5FehA= Received: from DU2PR04CA0309.eurprd04.prod.outlook.com (2603:10a6:10:2b5::14) by PA4PR08MB6047.eurprd08.prod.outlook.com (2603:10a6:102:e3::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.24; Mon, 3 Feb 2025 13:04:55 +0000 Received: from DU2PEPF00028D00.eurprd03.prod.outlook.com (2603:10a6:10:2b5:cafe::ec) by DU2PR04CA0309.outlook.office365.com (2603:10a6:10:2b5::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8398.24 via Frontend Transport; Mon, 3 Feb 2025 13:04:54 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=arm.com; Received-SPF: Fail (protection.outlook.com: domain of arm.com does not designate 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; Received: from nebula.arm.com (172.205.89.229) by DU2PEPF00028D00.mail.protection.outlook.com (10.167.242.184) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8398.14 via Frontend Transport; Mon, 3 Feb 2025 13:04:54 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX05.Arm.com (10.240.25.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:33 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 3 Feb 2025 13:04:33 +0000 Received: from ip-10-248-139-135.eu-west-1.compute.internal (10.252.78.54) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 3 Feb 2025 13:04:32 +0000 From: Alfie Richards To: CC: , , , , , , , Alfie Richards Subject: [PATCH v1 16/16] Remove FMV beta warning. Date: Mon, 3 Feb 2025 13:04:21 +0000 Message-ID: <20250203130421.2192732-18-alfie.richards@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250203130421.2192732-1-alfie.richards@arm.com> References: <20250203130421.2192732-1-alfie.richards@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DU2PEPF00028D00:EE_|PA4PR08MB6047:EE_|DU2PEPF00028D06:EE_|AS8PR08MB6264:EE_ X-MS-Office365-Filtering-Correlation-Id: 3ba9d345-d8cd-485b-33e3-08dd4453612f x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|1800799024|376014|82310400026|36860700013; X-Microsoft-Antispam-Message-Info-Original: 9gcm4AeZ3fn7G+IDWAm29PJekIqLYIRIv3wZAapmCkwFpgAaasqmh6fJ1Ob+nxCb9mFR6jvzX81Y2w2CeVA1k83wrb5gpoRk2Ioez1O+hKBJTh7I/rYocwel/FqUootrdPg8m+7WI4uXdnA7NDCJ90EcizhbPL6snbfCVAK8Ou9hEo6/kB7PsWUZJNO/nHB+AvME1ZFmcMims/Sx5WcQVa8Z5bVZIjlGb9pOVaOHfvPZlrI8cyjHAPovVCLKwrziKNIko+AQFoXyzZRUU706CCqkXooGg80j4Echa8/3+DOzXv7XXhMVE8mo+PWNl48p1szvU4eF3kg0nx/TjHFcfn2JILiM+i4FyVhmQKvZ8v9qjzsAT70SZ1Jvtj9N30hpDUD4PpaTSDSvCTp6rGW2bROstnP4BvMMe4z8Jy5HI+MZFCrGWhaua2bA5UoPpS/iplORfG/vbl85Em9ZbYTOs4UIPVYYcWn4AeQYLxM1C9nSHeXTPQEOTRyYh3Phe3KA6bE/zGdVjoHy68gqQEn4fkayBC2rMlmt9VSzA+zuZxRVSsA3HeDWGUR4qPNL01xw9z785B5OpR30t6/q6jtlR99QveRdNht3+0/BpZ/odVh3BZ8a9Jnsrshg5l///b2ibRM2IL3k1MsO+jM/6/SHOvfJP+TexBYy9vD8W4tlcP/d2EYejiR8Fcm1qL8wbn7M3eJzLM0MwVygbgakF4GQV4QoCaBJ8iwtFgMwyWFhNa9yF2lbG9lsyYRBNF6GJOxla7wyPNZq2a64lif89vdUrz6Y2kfKzUzU+rHZRkAqu0xXR+NjQDGn17SjJRod9jeGN6K9AjlDxuAuTHU98BrW3QuIqVPGfBCDIc8632YQo8CC6LOhKg4Q3mJDV5YJyJnrGQZhOroNOALcYNrCdhw01IfN6P4eKcPVQd0FIgZ8wTx41opKytGpIdkp18Tkx0ppOvOnEn/z1RgvGH+hoM5nAz0My5beH+pjDDv/oy198nk5kX7G969nLFs8gnbk9TaKgCyJR2o5p9C1wljq22uckbt9rG4oODy97STDbaldMAPhs2WsSHgJJYAel83YJTEFPlcZdfiahV/ANcC05/qAC773+GNnC115i+q2V71ho509BlR68ruNHHdtG2hc2VX7hxzPc8dS37gnsMbGBORgDXtCoQ6IiwagH8r3Z2oWhw2cpU7IuDraXPY1/GSi53Lb4hUh/Up7jCSmHqQ7kbHvfWrNySiaajipRTB/FOrI07WFQTUXV9hLFns4tfZSC3O1FGqZr0jxKBfpkYMu7fX+sQc7pYmGeBk3ZIZp6Bn3n2w7nXU74xfZZBJwIo793PRFKATrNMqt4HSuA6r7bjzAJ7lKt6RR+anxcXT6SEqXIYwNEf8ZsCej8XlvcZtKMiWY+Zi2QsMOoBhTPaKV0G3S3WnOIkYbBOYOsfO75JSaiPfsUnmSYbOXhXDyQ5OKg0TuDk0ByncoiBGkhATWrOMu3eC1fnQNhhiFa62WkGkajXQ= X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(1800799024)(376014)(82310400026)(36860700013); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6047 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:10:2b5::14]; domain=DU2PR04CA0309.eurprd04.prod.outlook.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: DU2PEPF00028D06.eurprd03.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 68199ecd-c673-4f9c-c439-08dd44535a61 X-Microsoft-Antispam: BCL:0; ARA:13230040|36860700013|376014|82310400026|1800799024|35042699022|14060799003; X-Microsoft-Antispam-Message-Info: =?utf-8?q?FY4+xqoOFNUa4W5MkbGeC+yj8HY9exU?= =?utf-8?q?pL2Rr9Rc9R1Lm4Fp1a6C5gGYqsFrfZV2Ri4+qoUf5CrYnfPOVq6m/KDZoUN2wMpQu?= =?utf-8?q?NWiH6YXP0PyIJFP15trsowp6/RgZSMs5diUsbCa4e5qqpQKLjxEnT4HWj6D20OM+G?= =?utf-8?q?Sk7dLDHDAbtkBejLvSgr+7VASwHXs4bZT4hJKFc9F71HeEwuLyNWKXnng5zn57F4Q?= =?utf-8?q?8TuZD+Ceku7sq9vWEA/q9oSqmfoIlg32RvHf9/hg0DQePjoRKsHUgesIwkbX4CFWm?= =?utf-8?q?7srw73kLx3dh0B+lGoEWq1f5NXb/GjWUGZaYi5x+2xMB5TCU/fGKcX+ZsGyK7VOxN?= =?utf-8?q?HxfxLDtlc21DK1xj7nzz/gzoBG++fR/A5/E2Zk1Wo5IwqMlku5aJaz0WDhMDzWFs4?= =?utf-8?q?ZItru78AotXclQz/SQAC5GBMl/rSJaxQwkOpQ3GWX8ov2Otnr6EUuGI2PJN6CKm1v?= =?utf-8?q?dX2xuSHeNmFnkPv7zm2qtVerK5RmJRv+H4yZtSQ+uUWO3SeY4n6EVmhXZ51UxRFjf?= =?utf-8?q?EVLKm5p7qtx2j9fcWOD1q5jcZ9PLZ+vbwHTE2vvADGKRKgH81B4Le9dNphqCWvU4/?= =?utf-8?q?9THz2g368Ag7VdqKHZbL+nAzappIajbHwnUbevXbMzW5s/OYHDakjEzUzA4neg1cZ?= =?utf-8?q?xFb8Q0prEY7vwCFxoETy7qDLsLsSVvg7Y4dwk7Hw27LlZhOkd93drTOCyKdCFOgW+?= =?utf-8?q?VSfOM09W9ktF8qwdAH1yNbNP9GFAsP5SDEyXzviASSFvBpp3+qIXANf8JGmuKPJHa?= =?utf-8?q?Y6c4DgesPy7hMA7cBxc+SgLrnl2kv4V5T8Ykgvw3YCDDAc5AOPKJ6JnSzx2s/EWpo?= =?utf-8?q?v7XrDuz7U0huYuBJpzitjGBbiYyFAyn2vVMi14oefC48EOzxnnEBG4LdGjmeo9Z28?= =?utf-8?q?xUzzAX+kfCiEfyG28P1gtNkgiOmuASw3gnCS6k7kbkt/q42BwphwXpHdConD/zqnS?= =?utf-8?q?BJwB0jvCsxa3Lr1RnSpg97OBAbffJ3W2M17Mz2ZRHCCvLT9RAHApkBBFMjc7B+LIy?= =?utf-8?q?7ojGoqHqju+33zA+mngufrC94UOpmB+2aXQhS6XEFYI2MSk7hZL4uJAMnwEUZEUCs?= =?utf-8?q?hJEjf2oPRmWfCwKEmDJ/pHwGy1C9NX3VyHBJFoC3LF4TZcpmC6i6xFNr8UEix4I/A?= =?utf-8?q?jqz0UVcRL0VoXApUHzq2pA5H6IGV08Qm97wUiVAGq+0fW1+Jo2o2Ey2dU8oiRsnX1?= =?utf-8?q?nAkJIBEaBjC+CqJnKHq16Uj9A2U6Ndk6kCS7rl+RAtiA9KemCKbVYTDj7MRg+HRae?= =?utf-8?q?It9c4xJ1Bs7CHoDX9/c550gXs4L/xaZe/BISOSzeWRm+cGbXfBO7p4fPQagP5saHE?= =?utf-8?q?+IRQR9SJs8jE33M+H5ciNdQNr13WMTQTs21owgphmbyw/RhZ7NMSFwiQGBHhCuH/P?= =?utf-8?q?W5v32wH8qyz4udEVPArB7lK194WvU7Rg6ByLdO7yJRLOX+wzjPLq7M=3D?= 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:64aa7808-outbound-1.mta.getcheckrecipient.com; CAT:NONE; SFS:(13230040)(36860700013)(376014)(82310400026)(1800799024)(35042699022)(14060799003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2025 13:05:05.9936 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3ba9d345-d8cd-485b-33e3-08dd4453612f 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: DU2PEPF00028D06.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6264 X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org This patch removes the warning for target_version and target_clones in aarch64 as it is now spec compliant. gcc/ChangeLog: * config/aarch64/aarch64.cc (aarch64_process_target_version_attr): Remove warning. gcc/testsuite/ChangeLog: * g++.target/aarch64/mv-1.C: Remove option. * g++.target/aarch64/mv-and-mvc1.C: Remove option. * g++.target/aarch64/mv-and-mvc2.C: Remove option. * g++.target/aarch64/mv-and-mvc3.C: Remove option. * g++.target/aarch64/mv-and-mvc4.C: Remove option. * g++.target/aarch64/mv-error1.C: Remove option. * g++.target/aarch64/mv-error13.C: Remove option. * g++.target/aarch64/mv-error2.C: Remove option. * g++.target/aarch64/mv-error3.C: Remove option. * g++.target/aarch64/mv-error7.C: Remove option. * g++.target/aarch64/mv-error8.C: Remove option. * g++.target/aarch64/mv-error9.C: Remove option. * g++.target/aarch64/mv-pragma.C: Remove option. * g++.target/aarch64/mv-symbols1.C: Remove option. * g++.target/aarch64/mv-symbols10.C: Remove option. * g++.target/aarch64/mv-symbols11.C: Remove option. * g++.target/aarch64/mv-symbols12.C: Remove option. * g++.target/aarch64/mv-symbols14.C: Remove option. * g++.target/aarch64/mv-symbols15.C: Remove option. * g++.target/aarch64/mv-symbols2.C: Remove option. * g++.target/aarch64/mv-symbols3.C: Remove option. * g++.target/aarch64/mv-symbols4.C: Remove option. * g++.target/aarch64/mv-symbols5.C: Remove option. * g++.target/aarch64/mv-symbols6.C: Remove option. * g++.target/aarch64/mv-symbols8.C: Remove option. * g++.target/aarch64/mv-symbols9.C: Remove option. * g++.target/aarch64/mvc-symbols1.C: Remove option. * g++.target/aarch64/mvc-symbols2.C: Remove option. * g++.target/aarch64/mvc-symbols3.C: Remove option. * g++.target/aarch64/mvc-symbols4.C: Remove option. * g++.target/aarch64/mv-warning1.C: Removed. * g++.target/aarch64/mvc-warning1.C: Removed. --- gcc/config/aarch64/aarch64.cc | 9 --------- gcc/testsuite/g++.target/aarch64/mv-1.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-and-mvc1.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-and-mvc2.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-and-mvc3.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-and-mvc4.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-error1.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-error13.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-error2.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-error3.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-error7.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-error8.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-error9.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-pragma.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-symbols1.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-symbols10.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-symbols11.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-symbols12.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-symbols14.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-symbols15.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-symbols2.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-symbols3.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-symbols4.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-symbols5.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-symbols6.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-symbols8.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-symbols9.C | 2 +- gcc/testsuite/g++.target/aarch64/mv-warning1.C | 9 --------- gcc/testsuite/g++.target/aarch64/mvc-symbols1.C | 2 +- gcc/testsuite/g++.target/aarch64/mvc-symbols2.C | 2 +- gcc/testsuite/g++.target/aarch64/mvc-symbols3.C | 2 +- gcc/testsuite/g++.target/aarch64/mvc-symbols4.C | 2 +- gcc/testsuite/g++.target/aarch64/mvc-warning1.C | 6 ------ 33 files changed, 30 insertions(+), 54 deletions(-) delete mode 100644 gcc/testsuite/g++.target/aarch64/mv-warning1.C delete mode 100644 gcc/testsuite/g++.target/aarch64/mvc-warning1.C diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index f6cb7903d88..a2c3ba8e12e 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -19939,15 +19939,6 @@ aarch64_parse_fmv_features (string_slice str, aarch64_feature_flags *isa_flags, static bool aarch64_process_target_version_attr (tree args) { - static bool issued_warning = false; - if (!issued_warning) - { - warning (OPT_Wexperimental_fmv_target, - "Function Multi Versioning support is experimental, and the " - "behavior is likely to change"); - issued_warning = true; - } - if (TREE_CODE (args) == TREE_LIST) { if (TREE_CHAIN (args)) diff --git a/gcc/testsuite/g++.target/aarch64/mv-1.C b/gcc/testsuite/g++.target/aarch64/mv-1.C index 93b8a136587..4f815e18683 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-1.C +++ b/gcc/testsuite/g++.target/aarch64/mv-1.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-ifunc "" } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__((target_version("default"))) int foo () diff --git a/gcc/testsuite/g++.target/aarch64/mv-and-mvc1.C b/gcc/testsuite/g++.target/aarch64/mv-and-mvc1.C index 0e2e746f20e..1638643d300 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-and-mvc1.C +++ b/gcc/testsuite/g++.target/aarch64/mv-and-mvc1.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-ifunc "" } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__((target_version("default"))) int foo () diff --git a/gcc/testsuite/g++.target/aarch64/mv-and-mvc2.C b/gcc/testsuite/g++.target/aarch64/mv-and-mvc2.C index 6929b153c47..e6efe079013 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-and-mvc2.C +++ b/gcc/testsuite/g++.target/aarch64/mv-and-mvc2.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-ifunc "" } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__((target_version("default"))) int foo (); diff --git a/gcc/testsuite/g++.target/aarch64/mv-and-mvc3.C b/gcc/testsuite/g++.target/aarch64/mv-and-mvc3.C index b25b6214f4c..70424abfb47 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-and-mvc3.C +++ b/gcc/testsuite/g++.target/aarch64/mv-and-mvc3.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-ifunc "" } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__((target_clones("dotprod", "sve+sve2"))) int foo (); diff --git a/gcc/testsuite/g++.target/aarch64/mv-and-mvc4.C b/gcc/testsuite/g++.target/aarch64/mv-and-mvc4.C index c122c9fe3ab..9570983a2a6 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-and-mvc4.C +++ b/gcc/testsuite/g++.target/aarch64/mv-and-mvc4.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-ifunc "" } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__((target_version("dotprod"))) int foo () diff --git a/gcc/testsuite/g++.target/aarch64/mv-error1.C b/gcc/testsuite/g++.target/aarch64/mv-error1.C index 2a659c02dfc..d5f17db70db 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-error1.C +++ b/gcc/testsuite/g++.target/aarch64/mv-error1.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-ifunc "" } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__ ((target_version ("default"))) int foo (); diff --git a/gcc/testsuite/g++.target/aarch64/mv-error13.C b/gcc/testsuite/g++.target/aarch64/mv-error13.C index 0b6b38ce100..17d9bdf7171 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-error13.C +++ b/gcc/testsuite/g++.target/aarch64/mv-error13.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-ifunc "" } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__ ((target_version ("dotprod"))) int foo (); diff --git a/gcc/testsuite/g++.target/aarch64/mv-error2.C b/gcc/testsuite/g++.target/aarch64/mv-error2.C index 167af4ad380..059937c8380 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-error2.C +++ b/gcc/testsuite/g++.target/aarch64/mv-error2.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-ifunc "" } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__ ((target_version ("dotprod"))) float foo () { return 3; } /* { dg-message "previously defined here" } */ diff --git a/gcc/testsuite/g++.target/aarch64/mv-error3.C b/gcc/testsuite/g++.target/aarch64/mv-error3.C index cc641488263..d741aabc943 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-error3.C +++ b/gcc/testsuite/g++.target/aarch64/mv-error3.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-ifunc "" } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__ ((target_version ("dotprod"))) float foo () { return 3; } diff --git a/gcc/testsuite/g++.target/aarch64/mv-error7.C b/gcc/testsuite/g++.target/aarch64/mv-error7.C index 3d2c73446be..d725f654db5 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-error7.C +++ b/gcc/testsuite/g++.target/aarch64/mv-error7.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-ifunc "" } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__ ((target_version ("sve+sve2"))) int foo(); diff --git a/gcc/testsuite/g++.target/aarch64/mv-error8.C b/gcc/testsuite/g++.target/aarch64/mv-error8.C index 8ea26750480..225463a354a 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-error8.C +++ b/gcc/testsuite/g++.target/aarch64/mv-error8.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-ifunc "" } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__ ((target_version ("sve+sve2"))) int foo () { diff --git a/gcc/testsuite/g++.target/aarch64/mv-error9.C b/gcc/testsuite/g++.target/aarch64/mv-error9.C index c1b58edca11..1628a1c9c72 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-error9.C +++ b/gcc/testsuite/g++.target/aarch64/mv-error9.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-ifunc "" } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__ ((target_version ("dotprod"))) int foo (); diff --git a/gcc/testsuite/g++.target/aarch64/mv-pragma.C b/gcc/testsuite/g++.target/aarch64/mv-pragma.C index 6e5929328bb..e8d91d51b48 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-pragma.C +++ b/gcc/testsuite/g++.target/aarch64/mv-pragma.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-ifunc "" } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + #pragma GCC target ("+sve") diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols1.C b/gcc/testsuite/g++.target/aarch64/mv-symbols1.C index 73cde42fa34..9f40dd3bcfd 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-symbols1.C +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols1.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-ifunc "" } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + int foo () { diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols10.C b/gcc/testsuite/g++.target/aarch64/mv-symbols10.C index dc5a8ff6572..57ee5a2de4a 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-symbols10.C +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols10.C @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + int foo (); diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols11.C b/gcc/testsuite/g++.target/aarch64/mv-symbols11.C index 92d4ab617d8..cb5cd2af703 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-symbols11.C +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols11.C @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__ ((target_version ("default"))) void foo (int a = 3); diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols12.C b/gcc/testsuite/g++.target/aarch64/mv-symbols12.C index 05d915f19ab..400ddce251e 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-symbols12.C +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols12.C @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__ ((target_version ("default"))) int foo () { return 1; } diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols14.C b/gcc/testsuite/g++.target/aarch64/mv-symbols14.C index fbee7800ba2..af6c119b8de 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-symbols14.C +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols14.C @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + int foo () { return 1; diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols15.C b/gcc/testsuite/g++.target/aarch64/mv-symbols15.C index a10c0bfb990..6e1ed346418 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-symbols15.C +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols15.C @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + int foo () { return 1; diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols2.C b/gcc/testsuite/g++.target/aarch64/mv-symbols2.C index 55f2d48f5e4..4a2a70e2f43 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-symbols2.C +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols2.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-ifunc "" } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__((target_version("default"))) int foo () diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols3.C b/gcc/testsuite/g++.target/aarch64/mv-symbols3.C index 6ba02a2aae9..14616fe66ec 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-symbols3.C +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols3.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-ifunc "" } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__((target_version("default"))) int foo (); diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols4.C b/gcc/testsuite/g++.target/aarch64/mv-symbols4.C index cc013c47848..89a7d24d6b9 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-symbols4.C +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols4.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-ifunc "" } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__((target_version("default"))) int foo () diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols5.C b/gcc/testsuite/g++.target/aarch64/mv-symbols5.C index 1396ca379e4..c6fcaff85fa 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-symbols5.C +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols5.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-ifunc "" } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__((target_version("default"))) int foo (); diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols6.C b/gcc/testsuite/g++.target/aarch64/mv-symbols6.C index bdfdcdbdaed..2aa5d38fbd0 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-symbols6.C +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols6.C @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__ ((target_version ("default"))) int foo () diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols8.C b/gcc/testsuite/g++.target/aarch64/mv-symbols8.C index 6c526227b31..5da92de907a 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-symbols8.C +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols8.C @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__ ((target_version ("dotprod"))) int foo (); diff --git a/gcc/testsuite/g++.target/aarch64/mv-symbols9.C b/gcc/testsuite/g++.target/aarch64/mv-symbols9.C index 937a223fcb2..ae39a07244f 100644 --- a/gcc/testsuite/g++.target/aarch64/mv-symbols9.C +++ b/gcc/testsuite/g++.target/aarch64/mv-symbols9.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-ifunc "" } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__ ((target_version ("dotprod"))) int foo (); diff --git a/gcc/testsuite/g++.target/aarch64/mv-warning1.C b/gcc/testsuite/g++.target/aarch64/mv-warning1.C deleted file mode 100644 index 6346c1673a2..00000000000 --- a/gcc/testsuite/g++.target/aarch64/mv-warning1.C +++ /dev/null @@ -1,9 +0,0 @@ -/* { dg-do compile } */ -/* { dg-require-ifunc "" } */ -/* { dg-options "-O0" } */ - -__attribute__((target_version("default"))) -int foo () { return 1; }/* { dg-warning "Function Multi Versioning support is experimental, and the behavior is likely to change" } */ - -__attribute__((target_version("rng"))) -int foo () { return 1; } diff --git a/gcc/testsuite/g++.target/aarch64/mvc-symbols1.C b/gcc/testsuite/g++.target/aarch64/mvc-symbols1.C index 983194d74af..ed134966b60 100644 --- a/gcc/testsuite/g++.target/aarch64/mvc-symbols1.C +++ b/gcc/testsuite/g++.target/aarch64/mvc-symbols1.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-ifunc "" } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__((target_clones("default", "dotprod", "sve+sve2"))) int foo () diff --git a/gcc/testsuite/g++.target/aarch64/mvc-symbols2.C b/gcc/testsuite/g++.target/aarch64/mvc-symbols2.C index 58a797947ce..5d30d2e6c51 100644 --- a/gcc/testsuite/g++.target/aarch64/mvc-symbols2.C +++ b/gcc/testsuite/g++.target/aarch64/mvc-symbols2.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-ifunc "" } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__((target_clones("default", "dotprod", "sve+sve2"))) int foo () diff --git a/gcc/testsuite/g++.target/aarch64/mvc-symbols3.C b/gcc/testsuite/g++.target/aarch64/mvc-symbols3.C index 2a315d2db5c..ff06a29709a 100644 --- a/gcc/testsuite/g++.target/aarch64/mvc-symbols3.C +++ b/gcc/testsuite/g++.target/aarch64/mvc-symbols3.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-ifunc "" } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__((target_clones("default", "dotprod", "sve+sve2"))) int foo (); diff --git a/gcc/testsuite/g++.target/aarch64/mvc-symbols4.C b/gcc/testsuite/g++.target/aarch64/mvc-symbols4.C index 9c8a7bd37f2..88b57f8b26b 100644 --- a/gcc/testsuite/g++.target/aarch64/mvc-symbols4.C +++ b/gcc/testsuite/g++.target/aarch64/mvc-symbols4.C @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-ifunc "" } */ /* { dg-options "-O0" } */ -/* { dg-additional-options "-Wno-experimental-fmv-target" } */ + __attribute__((target_clones("default", "dotprod", "sve+sve2"))) int foo (); diff --git a/gcc/testsuite/g++.target/aarch64/mvc-warning1.C b/gcc/testsuite/g++.target/aarch64/mvc-warning1.C deleted file mode 100644 index 59acec3fad2..00000000000 --- a/gcc/testsuite/g++.target/aarch64/mvc-warning1.C +++ /dev/null @@ -1,6 +0,0 @@ -/* { dg-do compile } */ -/* { dg-require-ifunc "" } */ -/* { dg-options "-O0" } */ - -__attribute__((target_clones("default", "sve"))) -int foo () { return 1; }/* { dg-warning "Function Multi Versioning support is experimental, and the behavior is likely to change" } */