| Message ID | PAWPR08MB8982D855775971AB4D918D068387A@PAWPR08MB8982.eurprd08.prod.outlook.com |
|---|---|
| State | New |
| 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 vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 117094BA2E25 for <patchwork@sourceware.org>; Tue, 6 Jan 2026 19:22:11 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 117094BA2E25 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=WQ2sX30H; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=WQ2sX30H X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011044.outbound.protection.outlook.com [52.101.70.44]) by sourceware.org (Postfix) with ESMTPS id 5511C4BA2E05 for <gcc-patches@gcc.gnu.org>; Tue, 6 Jan 2026 19:21:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5511C4BA2E05 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 5511C4BA2E05 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=52.101.70.44 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1767727283; cv=pass; b=FTHlOVzvleFxG2d/uYJIH+VCvb0rX+248q3KlE58fGj1mi7l+uyFyaOUh34jhg3si9rB7/KMXzpAKr2/r4HZkfliKB3qD4/36K8ytuijnrS5Hpw03VLQbof+ScyX6Ra5d7/wseu/I0ukgRpZOecZbSyqhirOZHiPmwUkI2Wfbps= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1767727283; c=relaxed/simple; bh=GBTa94U4nXCi/XNazP5FlURQYn9TFeVlOb1FmCfhJGA=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=lv7/7AxFrfdLd/on+xeYoAJEirgTcdDbp+lpF7hWBq+/CHnV/t6/pylErnXebSekqwOadSZFZ/QsyLGz6uHI75eotj3GhVCgFaaRIAik1kPQg+w1G6qAkgH9ySgHyjJypfXgezKIKPvdqXdGS8oRrcYC8yjbBjIVX5hxrCJMX6U= ARC-Authentication-Results: i=3; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5511C4BA2E05 ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=XPuuHNROicO+i9wh17SG/9dT7brQIxQZdzmtZpMzGQqwPaP4psQIKZKj6RvElSZs4cO8VTaKIMu9BT9/CDtjJv0pqmuRX6xswTc/4+/OkSvwe71+GjnhWuI49QoQjv6BSquZN61TF9t5FUHseXG3lI7NyzgXZYJu6B5r5SZMYFCVYr3+gffp+357ke8TbMp0w6s70laKbXEGHDIOrdUnL5TcyeI9tAQcNduGDpiZVjqcXwCjNtiunBBAhd6L5K6cfOVUrJTKs/nz4kZ4ngcvTdo3WPEb5e2HQXDwRuBRlyPFQYGyt8Um64HPTu+FgXjc5BPedNTen/9ikQVX8yxFpw== 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=RDSPfk71LQ13SaSfA02DrAwHbVUynVZv66RxRbHAglY=; b=cBfHIGc5I5Jnc3L4+qPjhemh2r2ALSL+fPSSTavo6vruUAxmhgS2E5AFZFGbhkmdYzd8ntlkZ3CMBMuX6BVf8oVl/bsN4Xibbk4PTmmqI2SYfJ070PyQG7vVLAR4745bi+KJPyNoade5D8R7SEo8hX8xNRXrizYToMIY+jZgI0AqLbQA+kEXbj1MGAQ4vyikJUocTl9c28dKVy7DktoEKh/pPjt3dlgzcrQhfD2ev7yj37aSOSrOzGBc8l/4sZDt3frh9AGrAAcsanf4AjTE5DmBwoPhvEp8Qw0XIxd02qxdfbp+trKnJoV7E4hBn+i+VmJysgUnVjOk08YBCQw2Bw== 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] dkim=[1,1,header.d=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=RDSPfk71LQ13SaSfA02DrAwHbVUynVZv66RxRbHAglY=; b=WQ2sX30HKTQr+yBgTH8fwGs99jkEHRewabFS3XZk29TpOtjG17J1YRxYCnqonzbyKKJ0ki5V4No+Ir46jQ1PQRCLjzH9fg6nkTA5IP2eknWcWQT50VN063CFVnomNf7/hsRRrkmsLr+qm9Aydr+BGlQNlNHoaCpRFYcyYQBl1/I= Received: from CWLP265CA0437.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:1d7::13) by AS2PR08MB9988.eurprd08.prod.outlook.com (2603:10a6:20b:642::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.4; Tue, 6 Jan 2026 19:21:18 +0000 Received: from AM3PEPF0000A79B.eurprd04.prod.outlook.com (2603:10a6:400:1d7:cafe::9e) by CWLP265CA0437.outlook.office365.com (2603:10a6:400:1d7::13) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9478.5 via Frontend Transport; Tue, 6 Jan 2026 19:21:18 +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 AM3PEPF0000A79B.mail.protection.outlook.com (10.167.16.106) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9499.1 via Frontend Transport; Tue, 6 Jan 2026 19:21:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VrzWw68VRoMzpkq6fNTjWkt6NfWdPMhUeTWaIGgZHTBHhWj+vJxhY2ftyXmfbvQZs27Y9QDfXxgHwHzedvGzZa/5oBVbF0pHdrF2D2o2H5icF8sB1uU1gNftjByUJWdA/+etLMI3LB1j+KQVanw8UUHJ3C/bSeIqD6eJFNcyutSLL38jUpX11VKZYdAbcQgxEM1ejsdLGGQWK/4SCwT6Ow3FXFDyAiyQ5ac73/vjgR2t60EWUOOuntyJXkY0CDttFjBLr+Crp31ckPMvLQtHaqpYdtD2EUav/Z7Hilp9+aynMYSOO4L386uJFEdvqNJB4bZQNUrXG/mTozz6Fq4/Cg== 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=RDSPfk71LQ13SaSfA02DrAwHbVUynVZv66RxRbHAglY=; b=aOeSTd0CudA83RKouuU+2cXatupyi5Y9UyesqZil6c1hRkWgurd1YC+bsvEjFrSJCTmmKUXpM8NRyED/mB3LvKjanJ47D+0kjVLjG23+Tr3gJ552m9AMDq0w/pBt+N1EDG3EQ9pgaWDLUS4JH7mp1cusibuEDuzzYZuYL2U7OEzDUClHWYBVXM6V74q8ClKsFLNDSEsyU2qqzxzepApS9jpYGpWyami29OdHbJvv1XFfdopw8m+DznOrN0pq2praSOe+sBhVByi5lmBHyOq9KuOz1xOLb6xRqHBRMJ+zCZw77GkTgdZWQ3eFyTFymBKlE+Z2AVHOtkMyl27GYSF1iw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none 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=RDSPfk71LQ13SaSfA02DrAwHbVUynVZv66RxRbHAglY=; b=WQ2sX30HKTQr+yBgTH8fwGs99jkEHRewabFS3XZk29TpOtjG17J1YRxYCnqonzbyKKJ0ki5V4No+Ir46jQ1PQRCLjzH9fg6nkTA5IP2eknWcWQT50VN063CFVnomNf7/hsRRrkmsLr+qm9Aydr+BGlQNlNHoaCpRFYcyYQBl1/I= Received: from PAWPR08MB8982.eurprd08.prod.outlook.com (2603:10a6:102:33f::20) by AMDPR08MB11652.eurprd08.prod.outlook.com (2603:10a6:20b:73a::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9478.5; Tue, 6 Jan 2026 19:20:15 +0000 Received: from PAWPR08MB8982.eurprd08.prod.outlook.com ([fe80::b366:6358:236e:352d]) by PAWPR08MB8982.eurprd08.prod.outlook.com ([fe80::b366:6358:236e:352d%6]) with mapi id 15.20.9478.004; Tue, 6 Jan 2026 19:20:15 +0000 From: Wilco Dijkstra <Wilco.Dijkstra@arm.com> To: Gcc Patches ML <gcc-patches@gcc.gnu.org> Subject: [PATCH] varasm: Add params for constant merging Thread-Topic: [PATCH] varasm: Add params for constant merging Thread-Index: AQHcf0DbwmWcqka4YU2VDJxkELBVqA== Date: Tue, 6 Jan 2026 19:20:15 +0000 Message-ID: <PAWPR08MB8982D855775971AB4D918D068387A@PAWPR08MB8982.eurprd08.prod.outlook.com> Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: PAWPR08MB8982:EE_|AMDPR08MB11652:EE_|AM3PEPF0000A79B:EE_|AS2PR08MB9988:EE_ X-MS-Office365-Filtering-Correlation-Id: 0b05a840-a77e-42e8-d4b6-08de4d58c43f x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|366016|1800799024|376014|38070700021; X-Microsoft-Antispam-Message-Info-Original: =?iso-8859-1?q?85PL84KlSousyyPVQ?= =?iso-8859-1?q?kPNIrkXsanjLOQwlZKoTl4OIPPTo6o3dPpSuVFvVrtXzaH5hWl4Mmk86Vnjy?= =?iso-8859-1?q?iFrE1uO5UXfZ3ypJTSZjK7U5QBmBpTNHiqwVv3iW6n5NIKJZm3NrFTTIZpe1?= =?iso-8859-1?q?niFkWAQbnVF475glcTHGZMgpTxO3Y9LIrAMLV2qmTBTUtJHRuqUOldiedZgV?= =?iso-8859-1?q?RhOULg9Apb/nlSVfEsf/k/nGH3mUbJVw8uumagR5Qo3/l82GHTxr1A13zu5q?= =?iso-8859-1?q?sGH8j8KExdl+33LsdvB3nvM27GokwWqVAnY5kVkTCWX1Yfwt/pDI0F8gHp9B?= =?iso-8859-1?q?NgG5IH5P2/I7MBfKv/w5UNzldp0yKpcG6g1seku2lCX0Dv2qN6vyfSZ41z0z?= =?iso-8859-1?q?FNtKlEK8+hA+qbixEWx6izX2OUlK/AS1FpVYkroxDN2R0B10HEZeMTCHkYt5?= =?iso-8859-1?q?S3W0dq8vpzjJb4Hr2B/aFtvQETL50aH+y/Uqm2ymJBVlQ0gg3GdJ8D4hnqhu?= =?iso-8859-1?q?IfigEvAv37eNiET0tl2DnEN3gLw8Q1tJ00UMCLpC4CbqGAeMpMEucjX+rPKF?= =?iso-8859-1?q?Qn7LMeYzzGajuH/G6oK8TNbo6mZLjUpz1w4UMFMtc267n1lDE5jUCN0AF3wn?= =?iso-8859-1?q?q5VWaN43jw4TBHiHOXr2Oh1wPTsnmPfu3fw0S+r+W2CcjG59Qj8m/z28FbZ7?= =?iso-8859-1?q?rnjA9uPohIFfkayC6dYib56VuyzyGOnIXSAPumuu93OrKi/+EUExy/CDG3J9?= =?iso-8859-1?q?/zgie22Up4705fnnMazoWCKOCceAMwovMlurKubeRjSHFWtspV5EL3Yzkw7i?= =?iso-8859-1?q?jLidNIq82WTo0iPokK9hTNmqPJB6SfCV7cGxnbPJ9HDRjwgx5o15hJpglMB/?= =?iso-8859-1?q?xej4kfHmUcPKYZmqb2bne7KbaCO7XKeKTGYBs31VXSVVX8wbCrozOPlzIbVS?= =?iso-8859-1?q?ELADACLRD2qqPBBd2S5ycgWSCNtDKMSAFjWPWzTlYk+oA2PtH3jUotf7ft5m?= =?iso-8859-1?q?nxeAtXrIsUfsZO1jGQS/nYD9lOjjNFkIalgh+4iWUFbvmlg995O1ZDOmSqBY?= =?iso-8859-1?q?5SN3bdyeIAb8T3VuS0JJ2kwehmDeVtp/ZoGB5avpTCv2rHWQfAPfN/WWIGhx?= =?iso-8859-1?q?YFvW3jctKYMIEQ6YQ/AteNs9TixBuKmVkxtvgNAj34vSoBHSiTvXJXdyAisY?= =?iso-8859-1?q?M+d8Rv1ajxOAnC2FwuBOEC6+ee3KlOOGhMx278BWn0UMxNvhWCE0CDEYVYDq?= =?iso-8859-1?q?XiCNDu03aBTpxDRTxjWrvHUzFsjZT0ZlxG+CCkkMjZyS6QcbLreJSwzBKAAf?= =?iso-8859-1?q?HH27l3MS634FGgPNwmhq5X0a5tBHpqfouq7oaOlq/b5gx0YrY46sQy1d0HL1?= =?iso-8859-1?q?OMJ6oLJugqCM4gSxPiF/UTs3YMnLgYmVB13KAU1B5zquCI+pw5QphC2pm+He?= =?iso-8859-1?q?eTbJJLJGFX2J/zJetT7JqHWO3qIuAZjXEhba2162pB/1M7eulOvS/q5Owe9F?= =?iso-8859-1?q?fh1wXwrIl9xnRuX8ejrkQJ1SiaIUVGM+cS+U5L+xvWjxpE+0tj3Wn/ACV9Qi?= =?iso-8859-1?q?gpWLysrgxxovibu1lm9?= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAWPR08MB8982.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014)(38070700021); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMDPR08MB11652 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM3PEPF0000A79B.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 37603e7a-7e39-49ff-5995-08de4d589f2b X-Microsoft-Antispam: BCL:0; ARA:13230040|35042699022|1800799024|14060799003|82310400026|376014|36860700013; X-Microsoft-Antispam-Message-Info: =?iso-8859-1?q?Q+8KFHgCSkhNnLq23FCxX/q+rG?= =?iso-8859-1?q?4KMTG+Hs8g0Tupo8Eo9vsTYxSgdVoPxy5YnQhVbe1McDWIYoUHsbuTycg/Oh?= =?iso-8859-1?q?++5SkV3Cp9/BNRrO9w7qPo+E6n57lAaNsM3EheXpNXfUtGdcPARA0bvr2CIZ?= =?iso-8859-1?q?j1s+jrRVAhF3ELY0aF7jzAESqmaVx/C7dWxFC/DWqV/ho+MpFlq4F2tZ06Yf?= =?iso-8859-1?q?xQxNQ3PGIHikLMxPWwvm8Ktwh9k/kj8ft1F03nUw27tV7mfpJ13q0FPgPZjU?= =?iso-8859-1?q?y7ejz0HO6olqkFTEK3CWeoAIbM51TIRkfeSXPmVYFSqcvsFoQyg+S5AtHc+I?= =?iso-8859-1?q?2XfIDVDiiUhJCTj7jDk3qTIm4lXWyTgCw+sAJ92E4WYBsZx4nB/EpGnEtnjR?= =?iso-8859-1?q?rD2iJEBptsDTIqeZTzMyeRYwutPMm10o8b0ZiYqZCXpAQiJwNPeNANhHpEub?= =?iso-8859-1?q?u8DJTeZ8HMVuwx6TGokIq3nFsYRU3wuf/wi886nvev4eq7LIfXrdcmbw0nSp?= =?iso-8859-1?q?58Oqjxw4xDeUwlaNhgRTU5L0JcBT/q78E6sX7UVPEvJOPe3D95T9rKtiyANl?= =?iso-8859-1?q?k0ZO8aBJUKCQs77yLKC18ecwgUnG6syCVClv3dtIbkh7u4v5T0LxnIr1nVFu?= =?iso-8859-1?q?4W5zkJowoTtzFFhu3l01L7P1tGTfbI/mGCg6UUPbl4sa/glBAno+mgKvd0oQ?= =?iso-8859-1?q?dQB/NRbjs5AQ0C9d+Ex+2K+tYUmI6AgjIPiZex4ay7qjZf2JhyXnJIUKYPDu?= =?iso-8859-1?q?YohjVzQN58YAwDC5bTpepQHTNLkkWeTJ0dniwE8eWTRGfspmnIwCMqsd0ai5?= =?iso-8859-1?q?G9Z9U6ECellZDHgZmj4wlP87xnU0AKtkjPLbRB4YWsqnOOPB/GXczr/qHg+Q?= =?iso-8859-1?q?OqZmZigJ7nlKGTm9KNybNZzSSw+P5+EoJpkOs9SK1MMgV8waMAHkZ120308d?= =?iso-8859-1?q?NAGGi/+/vkdk1NS2h2ApZl8bDHB8FbTWDeYBzdkbahWCkTSEWKhOKbOX4huH?= =?iso-8859-1?q?/OC07AMGkHPxw03xF3yTrAZkhSVxvnn/6Amky0rNUWHzSRN9n2bALoiraZYB?= =?iso-8859-1?q?l+vMMGGD3wlf3YheSjN7eEmGjTNtdojNZRNtveYFtmInhRNrPdvcKV3B4F+T?= =?iso-8859-1?q?nBMO265qUXw9UGLDItVnPz5PFQhEDRRdAl2REaeJiiqGK1fk+rkMOI/IlQEZ?= =?iso-8859-1?q?6cI//0Bz0/214YJnNhOJHrVTSyMIgDztLGGzqdc6mHY2I8XhYHGZDNF1U1oY?= =?iso-8859-1?q?kbTJax+s/2JN17FbPt2tuR2uPk2SrGasTHRpojee7JJ35fkmb6H194FxQb4E?= =?iso-8859-1?q?R56Eor0lqPWPI983GkP25s9dUdUkXwE0p2xoYCDd70Ytk8lqLRYKLGea/ktI?= =?iso-8859-1?q?cn3DOD1sF1KXRlAYzn/EjzmI1O9yQULgBsl9iVISt01FaWoEYQ4hl2s+iY9a?= =?iso-8859-1?q?y4KohHrvwkM6kiWVOHLrk6azLfru7BzfEmtoli4w4QyBJLv1tIMUxGxFm/PV?= =?iso-8859-1?q?bPU9QMxZ8dCvHWtUjZm4weHyCDa3ZZxuycha8wUIUhX+Vku3oRCtEBPq0XKf?= =?iso-8859-1?q?2bT9W8I9lqAkCHI42P2jkSPx+XyPKyJ+FyiJrYZ3Pce6VKuRMwh7c=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)(35042699022)(1800799024)(14060799003)(82310400026)(376014)(36860700013); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jan 2026 19:21:17.7586 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0b05a840-a77e-42e8-d4b6-08de4d58c43f 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: AM3PEPF0000A79B.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9988 X-Spam-Status: No, score=-9.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, KAM_LOTSOFHASH, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_PASS, SPF_NONE, TXREP, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: 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 |
varasm: Add params for constant merging
|
|
Commit Message
Wilco Dijkstra
Jan. 6, 2026, 7:20 p.m. UTC
The -fmerge-constants option controls whether constants are emitted into mergeable sections - however this applies to all constants, including strings. On targets that support anchors it may be better to use anchors for FP constants (eg. PR121240). Add new params string-merging-threshold and constant-merging-threshold to allow finer grained control. The default is zero and generated code is unchanged. OK for commit? gcc: * params.opt (constant-merging-threshold): Add new param. (string-merging-threshold): Add new param. * varasm.cc (mergeable_string_section): Compare string size with param_string_merging_threshold before merging. (mergeable_constant_section): Compare constant size with param_constant_merging_threshold before merging. * doc/invoke.texi (string-merging-threshold): Document new param. (constant-merging-threshold): Likewise. ---
Comments
On Tue, Jan 6, 2026 at 11:22 AM Wilco Dijkstra <Wilco.Dijkstra@arm.com> wrote: > > > The -fmerge-constants option controls whether constants are emitted into > mergeable sections - however this applies to all constants, including > strings. On targets that support anchors it may be better to use anchors > for FP constants (eg. PR121240). Add new params string-merging-threshold > and constant-merging-threshold to allow finer grained control. The default > is zero and generated code is unchanged. > > OK for commit? > > gcc: > * params.opt (constant-merging-threshold): Add new param. > (string-merging-threshold): Add new param. > * varasm.cc (mergeable_string_section): Compare string size with > param_string_merging_threshold before merging. > (mergeable_constant_section): Compare constant size with > param_constant_merging_threshold before merging. > * doc/invoke.texi (string-merging-threshold): Document new param. > (constant-merging-threshold): Likewise. Does it make sense rather to do the non-merge based on the mode in the case of floating point with maybe a target hook that mergeable_constant_section calls? I don't think a param is a good approach here rather than something finer control. For an example an constant array of 4 char would still be size of 4 but do you still want to merge those constants or use anchors in that case? Or is it just floating point values where it might improve things? Note I am trying to convince myself which way is better because right now it is not obvious from this patch if something finer tuned is needed or doing it by size is always a good idea. Maybe there are not many non-floating point constants that go into the mergeable section so the size check won't make a huge difference in the end; I know that the constant switch load table is now a mergeable decl. But maybe that does not show up enough to make a difference here. Likewise of the backing constant of a std::initializer_list. I would rather be forward looking on this and add the hook now rather than later on when there are much more mergeable constants which we want to still merge. Thanks, Andrew > > --- > > diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi > index bae66ba6c45f9f23f3c97cc55eb292474db502db..8a6c8473d90f2a4798c71c8aeba77a166ccebdae 100644 > --- a/gcc/doc/invoke.texi > +++ b/gcc/doc/invoke.texi > @@ -18066,6 +18066,14 @@ bubbles. This is the current default. Zero means the scheduling description > might not be available/accurate or perhaps not applicable at all, such as for > modern out-of-order processors. > > +@item string-merging-threshold > +Specifies the minimum size in bytes before string constants are considered for > +merging across compilation units. > + > +@item constant-merging-threshold > +Specifies the minimum size in bytes before integer/floating-point constants > +are considered for merging across compilation units. > + > @end table > > The following choices of @var{name} are available on AArch64 targets: > diff --git a/gcc/params.opt b/gcc/params.opt > index e2b3930d5a768cb4bcd8815e2d0887190f89596e..947497fa3ac0057c9a3eed86e9db260a1b8894e1 100644 > --- a/gcc/params.opt > +++ b/gcc/params.opt > @@ -130,6 +130,10 @@ The smallest number of different values for which it is best to use a jump-table > Common Joined UInteger Var(param_comdat_sharing_probability) Init(20) Param Optimization > Probability that COMDAT function will be shared with different compilation unit. > > +-param=constant-merging-threshold= > +Common Joined UInteger Var(param_constant_merging_threshold) Init(0) Param Optimization > +Minimum constant size before it is considered for merging across compilation units. > + > -param=cxx-max-namespaces-for-diagnostic-help= > Common Joined UInteger Var(param_cxx_max_namespaces_for_diagnostic_help) Init(1000) Param > Maximum number of namespaces to search for alternatives when name lookup fails. > @@ -1107,6 +1111,10 @@ Maximum size of a single store merging region in bytes. > Common Joined UInteger Var(param_store_forwarding_max_distance) Init(10) IntegerRange(0, 1000) Param Optimization > Maximum number of instruction distance that a small store forwarded to a larger load may stall. Value '0' disables the cost checks for the avoid-store-forwarding pass. > > +-param=string-merging-threshold= > +Common Joined UInteger Var(param_string_merging_threshold) Init(0) Param Optimization > +Minimum string size before it is considered for merging across compilation units. > + > -param=switch-conversion-max-branch-ratio= > Common Joined UInteger Var(param_switch_conversion_branch_ratio) Init(8) IntegerRange(1, 65536) Param Optimization > The maximum ratio between array size and switch branches for a switch conversion to take place. > diff --git a/gcc/varasm.cc b/gcc/varasm.cc > index fec792ec2326f3fb631e5d8b3538f52a57347d66..2c4669f629fcf24848d8dc6e7a5fe681a0a5b66c 100644 > --- a/gcc/varasm.cc > +++ b/gcc/varasm.cc > @@ -873,6 +873,7 @@ mergeable_string_section (tree decl ATTRIBUTE_UNUSED, > && TREE_CODE (TREE_TYPE (decl)) == ARRAY_TYPE > && align <= MAX_MERGEABLE_BITSIZE > && (len = int_size_in_bytes (TREE_TYPE (decl))) > 0 > + && len >= param_string_merging_threshold > && TREE_STRING_LENGTH (decl) == len) > { > scalar_int_mode mode; > @@ -927,6 +928,7 @@ mergeable_constant_section (unsigned HOST_WIDE_INT size_bits, > newsize = HOST_WIDE_INT_1U << ceil_log2 (size_bits); > if (HAVE_GAS_SHF_MERGE && flag_merge_constants > && newsize <= MAX_MERGEABLE_BITSIZE > + && (newsize / BITS_PER_UNIT) >= param_constant_merging_threshold > && align >= 8 > && align <= newsize > && (align & (align - 1)) == 0) >
Hi Andrew, > Does it make sense rather to do the non-merge based on the mode in the > case of floating point with maybe a target hook that > mergeable_constant_section calls? > I don't think a param is a good approach here rather than something > finer control. That's a good point - I was using these params for experimentation, and while they are quite useful for that, there are existing hooks that allow selection based on the mode. > For an example an constant array of 4 char would still be size of 4 > but do you still want to merge those constants or use anchors in that > case? Or is it just floating point values where it might improve > things? If it's an array then it cannot be merged. Switch statements using offset tables may be mergeable, but it's not clear how useful this is since it would be pure chance that they match and can be merged. > Note I am trying to convince myself which way is better because right > now it is not obvious from this patch if something finer tuned is > needed or doing it by size is always a good idea. > Maybe there are not many non-floating point constants that go into the > mergeable section so the size check won't make a huge difference in > the end; I know that the constant switch load table is now a mergeable > decl. But maybe that does not show up enough to make a difference > here. Likewise of the backing constant of a std::initializer_list. > I would rather be forward looking on this and add the hook now rather > than later on when there are much more mergeable constants which we > want to still merge. I think I will use the existing hooks for this - once we've got the optimal setting, there is less need to change the value from the command-line. So consider this patch withdrawn. Cheers, Wilco
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index bae66ba6c45f9f23f3c97cc55eb292474db502db..8a6c8473d90f2a4798c71c8aeba77a166ccebdae 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -18066,6 +18066,14 @@ bubbles. This is the current default. Zero means the scheduling description might not be available/accurate or perhaps not applicable at all, such as for modern out-of-order processors. +@item string-merging-threshold +Specifies the minimum size in bytes before string constants are considered for +merging across compilation units. + +@item constant-merging-threshold +Specifies the minimum size in bytes before integer/floating-point constants +are considered for merging across compilation units. + @end table The following choices of @var{name} are available on AArch64 targets: diff --git a/gcc/params.opt b/gcc/params.opt index e2b3930d5a768cb4bcd8815e2d0887190f89596e..947497fa3ac0057c9a3eed86e9db260a1b8894e1 100644 --- a/gcc/params.opt +++ b/gcc/params.opt @@ -130,6 +130,10 @@ The smallest number of different values for which it is best to use a jump-table Common Joined UInteger Var(param_comdat_sharing_probability) Init(20) Param Optimization Probability that COMDAT function will be shared with different compilation unit. +-param=constant-merging-threshold= +Common Joined UInteger Var(param_constant_merging_threshold) Init(0) Param Optimization +Minimum constant size before it is considered for merging across compilation units. + -param=cxx-max-namespaces-for-diagnostic-help= Common Joined UInteger Var(param_cxx_max_namespaces_for_diagnostic_help) Init(1000) Param Maximum number of namespaces to search for alternatives when name lookup fails. @@ -1107,6 +1111,10 @@ Maximum size of a single store merging region in bytes. Common Joined UInteger Var(param_store_forwarding_max_distance) Init(10) IntegerRange(0, 1000) Param Optimization Maximum number of instruction distance that a small store forwarded to a larger load may stall. Value '0' disables the cost checks for the avoid-store-forwarding pass. +-param=string-merging-threshold= +Common Joined UInteger Var(param_string_merging_threshold) Init(0) Param Optimization +Minimum string size before it is considered for merging across compilation units. + -param=switch-conversion-max-branch-ratio= Common Joined UInteger Var(param_switch_conversion_branch_ratio) Init(8) IntegerRange(1, 65536) Param Optimization The maximum ratio between array size and switch branches for a switch conversion to take place. diff --git a/gcc/varasm.cc b/gcc/varasm.cc index fec792ec2326f3fb631e5d8b3538f52a57347d66..2c4669f629fcf24848d8dc6e7a5fe681a0a5b66c 100644 --- a/gcc/varasm.cc +++ b/gcc/varasm.cc @@ -873,6 +873,7 @@ mergeable_string_section (tree decl ATTRIBUTE_UNUSED, && TREE_CODE (TREE_TYPE (decl)) == ARRAY_TYPE && align <= MAX_MERGEABLE_BITSIZE && (len = int_size_in_bytes (TREE_TYPE (decl))) > 0 + && len >= param_string_merging_threshold && TREE_STRING_LENGTH (decl) == len) { scalar_int_mode mode; @@ -927,6 +928,7 @@ mergeable_constant_section (unsigned HOST_WIDE_INT size_bits, newsize = HOST_WIDE_INT_1U << ceil_log2 (size_bits); if (HAVE_GAS_SHF_MERGE && flag_merge_constants && newsize <= MAX_MERGEABLE_BITSIZE + && (newsize / BITS_PER_UNIT) >= param_constant_merging_threshold && align >= 8 && align <= newsize && (align & (align - 1)) == 0)