| Message ID | 20250917124456.170437-1-alfie.richards@arm.com |
|---|---|
| Headers |
Return-Path: <gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org> 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 79E6A385701C for <patchwork@sourceware.org>; Wed, 17 Sep 2025 12:47:58 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 79E6A385701C 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=jk457h1t; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=jk457h1t X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazlp170130006.outbound.protection.outlook.com [IPv6:2a01:111:f403:c201::6]) by sourceware.org (Postfix) with ESMTPS id DBCB0385843A for <gcc-patches@gcc.gnu.org>; Wed, 17 Sep 2025 12:45:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DBCB0385843A 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 DBCB0385843A Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c201::6 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1758113139; cv=pass; b=gaD4Qh21BFBnasAQS0MMrrL7cUz1+7rMk8arz9EYpl0IYofY6wg4m3CKgMPTshQL/YZCWLxTNK5Qi9KzqtB+OJmr4oPTSK+6YDEY5roxmJm01m7RONeRuPGlW4d5EeTia1f73MuWeVkygeYuCXOc61X0+tOuHk0+InJl7Vgn7vg= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1758113139; c=relaxed/simple; bh=0zPl2H/eAiDx4usnK+jg2vQLVnuAc82zs9/OQo05BNw=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=W5XmjTHWPZK8flWvp/Cn5mwyiEEKHjFYJmCLA0vcDZk4BOnkgCi2G+h82c4F0zVJqs9YEMBZNpOOh8dNoGQSym6yoRmkYFB/+MnXCkkHU94e+bRmll8njeRcUDrtBsiDrA//ReL45ICiduVHXVSs34sHgfG7RtqUL3xyN6kMakc= ARC-Authentication-Results: i=3; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DBCB0385843A ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=LptV4Le+n5YNHXNpLXggIZHcDbmLswWaixIX+s6qA6hobfHm2qWnTvD/lkMPResbDc9TojTw1/SnAI39PPmA/hwGMPHORV6N+kk4eiZ4zzEZ3SWkk2/xl5sKvySQALsocC0Ul0khTU5LBoMKv97ctCK5fDuDieCG58hJ3Zpttn7cP1ToGwH4Qm11jRBGb/e/yNVS7Ru9CQhNyF+Mh9IrfIaXrN5T9DE1Oddjc5B04+CxuQ11iSYbL6cZA8mmDcdXLJVdW+inofgLvZbtAaNcCnedqlChLCMWNX0ZcuTpUVciWGoqCgq44rih3UnbWciCo/mgJzizOZGwJwfcfUTQUQ== 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=zGOSPeN4JWtjt7a40KlGtgxBucujXYJsjc5hZfZz6OM=; b=SvhdFb8wmGzDnPxOlhqQwYinx9kqQM27O4koBB49SAjMx6eSWYIxG788UaEBpNiOx9ZiMYsTb3Cav+a87Y7hELBnaJ0gX1DaOtCizN2P0anskZitQM8IvCd4ZazOAzDxnnc/RGcRaminPQmYQLMpTcDLGtqWmxRiSYLIirgbwGGjVV6fwNxSS+k37ZJNnVCpZB7qID52gId5Ff9wIn7ZtajVFhbXIS181MLiWdhPzMhLWkJtfVIAI646H4vI/OaQmxHEuB6R7d8Ct8SpS4JuYu8s7FQSR+Feula6tuh7sgAUkI5DYVtp71fn46e2VFIJ+GoMS+L5Jz54pZgqPZtL+A== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) 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=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com]) 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=zGOSPeN4JWtjt7a40KlGtgxBucujXYJsjc5hZfZz6OM=; b=jk457h1tQzPmoR+8wcq129Ucf4kgZZ2LKmdmadCs1etUvYqiE5Vmg1GqPkhY6aTEok6L5wlvG/77+hUT1CQ553GyST3qttRFgbx79D0+GW20SIIFKycaavizSt9jZZ9I0HQzscUmvS+gJe3SoU3AMPnM46XZ4nSxnB+31kYekSo= Received: from DUZPR01CA0089.eurprd01.prod.exchangelabs.com (2603:10a6:10:46a::12) by AS8PR08MB6021.eurprd08.prod.outlook.com (2603:10a6:20b:23c::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.23; Wed, 17 Sep 2025 12:45:35 +0000 Received: from DB1PEPF000509E3.eurprd03.prod.outlook.com (2603:10a6:10:46a:cafe::c9) 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.9137.13 via Frontend Transport; Wed, 17 Sep 2025 12:45:40 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129) 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 4.158.2.129 as permitted sender) receiver=protection.outlook.com; client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by DB1PEPF000509E3.mail.protection.outlook.com (10.167.242.53) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9137.12 via Frontend Transport; Wed, 17 Sep 2025 12:45:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=tmMI6MyCVlD5bBcoatGllDQExwmE6NJtLHBHB1Ny5srVAPLZDgeP9bRz55gTAmkzqjQduupUnJXguqHtBWBBLGrQkT9uLRtrbAGZanZ20RAIJB9tIzc/N5CObxTbu85roRKHUh5o2fKtcP8zQ1ym9DsRhLCl9wn6SDmrMpYsQOauwCrknWcliMP4wZNTYcuAFqZWNDD221vm6KhKPYUsWEqU45F5igWMDsGM4ui/nRWz9H6iDxXgaTOqcQg3foUGovYbiX2WtKdxkYQT9jrTZdmC0CvaHjBkuxrhf7mjnBTUQ+aRE5xw4TlUFsh07g23R6pe0fG6SryG+YeTk/mdRg== 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=zGOSPeN4JWtjt7a40KlGtgxBucujXYJsjc5hZfZz6OM=; b=TtNgQjVKBkJ9CDYkANBqLdxXmFsqJv+habZpHAU1+2U+L7LjMiDxfJtzr/0Aa4PqXU0be32RWj1AnYr/ZC67MgokNUzczU47LjoLLUQSag+ygIV+jZpB3f3kS9MGRNCceChi3KSrkFhgYeh5tzhK27Ob2oV4QTFOqRgmSqXUQSYvD48xOuMPYillA0vTe0aNiUIQbhzFI/uPD9yUvoq1kdXKlnc8vMCdS0UcvAt552zK1XP0cwUJt19HUS5lr/vF4PGmaHvQVOmKR4sAS4s7/VxjSQ8NHXrzXZJdrkI6OOor4kTqvDMWFIH0dxuAst8umXOeXBezI2J86cj37vUAgg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 172.205.89.229) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (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=zGOSPeN4JWtjt7a40KlGtgxBucujXYJsjc5hZfZz6OM=; b=jk457h1tQzPmoR+8wcq129Ucf4kgZZ2LKmdmadCs1etUvYqiE5Vmg1GqPkhY6aTEok6L5wlvG/77+hUT1CQ553GyST3qttRFgbx79D0+GW20SIIFKycaavizSt9jZZ9I0HQzscUmvS+gJe3SoU3AMPnM46XZ4nSxnB+31kYekSo= Received: from AS9PR01CA0047.eurprd01.prod.exchangelabs.com (2603:10a6:20b:542::28) by AS8PR08MB6565.eurprd08.prod.outlook.com (2603:10a6:20b:33c::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.13; Wed, 17 Sep 2025 12:44:58 +0000 Received: from AM3PEPF0000A797.eurprd04.prod.outlook.com (2603:10a6:20b:542:cafe::94) by AS9PR01CA0047.outlook.office365.com (2603:10a6:20b:542::28) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9137.13 via Frontend Transport; Wed, 17 Sep 2025 12:45:11 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (172.205.89.229) by AM3PEPF0000A797.mail.protection.outlook.com (10.167.16.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.9137.12 via Frontend Transport; Wed, 17 Sep 2025 12:44:58 +0000 Received: from AZ-NEU-EX05.Arm.com (10.240.25.133) 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; Wed, 17 Sep 2025 12:44:57 +0000 Received: from ip-10-248-139-135.eu-west-1.compute.internal (10.248.139.135) by mail.arm.com (10.240.25.133) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Wed, 17 Sep 2025 12:44:57 +0000 From: <alfie.richards@arm.com> To: <gcc-patches@gcc.gnu.org>, <jason@redhat.com> CC: <rdsandiford@googlemail.com>, <jeffreyalaw@gmail.com>, <rearnsha@arm.com>, <josmyers@redhat.com>, <nathan@acm.org>, <hubicka@ucw.cz>, <ubizjak@gmail.com>, <kito.cheng@gmail.com>, <palmer@dabbelt.com>, <andrew@sifive.com>, <jim.wilson.gcc@gmail.com>, <segher@kernel.crashing.org>, <alice.carlotti@arm.com>, Alfie Richards <alfie.richards@arm.com> Subject: [PATCH v11 00/13] c: c++: FMV refactor, C FMV support and ACLE compliance Date: Wed, 17 Sep 2025 12:44:52 +0000 Message-ID: <20250917124456.170437-1-alfie.richards@arm.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: AM3PEPF0000A797:EE_|AS8PR08MB6565:EE_|DB1PEPF000509E3:EE_|AS8PR08MB6021:EE_ X-MS-Office365-Filtering-Correlation-Id: 920bf271-0d5f-448b-78c6-08ddf5e8171c 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|7416014|82310400026|36860700013; X-Microsoft-Antispam-Message-Info-Original: =?utf-8?q?Wkyp8lukO40oAZKIq7iamx?= =?utf-8?q?T9yPxjQpZraAHFNtOzmSHzAiqxSwtvR+vEQLOdYaI/CBL4jmEJRqArZ/iG+Vg06ME?= =?utf-8?q?q/Bcj3aBIgB7nmPJBUhJFn61QTym26fpO23f2BEkZOZiSxgxXdeHc61OscjYw7qbJ?= =?utf-8?q?pjhGzjWEEiQSbr34Y3L8ER4tZnSSlzOxJMcyZvuGeOXa7v17V9dwyGWrKq2iFen4P?= =?utf-8?q?KxWSwCN3BvrdPM7DS5pvq+junJnMcTlPjg+1oggo7LgdP0JA/NDstpRjYKIiCA7K7?= =?utf-8?q?ctVKyMvjyl9JaNE/fF+JhM68iQCp02hFqvSkcpu0xSqSMXJQ6bbJY1gYuqvNIOefD?= =?utf-8?q?Q972THgn+T+7bSso9A5/tALrXVjuz9YUhH6VOm3WJ67KghYLW4s6JClZ194l6Npud?= =?utf-8?q?yo+QnLV91Y4GXee7txBpVKOXEgSP4c+Yg8wMVvagnRVz1v+xzYAEUhMMdgyfv/D3N?= =?utf-8?q?xUqZO1SW3zLBV2imLUC+DkvLbKPPvrsjMGHqo5uBHYf8JzmYuwdYP1/EsNLpp9H5l?= =?utf-8?q?60lW6Zx4XcB8ajb2kIRV7dYc6r6kduYiZ2UaeU3Cpylw0+iJNjqaRnkd8WmuUoPQP?= =?utf-8?q?Ov4ohz62b/ebXYAgI8toRZP8cZ8iQxVxGsZkfLrT7u86pfiHjQelWEJwuBTCvMMWH?= =?utf-8?q?jdXm2mP1+77yA4o12jSXIgTJTWbJ6A1wKXaVndVqvSndfGCzNpY+3NB/WzCAnOe/Z?= =?utf-8?q?jhTrPFVYxN88Qq+Ypaw2DIWj3s20alH17PqnfAUmAaTy7fnAar1FVOCE7uAsrM+9b?= =?utf-8?q?tlq8WGX4cNU+TNjrwpxlQk5+bVL/6EMb2oTeBKJiLprVRbzGP54jSi6MRp2lvB/xg?= =?utf-8?q?hpxMWIj8/9nqBu7txY1SzG3c7hlYMowIDo1oszqetwuZGA6CqaBoNhVAfB3REQOS3?= =?utf-8?q?KtdY6wfV22d29c8V38XKDa9XMhsIUTZ9E/aXLY0wNR4JaV7eSEPKa52ualIqy7B+w?= =?utf-8?q?5IZKGV8WuqBKiyHXonIi8z7SNTxLz/tE446pEqsPaQm3dS55E1I4kywML9Bjr0PNV?= =?utf-8?q?owncJEX5d9m53gxdM1llzRvKJIdrR+kq8FTp0Mbr9ELVsrb1VivOBBgqjuhnjMnsB?= =?utf-8?q?2TREH7aL94O8+gIpouNzj2vp/iypUScqheBZN2ttx4wz3Ac7HL93pgS5SttpBLQvA?= =?utf-8?q?CECBrPsXecpg8ihP/y7sZYPsNuxXT37P5s1x54KcVguQQrKtrycgHSdrE2Q3ewSUk?= =?utf-8?q?XWzUQXCzZcdjxK4d7vheIorydR/HiW+Za1Jw2yYvf2UgCx0vUXV0/qFgna+2dxciS?= =?utf-8?q?OobbTpRwLl5Bj3CFCEdFwQotw0hTO1pda3zfl5K0hz0iycH3vUYhRujc+oQ9oARZh?= =?utf-8?q?//6QzWqNhAebvMrTKaBgHkovlObn+ne+C0MywRzYQuXVZ5/Bry6zLsedn8SsMnDv8?= =?utf-8?q?1FMwFqjcWIiStSNL8VsVWUmslBYI2RdOous14xJNidXxxdq8+fMX7FJQq5sbU9ww4?= =?utf-8?q?7WZlw4w8nH2SYrTh6501i1xtd7Az4SzvgCJ/l01Jw=3D=3D?= 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)(7416014)(82310400026)(36860700013); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6565 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB1PEPF000509E3.eurprd03.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 72576494-d92c-44e4-c09c-08ddf5e802e9 X-Microsoft-Antispam: BCL:0; ARA:13230040|36860700013|7416014|376014|1800799024|35042699022|14060799003|82310400026; X-Microsoft-Antispam-Message-Info: =?utf-8?q?kOCYduNmoGvAMBiCHZWF82o7UMWRHTu?= =?utf-8?q?cAX2Np9IPLRvwyhwmxo8IC1fWL+KdNUZTyV948hm1xOGfV7oP3n7yIjOoWfXKVnfd?= =?utf-8?q?P8nrvYrh6EcJXESRee5V03Vm2X+NIYVmA5xChRE2OE5OmbkHwqn9xOP0ik1GQLlRs?= =?utf-8?q?7d5zOUFP/b3SYBnhjPg/GCEs40FTqUAXI7e41eLtQowPJjoMvBF0rE8BT7qv+K4sX?= =?utf-8?q?9Rg18I0L4IJKk78/MLYoDfBE90orefG8iae9HtYlnXswvMLydv1a3JqLwCVRzWcOg?= =?utf-8?q?vH/wcAsz2xvom40/d1dbPlzG+jMhEkBiAULl4LHjnEWnTJIY1nSJBjZ20jXiRzxl3?= =?utf-8?q?aB7jhvmHTzO8ri0DcWV4sR2jeK2tkIMsFNqyefDTbOtFd5szTjqCreqoVDsHFc3Ep?= =?utf-8?q?wEyFxmjihoAnu8bA3pdxnKVc7dBaHuHYmkAWq9+Yg2uY1fJlQXWlfsoKlRUTEmF5K?= =?utf-8?q?Fcc6sVqHL1LIczBrkfLHAwkMNRuE+eOGLof2HQJHNDEcTwYl9kf5R7gXgvZjxkbv7?= =?utf-8?q?vix/3vBx976TyZQqpqqRwLFL9iLumO5vNJc5m6nM84ceeawL1TLnF6JmPGBJ+eqjG?= =?utf-8?q?t8Cs7NDR88HwTFbIjR1/COhOiRBpS56ru+2BhphqXSVTinY2I9Wet49jspk9LyJgh?= =?utf-8?q?ntVT8DYKelVqbpGSq0o2ByxlCvhpj5HFOrS6GNipRAYgfmkgSB5f5Ys8o5ZJj3KLK?= =?utf-8?q?7v9IyRa6XJa27Ku1E390lcwJ2U7+LoBwZIZ/Aez1zNnnJTbivNos6mJ2mdydj5Lex?= =?utf-8?q?lTVGXG6TwPFTYhzdu0wEQeXlg+0g9jGVI4J968kcb9XXwdtJxgPjEaEz+a1YIW1rj?= =?utf-8?q?hh+5CuSZ/ircOmyUijI3FfNCpv6mKog8+RBWzR7/FznHbKjwUaGaC3WyncQB4n+kr?= =?utf-8?q?fwOMd+Y9C+i3cM++d4LMYsy+92hRFWkmQj8NZRwYqqHvt3OhCadsKMtB3E6x/s7rm?= =?utf-8?q?hZeJUFDUF8JWVrZRcgtcyuhqgPEfGGJKyHFtiXMqLOsB6dJnGuS6vWkzeTjahVK3P?= =?utf-8?q?E436dlcfEDrPxyY96uqqbTpneSgNRQFdj51FWUjVyw36hzRmj1ryDVKf39lLJU6Ft?= =?utf-8?q?Dsnu+Di5c0b0XCW+mD/wKtjsoN2XmVwjn66wnrKe1PQirdwDb11AmG7LknYhqIhfd?= =?utf-8?q?8imu4XJD9Cwjn0z0n8ibLZt7u7yFMuAeJ92Uc6mudIZ37Ie8Ae+9hTHU0sTJdFZv2?= =?utf-8?q?NCx5Muuo11m2v66iwaH4hzUqm+I/k7gukX9UP+5kSmBu6sZvwGLqXFF7azP8as0N5?= =?utf-8?q?weAX1Pv5SSoyW16a1HgqXL1VRK8VuoIXuAFhge9ervF8L60uJ3NHhOkHGcgq/fKfk?= =?utf-8?q?6m5dBeirfNHNEAbU8kbCK9SK6sS7qQT02mdKvF78Z3AiSP8ztCvAOIN5/Q5G/eSFo?= =?utf-8?q?VEChJW2ITDRoN9HWfU9QMYxH1+bgV9WF0mRdlhQO0qo5M9o9SMFkgPnm+lHdkDDHV?= =?utf-8?q?aQuSJEgAl5a9U29NCxlSq3/rFbWvL8WQ=3D=3D?= X-Forefront-Antispam-Report: CIP:4.158.2.129; CTRY:GB; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:outbound-uk1.az.dlp.m.darktrace.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(36860700013)(7416014)(376014)(1800799024)(35042699022)(14060799003)(82310400026); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 12:45:32.4353 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 920bf271-0d5f-448b-78c6-08ddf5e8171c X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[4.158.2.129]; Helo=[outbound-uk1.az.dlp.m.darktrace.com] X-MS-Exchange-CrossTenant-AuthSource: DB1PEPF000509E3.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6021 X-Spam-Status: No, score=-5.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, KAM_SHORT, SPF_HELO_PASS, SPF_NONE, TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list <gcc-patches.gcc.gnu.org> List-Unsubscribe: <https://gcc.gnu.org/mailman/options/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe> List-Archive: <https://gcc.gnu.org/pipermail/gcc-patches/> List-Post: <mailto:gcc-patches@gcc.gnu.org> List-Help: <mailto:gcc-patches-request@gcc.gnu.org?subject=help> List-Subscribe: <https://gcc.gnu.org/mailman/listinfo/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe> Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org |
| Series |
c: c++: FMV refactor, C FMV support and ACLE compliance
|
|
Message
Alfie Richards
Sept. 17, 2025, 12:44 p.m. UTC
From: Alfie Richards <alfie.richards@arm.com>
Hi all,
I am only resubmitting the relevant patches here to reduce noise.
Changes since V10:
- Addressed Josephs feedback on C patch.
- Removed 2 lines of nonsense from patch 2 noticed by Richard E.
- Addressed Jasons feedback on C++ patches.
Reviews needed:
- 02/13 x86: fmv: Refactor FMV name mangling.
Only the x86 changes need review.
- 07/13 c++: Refactor FMV frontend conflict and merging logic and hooks.
Only the hooks and shared code (C++ and all other parts approved)
- 11/13 c: Add target_version attribute support.
All needs review.
Patch Statuses
==============
Alfie Richards (13):
cgraph: Add clone_identifier function.
Approved (https://gcc.gnu.org/pipermail/gcc-patches/2025-August/692100.html)
x86: fmv: Refactor FMV name mangling.
Approved except x86 changes.
(https://gcc.gnu.org/pipermail/gcc-patches/2025-August/692101.html,
https://gcc.gnu.org/pipermail/gcc-patches/2025-August/693121.html,
https://gcc.gnu.org/pipermail/gcc-patches/2025-September/694610.html)
riscv: Refactor riscv target parsing to take string_slice.
Approved (https://gcc.gnu.org/pipermail/gcc-patches/2025-June/687986.html)
fmv: c++: Add check_target_clone hook for filtering target_clone versions.
Approved (https://gcc.gnu.org/pipermail/gcc-patches/2025-August/692680.html)
fmv: Change target_version semantics to follow ACLE specification.
Approved (https://gcc.gnu.org/pipermail/gcc-patches/2025-August/693122.html)
c: c++: Add target_[version/clones] to decl diagnostics formatting.
Approved.
(https://gcc.gnu.org/pipermail/gcc-patches/2025-June/687988.html,
https://gcc.gnu.org/pipermail/gcc-patches/2025-August/693550.html)
c++: Refactor FMV frontend conflict and merging logic and hooks.
Approved except for hooks changes.
(https://gcc.gnu.org/pipermail/gcc-patches/2025-August/693551.html)
fmv: Support mixing of target_clones and target_version.
Approved (https://gcc.gnu.org/pipermail/gcc-patches/2025-August/691401.html)
aarch64: testsuite: Add diagnostic tests for Aarch64 FMV.
Approved (https://gcc.gnu.org/pipermail/gcc-patches/2025-July/690688.html)
aarch64: Remove FMV beta warning.
Approved (https://gcc.gnu.org/pipermail/gcc-patches/2025-July/690689.html)
c: Add target_version attribute support.
Needs review.
c: aarch64: Add FMV diagnostic tests.
Approved (https://gcc.gnu.org/pipermail/gcc-patches/2025-July/690690.html)
fmv: Redirect to specific target
Approved (https://gcc.gnu.org/pipermail/gcc-patches/2025-August/692682.html)
Change log
==========
V11:
- Removed some nonsense lines from x86 code (no functional change)
- Addressed Josephs feedback for C change
V10: https://gcc.gnu.org/pipermail/gcc-patches/2025-August/693526.html
- FMV Frontend functions and hooks cleanup/renaming
- Changed C++ diagnostics formatting
V9: https://gcc.gnu.org/pipermail/gcc-patches/2025-August/692840.html
- Addressed nits and feedback
- Fixed login in redirect_to_specific_clone
V8: (can't find link on pipermail?)
- Addressed nits and feedback
- Changed clone_identifier function.
- Shuffled some changes and code paths to where they are actually relevant.
- Changed the a_implies_b hook quite substantially.
V7: https://gcc.gnu.org/pipermail/gcc-patches/2025-July/690784.html
- Removed committed patches and rebased
- Addressed Jasons formatting comments
V6: https://gcc.gnu.org/pipermail/gcc-patches/2025-June/686662.html
- Merged "Add assembler_name to cgraph_function_version_info" and
"fmv: Refactor FMV name mangling" patches into one.
- Removed committed patches.
V5: https://gcc.gnu.org/pipermail/gcc-patches/2025-May/685058.html
- Merged patch series with C support series, and FMV call inlining optimization
- Addressed Jason's feedback and simplified the diagnostics for FMV.
V4: https://gcc.gnu.org/pipermail/gcc-patches/2025-April/681047.html
- Changed version_info structure to be sorted by priority
- Split the target_clones pass into early/late stages
- Split out fix for PR c++/119498
V3: https://gcc.gnu.org/pipermail/gcc-patches/2025-March/679488.html
- Added reject target_clones version logic and hook
- Added pretty print for string_slice
- Refactored merging and conflict logic in front end
- Improved diagnostics
V2: https://gcc.gnu.org/pipermail/gcc-patches/2025-February/675960.html
- Changed recording of assembly name to be done in version into initialisation
- Changed behaviour for a lone default decl
V1: https://gcc.gnu.org/pipermail/gcc-patches/2025-February/674973.html
- Initial
Bootstrapped and reg tested on Aarch64 and x86.
Still hoping for GCC 16 for this, we're keen to get this synced with LLVM
before we start pushing it for users.
Ideally before cauldron as well as it makes my slides better :)
Kind regards,
Alfie
gcc/attribs.cc | 142 ++---
gcc/attribs.h | 2 +-
gcc/c-family/c-attribs.cc | 32 +-
gcc/c-family/c-pretty-print.cc | 77 ++-
gcc/c-family/c-pretty-print.h | 8 +
gcc/c/c-decl.cc | 112 ++++
gcc/c/c-objc-common.cc | 6 +
gcc/cgraph.cc | 5 +-
gcc/cgraph.h | 24 +-
gcc/cgraphclones.cc | 58 +-
gcc/cgraphunit.cc | 9 +
gcc/config/aarch64/aarch64.cc | 325 ++++++-----
gcc/config/aarch64/aarch64.opt | 2 +-
gcc/config/i386/i386-features.cc | 74 +--
gcc/config/i386/i386.cc | 3 -
gcc/config/riscv/riscv-protos.h | 2 +
gcc/config/riscv/riscv-target-attr.cc | 25 +-
gcc/config/riscv/riscv.cc | 237 ++++----
gcc/config/rs6000/rs6000.cc | 85 ++-
gcc/cp/call.cc | 10 +
gcc/cp/class.cc | 16 +-
gcc/cp/cp-gimplify.cc | 11 +-
gcc/cp/cxx-pretty-print.h | 5 +
gcc/cp/decl.cc | 29 +-
gcc/cp/decl2.cc | 2 +-
gcc/cp/error.cc | 8 +
gcc/cp/typeck.cc | 10 +
gcc/doc/invoke.texi | 5 +-
gcc/doc/tm.texi | 37 +-
gcc/doc/tm.texi.in | 6 +-
gcc/hooks.cc | 15 +
gcc/hooks.h | 4 +
gcc/ipa.cc | 11 +
gcc/multiple_target.cc | 546 ++++++++++--------
gcc/passes.def | 3 +-
gcc/target.def | 56 +-
.../g++.target/aarch64/fmv-selection1.C | 40 ++
.../g++.target/aarch64/fmv-selection2.C | 40 ++
.../g++.target/aarch64/fmv-selection3.C | 25 +
.../g++.target/aarch64/fmv-selection4.C | 30 +
.../g++.target/aarch64/fmv-selection5.C | 28 +
.../g++.target/aarch64/fmv-selection6.C | 27 +
.../g++.target/aarch64/fmv-selection7.C | 65 +++
gcc/testsuite/g++.target/aarch64/mv-1.C | 5 +-
.../g++.target/aarch64/mv-and-mvc-error1.C | 9 +
.../g++.target/aarch64/mv-and-mvc-error2.C | 9 +
.../g++.target/aarch64/mv-and-mvc-error3.C | 8 +
.../g++.target/aarch64/mv-and-mvc1.C | 37 ++
.../g++.target/aarch64/mv-and-mvc2.C | 28 +
.../g++.target/aarch64/mv-and-mvc3.C | 40 ++
.../g++.target/aarch64/mv-and-mvc4.C | 37 ++
gcc/testsuite/g++.target/aarch64/mv-error1.C | 18 +
gcc/testsuite/g++.target/aarch64/mv-error2.C | 9 +
gcc/testsuite/g++.target/aarch64/mv-error3.C | 12 +
gcc/testsuite/g++.target/aarch64/mv-error4.C | 9 +
gcc/testsuite/g++.target/aarch64/mv-error5.C | 8 +
gcc/testsuite/g++.target/aarch64/mv-error6.C | 20 +
gcc/testsuite/g++.target/aarch64/mv-error7.C | 11 +
gcc/testsuite/g++.target/aarch64/mv-error8.C | 12 +
gcc/testsuite/g++.target/aarch64/mv-pragma.C | 1 -
.../g++.target/aarch64/mv-symbols1.C | 1 -
.../g++.target/aarch64/mv-symbols10.C | 26 +
.../g++.target/aarch64/mv-symbols11.C | 29 +
.../g++.target/aarch64/mv-symbols12.C | 27 +
.../g++.target/aarch64/mv-symbols13.C | 27 +
.../g++.target/aarch64/mv-symbols2.C | 13 +-
.../g++.target/aarch64/mv-symbols3.C | 7 +-
.../g++.target/aarch64/mv-symbols4.C | 7 +-
.../g++.target/aarch64/mv-symbols5.C | 7 +-
.../g++.target/aarch64/mv-symbols6.C | 20 +
.../g++.target/aarch64/mv-symbols7.C | 47 ++
.../g++.target/aarch64/mv-symbols8.C | 45 ++
.../g++.target/aarch64/mv-symbols9.C | 42 ++
.../g++.target/aarch64/mv-warning1.C | 9 -
gcc/testsuite/g++.target/aarch64/mvc-error1.C | 9 +
gcc/testsuite/g++.target/aarch64/mvc-error2.C | 9 +
.../g++.target/aarch64/mvc-symbols1.C | 1 -
.../g++.target/aarch64/mvc-symbols2.C | 1 -
.../g++.target/aarch64/mvc-symbols3.C | 13 +-
.../g++.target/aarch64/mvc-symbols4.C | 1 -
.../g++.target/aarch64/mvc-warning1.C | 11 +-
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 +-
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/testsuite/gcc.target/aarch64/mv-1.c | 43 ++
.../gcc.target/aarch64/mv-and-mvc-error1.c | 9 +
.../gcc.target/aarch64/mv-and-mvc-error2.c | 9 +
.../gcc.target/aarch64/mv-and-mvc-error3.c | 8 +
.../gcc.target/aarch64/mv-and-mvc1.c | 37 ++
.../gcc.target/aarch64/mv-and-mvc2.c | 28 +
.../gcc.target/aarch64/mv-and-mvc3.c | 40 ++
.../gcc.target/aarch64/mv-and-mvc4.c | 37 ++
gcc/testsuite/gcc.target/aarch64/mv-error1.c | 18 +
gcc/testsuite/gcc.target/aarch64/mv-error10.c | 13 +
gcc/testsuite/gcc.target/aarch64/mv-error2.c | 9 +
gcc/testsuite/gcc.target/aarch64/mv-error3.c | 12 +
gcc/testsuite/gcc.target/aarch64/mv-error4.c | 9 +
gcc/testsuite/gcc.target/aarch64/mv-error5.c | 8 +
gcc/testsuite/gcc.target/aarch64/mv-error6.c | 20 +
gcc/testsuite/gcc.target/aarch64/mv-error7.c | 11 +
gcc/testsuite/gcc.target/aarch64/mv-error8.c | 12 +
gcc/testsuite/gcc.target/aarch64/mv-error9.c | 12 +
.../gcc.target/aarch64/mv-symbols1.c | 38 ++
.../gcc.target/aarch64/mv-symbols10.c | 42 ++
.../gcc.target/aarch64/mv-symbols11.c | 16 +
.../gcc.target/aarch64/mv-symbols12.c | 27 +
.../gcc.target/aarch64/mv-symbols13.c | 28 +
.../gcc.target/aarch64/mv-symbols14.c | 34 ++
.../gcc.target/aarch64/mv-symbols2.c | 28 +
.../gcc.target/aarch64/mv-symbols3.c | 27 +
.../gcc.target/aarch64/mv-symbols4.c | 31 +
.../gcc.target/aarch64/mv-symbols5.c | 36 ++
.../gcc.target/aarch64/mv-symbols6.c | 20 +
.../gcc.target/aarch64/mv-symbols7.c | 47 ++
.../gcc.target/aarch64/mv-symbols8.c | 47 ++
.../gcc.target/aarch64/mv-symbols9.c | 44 ++
gcc/testsuite/gcc.target/aarch64/mvc-error1.c | 9 +
gcc/testsuite/gcc.target/aarch64/mvc-error2.c | 9 +
.../gcc.target/aarch64/mvc-symbols1.c | 25 +
.../gcc.target/aarch64/mvc-symbols2.c | 15 +
.../gcc.target/aarch64/mvc-symbols3.c | 19 +
.../gcc.target/aarch64/mvc-symbols4.c | 12 +
.../gcc.target/aarch64/mvc-warning1.c | 13 +
gcc/tree.cc | 286 ++++++++-
gcc/tree.h | 20 +-
131 files changed, 3327 insertions(+), 847 deletions(-)
create mode 100644 gcc/testsuite/g++.target/aarch64/fmv-selection1.C
create mode 100644 gcc/testsuite/g++.target/aarch64/fmv-selection2.C
create mode 100644 gcc/testsuite/g++.target/aarch64/fmv-selection3.C
create mode 100644 gcc/testsuite/g++.target/aarch64/fmv-selection4.C
create mode 100644 gcc/testsuite/g++.target/aarch64/fmv-selection5.C
create mode 100644 gcc/testsuite/g++.target/aarch64/fmv-selection6.C
create mode 100644 gcc/testsuite/g++.target/aarch64/fmv-selection7.C
create mode 100644 gcc/testsuite/g++.target/aarch64/mv-and-mvc-error1.C
create mode 100644 gcc/testsuite/g++.target/aarch64/mv-and-mvc-error2.C
create mode 100644 gcc/testsuite/g++.target/aarch64/mv-and-mvc-error3.C
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-error2.C
create mode 100644 gcc/testsuite/g++.target/aarch64/mv-error3.C
create mode 100644 gcc/testsuite/g++.target/aarch64/mv-error4.C
create mode 100644 gcc/testsuite/g++.target/aarch64/mv-error5.C
create mode 100644 gcc/testsuite/g++.target/aarch64/mv-error6.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-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-symbols13.C
create mode 100644 gcc/testsuite/g++.target/aarch64/mv-symbols6.C
create mode 100644 gcc/testsuite/g++.target/aarch64/mv-symbols7.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
create mode 100644 gcc/testsuite/g++.target/aarch64/mvc-error1.C
create mode 100644 gcc/testsuite/g++.target/aarch64/mvc-error2.C
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-1.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error1.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error2.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error3.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-and-mvc1.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-and-mvc2.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-and-mvc3.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-and-mvc4.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error1.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error10.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error2.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error3.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error4.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error5.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error6.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error7.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error8.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error9.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols1.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols10.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols11.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols12.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols13.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols14.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols2.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols3.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols4.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols5.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols6.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols7.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols8.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-symbols9.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mvc-error1.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mvc-error2.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mvc-symbols1.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mvc-symbols2.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mvc-symbols3.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mvc-symbols4.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/mvc-warning1.c