Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2223956/?format=api
{ "id": 2223956, "url": "http://patchwork.ozlabs.org/api/patches/2223956/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/patch-20476-tamar@arm.com/", "project": { "id": 17, "url": "http://patchwork.ozlabs.org/api/projects/17/?format=api", "name": "GNU Compiler Collection", "link_name": "gcc", "list_id": "gcc-patches.gcc.gnu.org", "list_email": "gcc-patches@gcc.gnu.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<patch-20476-tamar@arm.com>", "list_archive_url": null, "date": "2026-04-16T12:15:46", "name": "middle-end: disable CRC pass when -Os and the target does not have CRC optabs [PR124900]", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "9cf257d951992c86f48c3e03d26de9e4299db61c", "submitter": { "id": 69689, "url": "http://patchwork.ozlabs.org/api/people/69689/?format=api", "name": "Tamar Christina", "email": "Tamar.Christina@arm.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/patch-20476-tamar@arm.com/mbox/", "series": [ { "id": 500149, "url": "http://patchwork.ozlabs.org/api/series/500149/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=500149", "date": "2026-04-16T12:15:46", "name": "middle-end: disable CRC pass when -Os and the target does not have CRC optabs [PR124900]", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/500149/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2223956/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2223956/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "gcc-patches@gcc.gnu.org" ], "Delivered-To": [ "patchwork-incoming@legolas.ozlabs.org", "gcc-patches@gcc.gnu.org" ], "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256\n header.s=selector1 header.b=qG1vRLBV;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=qG1vRLBV;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=38.145.34.32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)", "sourceware.org;\n\tdkim=pass (1024-bit key,\n unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256\n header.s=selector1 header.b=qG1vRLBV;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=qG1vRLBV", "sourceware.org;\n dmarc=pass (p=none dis=none) header.from=arm.com", "sourceware.org; spf=pass smtp.mailfrom=arm.com", "server2.sourceware.org;\n arc=pass smtp.remote-ip=40.107.162.66" ], "Received": [ "from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fxH8f6ZTdz1yDF\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 16 Apr 2026 22:17:33 +1000 (AEST)", "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 75BBE4BA23E9\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 16 Apr 2026 12:17:31 +0000 (GMT)", "from PA4PR04CU001.outbound.protection.outlook.com\n (mail-francecentralazon11013066.outbound.protection.outlook.com\n [40.107.162.66])\n by sourceware.org (Postfix) with ESMTPS id D5A594BA2E26\n for <gcc-patches@gcc.gnu.org>; Thu, 16 Apr 2026 12:16:56 +0000 (GMT)", "from AM5PR0301CA0011.eurprd03.prod.outlook.com\n (2603:10a6:206:14::24) by DU0PR08MB8472.eurprd08.prod.outlook.com\n (2603:10a6:10:404::11) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.48; Thu, 16 Apr\n 2026 12:16:52 +0000", "from AMS1EPF0000004C.eurprd04.prod.outlook.com\n (2603:10a6:206:14:cafe::38) by AM5PR0301CA0011.outlook.office365.com\n (2603:10a6:206:14::24) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.52 via Frontend Transport; Thu,\n 16 Apr 2026 12:16:52 +0000", "from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by\n AMS1EPF0000004C.mail.protection.outlook.com (10.167.16.137) with Microsoft\n SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.17\n via Frontend Transport; Thu, 16 Apr 2026 12:16:52 +0000", "from VI0PR08MB10392.eurprd08.prod.outlook.com\n (2603:10a6:800:210::10) by GVXPR08MB11813.eurprd08.prod.outlook.com\n (2603:10a6:150:312::14) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.48; Thu, 16 Apr\n 2026 12:15:49 +0000", "from VI0PR08MB10392.eurprd08.prod.outlook.com\n ([fe80::cd7c:e19a:2072:75cc]) by VI0PR08MB10392.eurprd08.prod.outlook.com\n ([fe80::cd7c:e19a:2072:75cc%4]) with mapi id 15.20.9769.046; Thu, 16 Apr 2026\n 12:15:49 +0000" ], "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 sourceware.org 75BBE4BA23E9", "OpenDKIM Filter v2.11.0 sourceware.org D5A594BA2E26" ], "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org D5A594BA2E26", "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org D5A594BA2E26", "ARC-Seal": [ "i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1776341817; cv=pass;\n b=KlN5Q4pOAxgyEjDAZdutv/SxGNccXYh/2liLQGAPsz4QB+kgVyWkKOLGzVXH4KVNIj8RCBfYwdWpKIzma+0aAot/ijrecqrWlSBYLDue88PtM3aysq7CRWlGM2ew3Ot1YOZmdl5whK94Faa/6kOGanrrJj7CyW0MzOmzEo8A9+M=", "i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;\n b=m3dV2JaE9DLXzWC5sroX28t4110Cm8qVnwqjEOyRhaKW2tZfYqt3kGJv4ryCiuihp7uFtz/xCVX0e+3BUHXH3ENCOO5tQERfi297M+Q7uY6i5+xMI+TwlZeH3w78YuydbR0RL3CcJa+l5MuzcrljV0ejswTxxuu6mwkGqew/eO1XYEks3U+O2pZtAip38DN/ytARD0i4dFzziTsJyP9/bMLayrSps5xKJMBUYWtFA25mEx5+2AzWJywJivAF3duuHby6qIyeBbbRXiQ6Hq2wnI+ge2oLuH09sgEtroC9lnrRqejzt++DfxsP7iC0hzUFlZxOXJEamxb2XT5MbySQcw==", "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=xY4bnuqsgenq1P5jBuvM7l/UVRxVEHf/rztawsvpML1Un5ajOP05aCD390BmGtlr/f8Yai91lr8tbu2TtqKHOCkhxDsNHVFjic8IKN+roNCMq8STW67uA63ck13Zgic7cbADApTj7dRaN4YK/cDITq5Eqey+uHb3X53Gjc9xleHGRPUg0BBcjRM1yxMd8W2Qr0AjFznTDZbGq/B0XVpBxoidnlXdcSnH12G4BFot4pYU+Jelpa3WhslX9MzabXIQrlXKxsTbpfqNlPEJkvFvsTUJvJdez2X/RmL+51UK/kMDvAx8G12IUpIZiySvsEXvEuDa3aqBnzxJkjqKdOP8bA==" ], "ARC-Message-Signature": [ "i=3; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776341817; c=relaxed/simple;\n bh=5KaYXXqKXAzO+43rXgZTcjAWmPolcdavmwX7xciObmU=;\n h=DKIM-Signature:DKIM-Signature:Date:From:To:Subject:Message-ID:\n MIME-Version;\n b=mEUe9DITT7/Hc42OV0tasTI15p4Pel1ICmKG0xHN1f7VV2gyDBCV1ju6PVk9IP5AJH6uPAw4VGm+7dZhGDUbzpduU60QWulDPMaOGjvtekgvKjDqut+3u+8y9N1HdlFNvGYUhg+RIruincl8iKdcrPL/kSeQRRXqFJQp2/keIeU=", "i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=yKSDL6Uy5cMCmGi3aTJwzIzHBRQFxgAa3JlnJay7cC8=;\n b=wWlBiMHWLjBozRGUF46c0wcrnnSGSs5qhQkD/iaOSI42IbG7sZrM8G9WDd1vN6wynyBPTSrQCdjpCPriFsequvCWdHKgbTSiT0KhkVlO8Qfdn4djIFi1Fx5dIXwFvIQ0nWewG1iaXwnZTUs6+uCzisf94Y18zMjvUy77dIkFD+EUP9BOwj8OTkLjxhHjz5yP+7fXAFCp9UFT+948318Iuj9eCIiiTwEXN5HvDpAiz8mgPF0Vr4JT18bSZ1i1l0zALwyW1ULe4PvGq1ETwvM9vwS+I8vpuMw2Y0dH058jvpAPKIuDm8VNPREoR2ezUxHq3mLby+YsFfZ0+nGBPhzoCA==", "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=yKSDL6Uy5cMCmGi3aTJwzIzHBRQFxgAa3JlnJay7cC8=;\n b=HGX4zkLfr47snc9fjI9/7rcSqyrH0gkIq1Z1zQPO2rf+EEOTiN1DOuN8CO399O6+BTsP19yEqxpVr40Ypds/FK8NqOJeFbRVh1Pa7LJ7o51vKTgUo4w7T3uR+awtNEjDn+AS+TmqfwmIyBYDMaASQLx5c1EyiTWQze6yTXINUeFPSZ6ouhuOgO9tnbEED0CVZDHMTucKig4hR8lTDD/Xppm6nXSbYkdIMNd781mu0xhoQ0Xv9PCDz1/rRRNCoWc1iseo39vMe3Wko5R64KMiK9bkv1TDI/iEmYagx+Kg89ZZ92wkkj0Qn+SXq5ee9fA0CvtPjFExV/1CVZ7GgH6oLg==" ], "ARC-Authentication-Results": [ "i=3; server2.sourceware.org", "i=2; mx.microsoft.com 1; spf=pass (sender ip is\n 4.158.2.129) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass\n (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass\n (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1\n spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com]\n dmarc=[1,1,header.from=arm.com])", "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass\n header.d=arm.com; arc=none" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=yKSDL6Uy5cMCmGi3aTJwzIzHBRQFxgAa3JlnJay7cC8=;\n b=qG1vRLBVCk5n2TdujT7eamqG9uEA0xpVzxlFk2q1AeEfp3Ls7QASBW2/h+Uo8Zq/0qQmY+RayGzPt/g8+AsKs+7SDLj12Kc+jBaJDRTLGEKcqvYtVDphdUrsyvIYLA2jpWrbatoopjvJ+oHvNWm9P8rQ09KAGpoH5xRPPI0QhHQ=", "v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=yKSDL6Uy5cMCmGi3aTJwzIzHBRQFxgAa3JlnJay7cC8=;\n b=qG1vRLBVCk5n2TdujT7eamqG9uEA0xpVzxlFk2q1AeEfp3Ls7QASBW2/h+Uo8Zq/0qQmY+RayGzPt/g8+AsKs+7SDLj12Kc+jBaJDRTLGEKcqvYtVDphdUrsyvIYLA2jpWrbatoopjvJ+oHvNWm9P8rQ09KAGpoH5xRPPI0QhHQ=" ], "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 4.158.2.129)\n smtp.mailfrom=arm.com; dkim=pass (signature was verified)\n header.d=arm.com;dmarc=pass action=none header.from=arm.com;", "Received-SPF": "Pass (protection.outlook.com: domain of arm.com designates\n 4.158.2.129 as permitted sender) receiver=protection.outlook.com;\n client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C", "Authentication-Results-Original": "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=arm.com;", "Date": "Thu, 16 Apr 2026 13:15:46 +0100", "From": "Tamar Christina <tamar.christina@arm.com>", "To": "gcc-patches@gcc.gnu.org", "Cc": "nd@arm.com, rguenther@suse.de, jakub@redhat.com, richard.earnshaw@arm.com", "Subject": "[PATCH]middle-end: disable CRC pass when -Os and the target does not\n have CRC optabs [PR124900]", "Message-ID": "<patch-20476-tamar@arm.com>", "Content-Type": "multipart/mixed; boundary=\"DnDTUX8rTcQGN4QN\"", "Content-Disposition": "inline", "X-ClientProxiedBy": "LO6P123CA0001.GBRP123.PROD.OUTLOOK.COM\n (2603:10a6:600:338::7) To VI0PR08MB10392.eurprd08.prod.outlook.com\n (2603:10a6:800:210::10)", "MIME-Version": "1.0", "X-MS-TrafficTypeDiagnostic": "\n VI0PR08MB10392:EE_|GVXPR08MB11813:EE_|AMS1EPF0000004C:EE_|DU0PR08MB8472:EE_", "X-MS-Office365-Filtering-Correlation-Id": "8a71ae27-e69a-4342-f517-08de9bb20b24", "x-checkrecipientrouted": "true", "NoDisclaimer": "true", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam-Untrusted": "BCL:0;\n ARA:13230040|376014|6049299003|366016|1800799024|18002099003|4053099003|56012099003;", "X-Microsoft-Antispam-Message-Info-Original": "\n LBP0G8EIHYUsNyFIV1e5c/eKiqgNrg3tmxZnshxFGdNVS9syOdrgp0fl8i2etOH584CRznDuadsIYZXaCyNTwdGq8rh1jeSGd8/AxObgoye0GxFpeywkPrBmH6QNjmqvupHATujzYRxBrovo1fYBpKvEjuM/fxI83qp7bkR3XHNkAIQGYm2PmPyK+ribcRtI27PtVuFxsJIyoliGboyCkVK3ph5QVJkkwNr4A/Cvn9qAS7vgibyvLlpl5aRu15BL2lOEDd/yyORkGjAynw+ss5AnB6KmTD1RXLIGQqao3l6aoeukerGvNOofmdBBBvuR+UofGIZVF00vX+WhxiE4WTxrWQwR5mIs/WGGk2SeO5UpIjFppQmas/Su1MiLv76K/dFAGz4Ydhnr8+TyAY1DWjYW6Fzk/zzWNGns0mpozbw+9gYK1cb18GbXrluwJf8VpCOhkrRLtN2IDBusSy8vtIUBR1KEBfz0TRA66BaCUXFlMKFsuDxVXhcYKRPVtcrRVGHtxrLuGaIO/1wkwMlkf4feVLRdH4NL5oEo/uP3C9/aNw23tk3vquvvDPEAlfSYKxkNAxbYegzxurKSQXb6+Q3izl0LSKnqeZUazjI2TbLKFZAX/Y1ChvGFuNA9QJqqEwrVEsOlHffPyoQjAcIC7sl0Kxo8SIZjv5QmuBFnyLVGN6lTXyeWwz0KcFEwfJMm0+xCCc4QlMfloggOmB1MSw==", "X-Forefront-Antispam-Report-Untrusted": "CIP:255.255.255.255; CTRY:; LANG:en;\n SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI0PR08MB10392.eurprd08.prod.outlook.com;\n PTR:; CAT:NONE;\n SFS:(13230040)(376014)(6049299003)(366016)(1800799024)(18002099003)(4053099003)(56012099003);\n DIR:OUT; SFP:1101;", "X-Exchange-RoutingPolicyChecked": "\n NOM/oTOBniSjE/ZYXMFBsiAHGi/9aXYMIFa703Llal+X6OP2HCh/chDNRYqWQkqp0JRnh42xe0sqOCyMv9YZuU7l+85TUBcrXYpWd6UsTme3ugKoExS2sYc9/Xu9jd9En9mU3XAZtamKuLmNdbhjZ8BSxWONeS6mImzZt+VvXhvA8PFzv4nKx7ZlXtctTDrZLDNbGOmGCiXIhUpp0IVAp855M560uZqO1wDX5rhXFe5kSHKQvMdyskVZ5ccrtbpa/Itz5vPc1S7R7mIJEgIPduzeLDCSX1eN31Frmn9xQiZQ27+czQO+pPHgjzDNvyYwgN5U+LZZe5UsGDM/L9KroQ==", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": [ "GVXPR08MB11813", "DU0PR08MB8472" ], "X-EOPAttributedMessage": "0", "X-MS-Exchange-Transport-CrossTenantHeadersStripped": "\n AMS1EPF0000004C.eurprd04.prod.outlook.com", "X-MS-PublicTrafficType": "Email", "X-MS-Office365-Filtering-Correlation-Id-Prvs": "\n 9c2a70d6-d45b-4b6f-47f1-08de9bb1e551", "X-Microsoft-Antispam": "BCL:0;\n ARA:13230040|35042699022|1800799024|6049299003|36860700016|376014|14060799003|82310400026|4053099003|18002099003|56012099003;", "X-Microsoft-Antispam-Message-Info": "\n 8ukyQHdQ6N2uDzPbHg7jjpYwjaFudy6pylXdKtRbfx0imnH4ALlqIkGDUYrqLWCMEcfcOombGzlR/Na3JtNddi+3N1iJFmB2v0wd7CQpM5SteS06eWPyGB5C7WftCa1sLnvN9q0QcCeJaVtcfXUQ2sg6VuNKQHBGzOuRT1xwe3RUFH40A9X7+uLtOvpINqUz+CfMr0Q47HXmtAfRu37wfceQsqBjienshDd5SY+TMo1q4JhBckbbKPZ6dIjokk4GNoyGKPGbJrgtb0nTdqdcHYIALvoyrzSGECnxX6h0Vw+zWAdHwRrJ7qW3gCugdR11XzWPCLg7UXYPcqvlvRiSBHLu5J29r9nER+Zbyovj2JsjbQPWS5FBA6LwU25i+e9ngNbkBy8ZrPa6CBkxWdL1aR8Cv0E2b9bleCtLkMLBipInmCUs7SGF27/g7JDL6tdixMe9tZk7IwpFo71w7uhsU9Rl2va73uH6EsxOpCLOF8jlgaH8mc/jv/406jlz5IbOFBSHFB1krbP3D02jFdHqH7lPKqTj4OLxXeejdoDfOBNQ6/OjgPq+l1MHq1SRcm6wv7UVHjOO8TrdXEUZH7DCMMEhW5o1ScLjSjTPVDVgZuAJD9x+yvn5ycmDOOfxPlcCVn/V2O4kEws42xJY4eWti0DKZgHV6MLApSQOQJNu3n3SoZfPzWtF8s0NlAj9Vur6jW2Avo2F603qOo5qS8x/gEui/e6FnsYZEJ+vyLlIEjQOSk9jnkbXfptQr6zByFZ0", "X-Forefront-Antispam-Report": "CIP:4.158.2.129; CTRY:GB; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:outbound-uk1.az.dlp.m.darktrace.com;\n PTR:InfoDomainNonexistent; CAT:NONE;\n SFS:(13230040)(35042699022)(1800799024)(6049299003)(36860700016)(376014)(14060799003)(82310400026)(4053099003)(18002099003)(56012099003);\n DIR:OUT; SFP:1101;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "\n 8IsqTeZEtNyUYKSVaex1aRSfVUCVjniTA6lEgQJ7ud9Z/Yh+o92RTF2mtfAiCZeXOSG4xqEvbChiCMg3euIcw/itbrK67ARjKklFyHeKkZewtZcKfRcJKnAEj53dhYxR7UPsjXyA3pyThn2jwZasvGrHn8SqUBud1pjOjGjwpkKtDBmc3J8X0ry3Yqtm9LhSC6+YbxEeb5NVoMjGcevUg1O9O4tSC4hLBHSkFHzZtxI8kumpw6kSEFZz90d3V/1kKEt//2XkEXSDwPwXcP/4FS9wz3XwXy6HXCezhipFahZ8pM8NZ1pvu7lu3ezrKiJJVl5cdtLSlbZ24jYQqWjFmfqWN0ygqk8earQ3+i5db/7yhqgGRpaUGaSRieYCE0QSR2U7ogSwD2WImIF3ig8+q3r6GSlWmSKwjVc00S2yl6776Y9DvkrUmt+klfolI/jO", "X-OriginatorOrg": "arm.com", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "16 Apr 2026 12:16:52.5681 (UTC)", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 8a71ae27-e69a-4342-f517-08de9bb20b24", "X-MS-Exchange-CrossTenant-Id": "f34e5979-57d9-4aaa-ad4d-b122a662184d", "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[4.158.2.129];\n Helo=[outbound-uk1.az.dlp.m.darktrace.com]", "X-MS-Exchange-CrossTenant-AuthSource": "\n AMS1EPF0000004C.eurprd04.prod.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous", "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem", "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>,\n <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>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>", "Errors-To": "gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org" }, "content": "The example\n\n#include <stdint.h>\n#include <stddef.h>\n\nuint32_t crc32(const uint8_t *data, size_t length)\n{\n uint8_t i;\n uint32_t crc = 0xffffffff; // Initial value\n while (length--) {\n crc ^= (uint32_t)(*data++) << 24;\n#pragma GCC unroll 0\n for (i = 0; i < 8; ++i) {\n if (crc & 0x80000000)\n crc = (crc << 1) ^ 0x04C11DB7;\n else\n crc <<= 1;\n }\n }\n return crc;\n}\n\nwhen compiled with -Os -march=armv8-a increases the codesize significantly\nbecause it generates a loop that's as big as the original but adds a lookup\ntable of 255 bytes. This means it's actively making codesize bigger and\nintroduces a codesize regression from before the pass was added.\n\nThis patch disables the CRC table based expansion when compiling for size.\n\nBootstrapped Regtested on aarch64-none-linux-gnu,\narm-none-linux-gnueabihf, x86_64-pc-linux-gnu\n-m32, -m64 and no issues.\n\nOk for master? and backport to GCC 15?\n\nThanks,\nTamar\n\ngcc/ChangeLog:\n\n\tPR middle-end/124900\n\t* gimple-crc-optimization.cc (crc_optimization::optimize_crc_loop): Do\n\tnot expand to table when compiling for size.\n\ngcc/testsuite/ChangeLog:\n\n\tPR middle-end/124900\n\t* gcc.target/aarch64/crc-1.c: New test.\n\t* gcc.target/aarch64/crc-2.c: New test.\n\t* gcc.target/aarch64/crc-3.c: New test.\n\t* gcc.target/aarch64/crc-4.c: New test.\n\n---\n\n\n--", "diff": "diff --git a/gcc/gimple-crc-optimization.cc b/gcc/gimple-crc-optimization.cc\nindex fe13390d95c782b7f58bdadee0b2a46778f186fd..c8482580d25ee730a1de57c0d699ab125120e25b 100644\n--- a/gcc/gimple-crc-optimization.cc\n+++ b/gcc/gimple-crc-optimization.cc\n@@ -32,6 +32,7 @@ along with GCC; see the file COPYING3. If not see\n #include \"cfgloop.h\"\n #include \"tree-scalar-evolution.h\"\n #include \"crc-verification.h\"\n+#include \"internal-fn.h\"\n \n class crc_optimization {\n private:\n@@ -1260,6 +1261,18 @@ crc_optimization::optimize_crc_loop (gphi *output_crc)\n location_t loc;\n loc = EXPR_LOCATION (phi_result);\n \n+ /* If the target does not have an expansion for CRC optimally then the table\n+ based lookup will need at least 255-bytes of RODATA and won't be smaller\n+ than the original code itself. */\n+ if (optimize_size)\n+ {\n+ tree data_type = TREE_TYPE (m_data_arg);\n+ tree result_type = TREE_TYPE (phi_result);\n+ auto ty_pair = tree_pair (data_type, result_type);\n+ if (!direct_internal_fn_supported_p (ifn, ty_pair, OPTIMIZE_FOR_BOTH))\n+\treturn false;\n+ }\n+\n /* Add IFN call and write the return value in the phi_result. */\n gcall *call = gimple_build_call_internal (ifn, 3, m_crc_arg, m_data_arg,\n \t\t\t\t\t polynomial_arg);\ndiff --git a/gcc/testsuite/gcc.target/aarch64/crc-1.c b/gcc/testsuite/gcc.target/aarch64/crc-1.c\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..e47b73d02b74a74409db46574237423d76286b51\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/crc-1.c\n@@ -0,0 +1,24 @@\n+/* { dg-do compile } */\n+/* { dg-additional-options \"-Os -march=armv8-a -fdump-tree-crc -std=c99\" } */\n+\n+#include <stdint.h>\n+#include <stddef.h>\n+\n+uint32_t crc32(const uint8_t *data, size_t length)\n+{\n+ uint8_t i;\n+ uint32_t crc = 0xffffffff; // Initial value\n+ while (length--) {\n+ crc ^= (uint32_t)(*data++) << 24;\n+#pragma GCC unroll 0\n+ for (i = 0; i < 8; ++i) {\n+ if (crc & 0x80000000)\n+ crc = (crc << 1) ^ 0x04C11DB7;\n+ else\n+ crc <<= 1;\n+ }\n+ }\n+ return crc;\n+}\n+\n+/* { dg-final { scan-tree-dump-not {\\.CRC } \"crc\" } } */\ndiff --git a/gcc/testsuite/gcc.target/aarch64/crc-2.c b/gcc/testsuite/gcc.target/aarch64/crc-2.c\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..5cef000c9a6786c305da261d17f277660bc6c518\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/crc-2.c\n@@ -0,0 +1,24 @@\n+/* { dg-do compile } */\n+/* { dg-additional-options \"-Os -march=armv8-a+crypto -fdump-tree-crc -std=c99\" } */\n+\n+#include <stdint.h>\n+#include <stddef.h>\n+\n+uint32_t crc32(const uint8_t *data, size_t length)\n+{\n+ uint8_t i;\n+ uint32_t crc = 0xffffffff; // Initial value\n+ while (length--) {\n+ crc ^= (uint32_t)(*data++) << 24;\n+#pragma GCC unroll 0\n+ for (i = 0; i < 8; ++i) {\n+ if (crc & 0x80000000)\n+ crc = (crc << 1) ^ 0x04C11DB7;\n+ else\n+ crc <<= 1;\n+ }\n+ }\n+ return crc;\n+}\n+\n+/* { dg-final { scan-tree-dump-times {\\.CRC } 1 \"crc\" } } */\ndiff --git a/gcc/testsuite/gcc.target/aarch64/crc-3.c b/gcc/testsuite/gcc.target/aarch64/crc-3.c\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..6f9900525d3f58cf6d7af32d98568924c66d89f7\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/crc-3.c\n@@ -0,0 +1,24 @@\n+/* { dg-do compile } */\n+/* { dg-additional-options \"-O3 -march=armv8-a -fdump-tree-crc -std=c99\" } */\n+\n+#include <stdint.h>\n+#include <stddef.h>\n+\n+uint32_t crc32(const uint8_t *data, size_t length)\n+{\n+ uint8_t i;\n+ uint32_t crc = 0xffffffff; // Initial value\n+ while (length--) {\n+ crc ^= (uint32_t)(*data++) << 24;\n+#pragma GCC unroll 0\n+ for (i = 0; i < 8; ++i) {\n+ if (crc & 0x80000000)\n+ crc = (crc << 1) ^ 0x04C11DB7;\n+ else\n+ crc <<= 1;\n+ }\n+ }\n+ return crc;\n+}\n+\n+/* { dg-final { scan-tree-dump-times {\\.CRC } 1 \"crc\" } } */\ndiff --git a/gcc/testsuite/gcc.target/aarch64/crc-4.c b/gcc/testsuite/gcc.target/aarch64/crc-4.c\nnew file mode 100644\nindex 0000000000000000000000000000000000000000..9a51856f44c86e47eedc28af67e9f75231f87638\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/crc-4.c\n@@ -0,0 +1,24 @@\n+/* { dg-do compile } */\n+/* { dg-additional-options \"-O3 -march=armv8-a+crypto -fdump-tree-crc -std=c99\" } */\n+\n+#include <stdint.h>\n+#include <stddef.h>\n+\n+uint32_t crc32(const uint8_t *data, size_t length)\n+{\n+ uint8_t i;\n+ uint32_t crc = 0xffffffff; // Initial value\n+ while (length--) {\n+ crc ^= (uint32_t)(*data++) << 24;\n+#pragma GCC unroll 0\n+ for (i = 0; i < 8; ++i) {\n+ if (crc & 0x80000000)\n+ crc = (crc << 1) ^ 0x04C11DB7;\n+ else\n+ crc <<= 1;\n+ }\n+ }\n+ return crc;\n+}\n+\n+/* { dg-final { scan-tree-dump-times {\\.CRC } 1 \"crc\" } } */\n\n", "prefixes": [] }