From patchwork Mon Feb 3 13:04:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alfie Richards X-Patchwork-Id: 58008 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 6D75E3858023 for ; Mon, 3 Feb 2025 13:05:21 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazlp170130007.outbound.protection.outlook.com [IPv6:2a01:111:f403:c20f::7]) by sourceware.org (Postfix) with ESMTPS id F0F383858C50 for ; Mon, 3 Feb 2025 13:04:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org F0F383858C50 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 F0F383858C50 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c20f::7 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587879; cv=pass; b=sJ+8ZglIkUDNrIkeZT4BzJ3aWtwn13FVtvqtyC7Sen4+1yQsEe15hG7fXP6s7brkFo780UlnG5nz80krA0FleCio1jBRek1dXTsmOL982gubDAGUZ8r2rYEKLykCdJTxtyTjpK4cc6B5gNTODxzTsn23hex54fHQXgs78qZCUK4= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1738587879; c=relaxed/simple; bh=bxC8YIxSH3jNVa4Y+qDKTMhFqUF+7f9jZASZ0udNuxk=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=dpsWXX8IqbIFvC5ogpNyznD5AFpRYdbrY8DUjZNHjaJuODgswKK7WB/+szD+p31DsGCFw3MBDBQ3LL/OfDF1JbC2dZCnqcMvZR0AMts2je7k6nOLECZhiYc3AMwFZORR9aK1oN5EX1Gp7jvi8A4fG0MbaShDhJkNruZ7JNjoTJw= ARC-Authentication-Results: i=3; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org F0F383858C50 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=G4bp4bOU; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=G4bp4bOU ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=FxSOTi1yLty14mE7BT5SXXOxaMhrlpTAIC1KERkC5mHPuv5hTc4e4dX+LTU3XTL9WgpeSaSN4+I1+EYxrOfyVvbjos1VYksmth/cGfXTchcYs8wW/h1RTn6klxzHI1UgumRnqI9hW/n/I80+gl77HrrGcrvWjAaQ5C0yR352Cvr8voANeQsHdKk1Lpof10XC3ee8pPit5xTHXlCvN8YFIvFphLbb/QlwFuiaMgeHx9Vp2bF5XMw4+Jhtj7xhdxgzD9VcOZj+cynJhFr4jh3MVVfwZQKu3nioUsKg5y9eqFN7GxOftjqWHM89dqV+UJEu/p909FJvWxK7ubm7DQMqLw== 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=9YC6kmP01Hxl6P/vLrYf1UEqb6hjXCcuvS6ZsxrjRZY=; b=rSYfXXxCzf585psNorMO7Gy/PtM5SxOi5Gp4YbedVEZUp06pCvCSi9YG+mOTE+wwhDyKci4Yv8fJgBa33V1TrNnSOxuCOt2JrukHMJRnmXjnop5y+c4kQJf5ItMN0e9AgGcHfYYiZVZSAwg+/gy5YjGGFXYBLuSsQ0Hp17b5rmrrzQ2PzrgVgV7EaR5CavTLxF/EukgMNeRB31XyBVo+JcQzGwehPcA6MvxuMTQo4trLN3BsY6qbELiawBDqlPDueORL/Uj4OT25saIzCUolnQfDpHF/KnM6cWcEjAdxAk0ex4xuL00dw8KoeYCMXeH8Bz+SuIB7SyRxfXRMHZkj9g== 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=9YC6kmP01Hxl6P/vLrYf1UEqb6hjXCcuvS6ZsxrjRZY=; b=G4bp4bOUhItySACXInilxpQYkriukP+AEL5Y+ZeuZbTCKMjJ6N8ATZq2qRMFZ3KlK0rrQ7ege5qy78qslXYh0VQlBs7YhE836YGry+ENm5iw+/V52qLplNWR3NSvAH/cRdBuWrqoBkYkolGCwT28WTMFkjY4D0Z/QvinT9hpwJ8= Received: from AS9PR0301CA0007.eurprd03.prod.outlook.com (2603:10a6:20b:468::27) by AS2PR08MB9548.eurprd08.prod.outlook.com (2603:10a6:20b:60b::13) 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:34 +0000 Received: from AMS0EPF0000019F.eurprd05.prod.outlook.com (2603:10a6:20b:468:cafe::65) by AS9PR0301CA0007.outlook.office365.com (2603:10a6:20b:468::27) 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=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 AMS0EPF0000019F.mail.protection.outlook.com (10.167.16.251) 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:34 +0000 Received: ("Tessian outbound f834169b9670:v560"); Mon, 03 Feb 2025 13:04:33 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: edd539dee6ccbdc8 X-TessianGatewayMetadata: to8+vdfm2actWvQZ+Ci9Cor0f9pr0ouFvr9aGm0Pas+U4qet+oBAqRPf8D57HbjkJGHXVg2/AFmz3qLZ6i3Hm+VZ4TOfKNxnLRmxukYYZmOaRm/k92LhEcGCBeNtfD+k5UWXNJC3oKcJr7VjaFhYnr9dvhEJoVGzb5HQC2kvwiE= X-CR-MTA-TID: 64aa7808 Received: from Lc4dcfbefb767.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 9FCC8791-189C-4C52-AF94-3DA44E7AD5E2.1; Mon, 03 Feb 2025 13:04:28 +0000 Received: from DU2PR03CU002.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id Lc4dcfbefb767.2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Mon, 03 Feb 2025 13:04:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KK+aTTVrIOCtffYmagGJs2JD4APZxY+bAQodlDFBW+1066x7JkFWwd+nVMpBIz3EQbstqCDpZqCKmGNJVJwq+dBH5NfnpM2+SUvBUOLMqDmUUoZxfDDi9G/e42A4TwLCU/T1mfOKVc0CxYxJT4Y7c/5tCO17Y/ESREFFw9rAKS3kX62DXY2oufbLyjmjrJG56fXU6MQJusLKhDfF+EGuqJL4oBjjdn+jblM7VzNRg3oXz/oaWJeNzbqwUL/sEBKqbI7lLsRBTamW8anVOi9UhiB/hJvF1qKAvaUJjj7N7RVJhVdf6/CxcdPNnyl4RJghhxXq+mmChTmXZg7jjAYs3g== 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=9YC6kmP01Hxl6P/vLrYf1UEqb6hjXCcuvS6ZsxrjRZY=; b=sjoeVQ4gdFLL9VJYhlHI9AcfRq2aoiZMt9wIxw/22DZBRtYuNKQ529g47X6xTnC63VXYPMoI8Un+qnwmhhNH/N8dx70u3goVGNgnPhe7eIoBg/+kKl6qZskOWw2txHg29cmSDz6GnzOE8/VmbF52RX1T4aBw6VUIMlBN1xRu6bxaucAV2CpQR3btpLZPMx5xLYiVECQbON5JTsXTz0QNPO0D6r48okJcHqtEM8MDOG+jkwwVUhOao+NmKbk+PAMsuz0CNG7vmigRCf10/pRKePfj0xo5+KJ7XXytNpV6frmbSS0pPslA2m5VRvs7M4V+Np4au1pJfQtmoaj59DI8oQ== 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=9YC6kmP01Hxl6P/vLrYf1UEqb6hjXCcuvS6ZsxrjRZY=; b=G4bp4bOUhItySACXInilxpQYkriukP+AEL5Y+ZeuZbTCKMjJ6N8ATZq2qRMFZ3KlK0rrQ7ege5qy78qslXYh0VQlBs7YhE836YGry+ENm5iw+/V52qLplNWR3NSvAH/cRdBuWrqoBkYkolGCwT28WTMFkjY4D0Z/QvinT9hpwJ8= Received: from DUZPR01CA0259.eurprd01.prod.exchangelabs.com (2603:10a6:10:4b9::7) by FRZPR08MB11100.eurprd08.prod.outlook.com (2603:10a6:d10:135::17) 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:26 +0000 Received: from DU2PEPF00028CFC.eurprd03.prod.outlook.com (2603:10a6:10:4b9:cafe::f4) by DUZPR01CA0259.outlook.office365.com (2603:10a6:10:4b9::7) 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:28 +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:25 +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:25 +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:24 +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:23 +0000 From: Alfie Richards To: CC: , , , , , , , Alfie Richards Subject: [RFC][PATCH v1 00/16] FMV refactor and ACLE compliance. Date: Mon, 3 Feb 2025 13:04:04 +0000 Message-ID: <20250203130421.2192732-1-alfie.richards@arm.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DU2PEPF00028CFC:EE_|FRZPR08MB11100:EE_|AMS0EPF0000019F:EE_|AS2PR08MB9548:EE_ X-MS-Office365-Filtering-Correlation-Id: 77c7aa6d-b7a5-4859-2cb8-08dd44534e59 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: lC19soY5/7FJsdPCk+unjLGNYR10T6ghmXIFqnYg7dxEfN538EUyqHewNhxWtCdnZfnkEUS9cJN2Makmcxbjp4tStM7lDdTAVFjdP+V4xcmoQfANRQRMErFHfIP/QgR1cYM9qbksSPbBSTnBA3ILx1Muym6iANF7lVBS3GjaDhvPlNqyvcLxT5+fOjO0dHuhOPhyvLctzETeCBMVqxxYp6BpEwIGyPvOomKld/S5nE6odggsRu6eOzQQrzimGnFMtDrDlWmFUgZkZabMLZp8Texh5+EySNxMo88I3KWUZ2CWluMiieq+7SfC8gKv6sBW3CM2/SMWaxxHZI5GxRC63FI9CLTjMbqAtL+puYkbD28FxymLSceNunsjCZtiYKOLh1O6Ip55ym7qwrlcGGIVQYXA4xnmi633AyPHqHLHPj18TXfOV2slHSBQhD4Y4HmDpI3+zb96oVxo/4/lmKlIy0s2vLrq3LlURY0I/eQ2P8fA7Tbd0NjW/0fDQd4rx9ztl73ypW1rdiGI9c2LErCdi/EOk9ryc2bBSoUDadFLA/c10TsfzNumCV/6CP3dfsHWSqrjweRJaMkPGcPbk0QJRV9b+KZ/lmZ6eiOp82Z89iS+UWDexeL6HugO9h0KdsmDv6tbPoIyZHMGHAL4tGylmgy4IGf5NyUAmpgfiPGsOhWQDM0U37mlGljNBLGtRG6ILzXk0mHrdgyeZCpT9rhgGkHKRvHRko5Br3OvLBTT1XHVuCk6uRvOTlgRrfSdoqA25eSHGjYJTdti2P2O4mrUdae6EjDwMdk7e8YuWU1tjnMiEPuSoM/ITQKJhblOA+p74b84DskfDUEgSP9FPAu1RKf+wFYwPVpK1ofrMWsZl5/Zgm3CEM+2a6/CsCrCWdcfxqgRe4xDLAyd60AbXgiQ1l9JmhtP2ZJ6EqISj0scsfUQKxVCYlXm9vwC6T9GluFNeIeZ3ZPQdjpiXJe8oHe5diPVaSsEntCVbWRi9KdVy83fC0EHJL3oi4k9RFFnQKtFQVFBC3YvO3n5M3KV/RLK1fb5goBb7tL9zPf9jVxn+tQDTd9lcttar3w3z1BJZ/CC78dN9HMUE/K1YSTVZp/IL39fIxY24Qzo/jnoUFZTk97aVuvhQ2tlsYux4tPBbp067sQssVKSKgZ0iN/uLHm51uVxPrSbLuoch+r8z/uY5keAaaqSzPwO4mDP65y4ZxN5dvyJv2Kx940Szy/VPbTjvb/HTRUbyDjycyx20QVxalT44cqDzouhLnzL9jiZtmQQbsH2X1hBs1LldULYXIsL2kzqGu853sWFwUJnf268d33LHIS/UbmGBpfqxYMpcJODLZHJdf31foEBxTeLB/GL8K5efD7h11+1CB8W44KMohKVzVNcsFeVQSlQN8SGOdC+ReYF0V82H2LdQp4sZgxqmNzQ9xdKLMSWqQFzryW6h86/KEz4rQ2CAlAcoxIBPOhWelob+fn9fHFLdvJNd7cRzfq9Dn7RkWOjcFrKp5aLO9E= 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: FRZPR08MB11100 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:10:4b9::7]; domain=DUZPR01CA0259.eurprd01.prod.exchangelabs.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AMS0EPF0000019F.eurprd05.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 1a5dd8af-e7ac-410f-2028-08dd4453494f X-Microsoft-Antispam: BCL:0; ARA:13230040|36860700013|35042699022|376014|82310400026|1800799024|14060799003; X-Microsoft-Antispam-Message-Info: 0fvjZbFLHT5+czDLUQIqL4wNXw9FiXUm6ozUxmRKwUEknhyLSQhKg9ucf7J8tC0oofEs/E7zdy8JLf8lRPtA/jg52uF3mbvbJEeXfA8iyf15MlS6BNWnqN4sUkKH1ay+gZWV8yqGeZ05IxORjauJV9+Q/3qEwKfpml5qkPPfrkHucTwrkG6RbX38E0LM6YdtgveoeeGjUhBA2PTVUswMT0CjW7Cf2F51aS9CUoSfX6eODmtJQMM/BbLh4BCVRL1O/iC7dE9GDCMBaEXiPUOX04j3iL0+dF6i6rXL5TGnt6A6DLLyfAimtJ+kSlQYhuXhFsT/2HMDq1VgqArDslqytKoqTKeZEm2ARMsSoZo0iGxRVefZ6pB/8U3g3MU6K66ZRbobTY84xoC7DeT7jaXOivqXBEVhGhbGEnybuKo+UedyuSnoeuy2Kn1QraLOsZ18U5+ukyXF2jCdlAksLSdgTv2ZHuul/xq9yT2W6A7HYbXGrwg+vwu/y9P4ZFvLkbv1X6C0R38jCW3bDtYg9pLCrvALtP8WoEA5HnvptMaa5NpRDCRL4NKII1/hAkCiWrYNsnMbk2rvFkTo1SDz9UOEzoc+gubkg1KtUU0H6e2bWoWJ4mfVX+1BmRMjTebvH1DufWKyGH7Hfle5glRspK7d08lTT6FDLwvLJzYT0Hi16rRUDJ9E5AVj9bCvn94ZIMCP6JRSNSRZqfD86+co1AhFuIsS7d3TsaJSM0ulAAzPR7OV7jzpkVb49OKaNrREh9oCb6fk9cQEQV4dcwbI7pH0lJ037EWzHw1ygEC8JiJdBP8havEVx+we+6Zxc8CZvF5v1cOrnCLqdEwRrM/y4/k0QEJezV+Fn7EHl/yVnKP+n2MDXHdjUxGtlv8+5kcak0EM/T1B3+G3jwSTeO+Gc23nrQ1w6hDzqgMwmom5FgY1kPDKe6v1qe+F8/PUMluKkYo6EZK9nnlBMsN9Ky6bFKT6whVbb3PlM/fvpTV410S4WtYRSi6YKmf42oHnMQkaxQX9jox+eaoMiP8RYkaM3T/mH+X9ee09gcIW1ZVVrk9d2ji8dSWCAvWPqR46yUhPPHd0SC+5U/mrH4J1ozjGpaspPc69y1kTzUFlyENI4iSPAO46DgFoyWFb2jR2d/HoR20AWP8LAyeYfXfV2LnTmON6KOUQxXuYW473QWDQ1bwE4JwvlCx3tTQdGIYcto2sUunDhz5dyuHEF8xXzmY0yzMBWXWJd/9yUj+Yde3dafPcKOkisE0DT81Y0RpfIPlX0vkaGao++EoaeiW9EgqWLEMYDuHLtor6Dtj7d6Jowy5Og5iZbMjfo5xMQ1oAejYMSWAGl6+vBOrNqddAdBvC+MYyhRSHFaj3rlzcuFiEq4Ou4jbgrQscjWyI+f/QIrxl7I2jUsoA58+IPVNE1RSvNzjD0cJy/IDH8Qc4d1Ii6EDNBPFdN2d7KbB+CdjbZlgsnAqS8uYnRUOvHsdLlTxEyVhpXNy6R3hDjDHzGTAwbU4ap1w= 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)(35042699022)(376014)(82310400026)(1800799024)(14060799003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Feb 2025 13:04:34.2201 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 77c7aa6d-b7a5-4859-2cb8-08dd44534e59 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: AMS0EPF0000019F.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9548 X-Spam-Status: No, score=-5.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, 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 Hello, This patch series intends to changes the behavior of targets with TARGET_HAS_FMV_TARGET_ATTRIBUTE set to false (ie. uses target_version attributes for FMV as opposed to target attributes) to follow the behavior specified in the Arm C Language Extension. There is significant refactoring to FMV in the process. Notable changes include: * Introduction of the string_slice class. * Refactoring FMV mangling to always use the existing hook. * Changing the x86 mangling of dispatched symbols. * Adding new members to cgraph_function_version_info and cgraph_node. * Specifically, adding cgraph logic earlier in the C and C++ front ends than it was previously. * Changing the cgraph_function_version_info to be implicitly ordered. * Changing resolver creation for target_version to reuse the target_clones logic. * Only creating the resolver (in target_version semantics) when the default version is implemented. * Changing C++ symbol resolution for target_version semantics to only resolve default versions. * ie. changing the scope and signature of the FMV function set to be determined by default versions. I would appreciate overall feedback on these changes, and specific thoughts on the behavioral changes it makes to riscv FMV (as it also uses target_version semantics) and to the mangling change for x86 (see test changes for both) from relevant maintainers. These changes are targeting GCC 16 stage 1. Regression tested and bootstrapped for aarch64-none-linux-gnu and x86_64-unknown-linux-gnu. Cross compiled and the FMV tests ran for riscv and powerpc. Kind regards, Alfie Richards Alfie Richards (16): Add PowerPC FMV symbol tests. Add x86 FMV symbol tests Add string_slice class. Remove unnecessary `record` argument from maybe_version_functions. Update is_function_default_version to work with target_version. Change function versions to be implicitly ordered. Add version of make_attribute supporting string_slice. Add get_clone_versions function. Add assembler_name to cgraph_function_version_info. Add dispatcher_resolver_function and is_target_clone to cgraph_node. Add clone_identifier function. Refactor FMV name mangling. Remove unused target_clone parsing code. Change target_version semantics to follow ACLE specification. Support mixing of target_clones and target_version for aarch64. Remove FMV beta warning. gcc/attribs.cc | 79 ++++-- gcc/attribs.h | 1 + gcc/c-family/c-attribs.cc | 4 +- gcc/c/c-decl.cc | 20 ++ gcc/cgraph.cc | 49 +++- gcc/cgraph.h | 31 ++- gcc/cgraphclones.cc | 16 +- gcc/cgraphunit.cc | 9 + gcc/config/aarch64/aarch64.cc | 233 ++++++++---------- gcc/config/i386/i386-features.cc | 123 +++++---- gcc/config/riscv/riscv.cc | 136 ++++------ gcc/config/rs6000/rs6000.cc | 139 ++++++++--- gcc/cp/call.cc | 8 + gcc/cp/class.cc | 13 +- gcc/cp/cp-gimplify.cc | 6 +- gcc/cp/cp-tree.h | 2 +- gcc/cp/decl.cc | 80 +++++- gcc/cp/typeck.cc | 8 + gcc/ipa.cc | 11 + gcc/multiple_target.cc | 220 ++++++----------- gcc/testsuite/g++.target/aarch64/mv-1.C | 6 +- .../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 + gcc/testsuite/g++.target/aarch64/mv-pragma.C | 2 +- .../g++.target/aarch64/mv-symbols1.C | 2 +- .../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 | 14 +- .../g++.target/aarch64/mv-symbols3.C | 8 +- .../g++.target/aarch64/mv-symbols4.C | 8 +- .../g++.target/aarch64/mv-symbols5.C | 8 +- .../g++.target/aarch64/mv-symbols6.C | 23 ++ .../g++.target/aarch64/mv-symbols8.C | 48 ++++ .../g++.target/aarch64/mv-symbols9.C | 46 ++++ .../g++.target/aarch64/mv-warning1.C | 9 - .../g++.target/aarch64/mvc-symbols1.C | 2 +- .../g++.target/aarch64/mvc-symbols2.C | 2 +- .../g++.target/aarch64/mvc-symbols3.C | 14 +- .../g++.target/aarch64/mvc-symbols4.C | 2 +- .../g++.target/aarch64/mvc-warning1.C | 6 - 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 ++ .../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 +++ 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 +- gcc/tree.cc | 52 ++-- gcc/tree.h | 6 +- gcc/vec.cc | 157 ++++++++++++ gcc/vec.h | 38 +++ 74 files changed, 2007 insertions(+), 590 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 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 delete mode 100644 gcc/testsuite/g++.target/aarch64/mv-warning1.C delete mode 100644 gcc/testsuite/g++.target/aarch64/mvc-warning1.C 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 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