Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2196558/?format=api
{ "id": 2196558, "url": "http://patchwork.ozlabs.org/api/patches/2196558/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/20260215020638.835820-1-andrew.pinski@oss.qualcomm.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": "<20260215020638.835820-1-andrew.pinski@oss.qualcomm.com>", "list_archive_url": null, "date": "2026-02-15T02:06:38", "name": "forwprop: Fix copy prop aggregates into return statements slightly [PR124099]", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "458967c34ccd7a96afac68519c7e2ba29aee9d44", "submitter": { "id": 91428, "url": "http://patchwork.ozlabs.org/api/people/91428/?format=api", "name": "Andrew Pinski", "email": "andrew.pinski@oss.qualcomm.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/20260215020638.835820-1-andrew.pinski@oss.qualcomm.com/mbox/", "series": [ { "id": 492199, "url": "http://patchwork.ozlabs.org/api/series/492199/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=492199", "date": "2026-02-15T02:06:38", "name": "forwprop: Fix copy prop aggregates into return statements slightly [PR124099]", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/492199/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2196558/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2196558/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 (2048-bit key;\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=HRTOqoe2;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=gxVku7oI;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::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 (2048-bit key,\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=HRTOqoe2;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=gxVku7oI", "sourceware.org; dmarc=none (p=none dis=none)\n header.from=oss.qualcomm.com", "sourceware.org;\n spf=pass smtp.mailfrom=oss.qualcomm.com", "server2.sourceware.org;\n arc=none smtp.remote-ip=205.220.180.131" ], "Received": [ "from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::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 4fD8Rv43qtz1xwj\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 15 Feb 2026 13:07:20 +1100 (AEDT)", "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 65C014B9DB6E\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 15 Feb 2026 02:07:15 +0000 (GMT)", "from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com\n [205.220.180.131])\n by sourceware.org (Postfix) with ESMTPS id 2670F4BA23EF\n for <gcc-patches@gcc.gnu.org>; Sun, 15 Feb 2026 02:06:44 +0000 (GMT)", "from pps.filterd (m0279868.ppops.net [127.0.0.1])\n by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 61EMuumO3711196\n for <gcc-patches@gcc.gnu.org>; Sun, 15 Feb 2026 02:06:43 GMT", "from mail-pg1-f198.google.com (mail-pg1-f198.google.com\n [209.85.215.198])\n by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cagcf1r2w-1\n (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n for <gcc-patches@gcc.gnu.org>; Sun, 15 Feb 2026 02:06:43 +0000 (GMT)", "by mail-pg1-f198.google.com with SMTP id\n 41be03b00d2f7-c6dde310601so1353659a12.1\n for <gcc-patches@gcc.gnu.org>; Sat, 14 Feb 2026 18:06:43 -0800 (PST)", "from xeond2.wrightpinski.org ([98.97.36.20])\n by smtp.gmail.com with ESMTPSA id\n d2e1a72fcca58-824c6b95278sm7786808b3a.53.2026.02.14.18.06.40\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Sat, 14 Feb 2026 18:06:41 -0800 (PST)" ], "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 sourceware.org 65C014B9DB6E", "OpenDKIM Filter v2.11.0 sourceware.org 2670F4BA23EF" ], "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 2670F4BA23EF", "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 2670F4BA23EF", "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1771121204; cv=none;\n b=faNuNXxZstQAL6/O/kPIFBhrQmew/SfZF0MmM7UaR2J17yZMJZ86vEFPY7NeRt5QcSl1DTMldAkAMSe9D1Rw2NWm33u25RHwEuXk6jgaYp71gEGlopu2aULQuuocugDiDH6FM1TwfoXbjZ3SYYicdMMNT8RMPjJjq8bnnIImrCw=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1771121204; c=relaxed/simple;\n bh=XppAJ/X0eD7PCpPVI+u9IAT3tB9wYEev++TAorw5EAY=;\n h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID:\n MIME-Version;\n b=JQGyJW0DmEhaobNpC/2N4BremdaKOtT1CrvpRBuPeQIFPt2D3dZlMQVhYoKPLNjIBeBifcym2qROa5YbAy+TYKJMuniwYePGY2lnAlph8HlMVlfdkqaUaZB4j7W3OF3GkinsevA3x65a8JW6MZHWwIydBrIUgKVwtFM7okqYOvU=", "ARC-Authentication-Results": "i=1; server2.sourceware.org", "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n cc:content-transfer-encoding:date:from:message-id:mime-version\n :subject:to; s=qcppdkim1; bh=ovO/5Moy6MjlYv1+VyYcTuqMBvODYbFlCoL\n XDXbRMPk=; b=HRTOqoe29DrvIHEMAvhptbz80DkyL0o+wNj9/7xT+BpwgGFSRdv\n 7CgPDym8HSw1kM9oNU7KOHHKmRPbLI6HI7DWjiFmb7yaqVLHnhGinoZj1HP50md+\n DSVE6ruoq92su6dY7MyekQwqNOiFDLyd4vxzh0VEPKYlN86A/jpOzc2i9EHTuweD\n 8Pxz909U0LlLzu8GnrNxu/W+H7mLxU52lmj2KicAPjWyW7JzqYkZxec1uOP7E1tU\n 1Tqm0uQkdkWgJv/LJeoIwMvZpZuptFvzhr3V7yrj48tRjfHynKpSwiozkBI3xcZ5\n xYIejYd3+g4xO7bH2+z3a2QjoxSNf1uNZUQ==", "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=oss.qualcomm.com; s=google; t=1771121202; x=1771726002; darn=gcc.gnu.org;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:from:to:cc:subject:date:message-id:reply-to;\n bh=ovO/5Moy6MjlYv1+VyYcTuqMBvODYbFlCoLXDXbRMPk=;\n b=gxVku7oILXnGhkBOFOhM91XVVsCYU/YBnfoq3Xv3dCMfPgecSPgr3RNHLmVESMjtv6\n hMOZnH7ryJllspLkb7YDnQJp1gKT1GPCHbHKNRslJfFui4xPeiAxf2YyVu0OQhZ1YcVH\n Rs8LO34KMakBNpQPacZtU1qTnHf5bqlLdsw7nCy8PQtjNgrCEGikqfE6+9mLhlH/hMez\n k7Wp4xwCI2MOqOOD+jfMQlt0FGfYIvv7f9DYBARoomYG6dCjiZJFhoPSmw/Vda/e5NHk\n /Scpi4Uo9VjFTWIFGOk1zBPNlP5W9GQCCzqvYiGPGh7/tFPYUxppngvYM7r550pv2EmS\n x5Og==" ], "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1771121202; x=1771726002;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=ovO/5Moy6MjlYv1+VyYcTuqMBvODYbFlCoLXDXbRMPk=;\n b=RHKOsz8GRyFJOT8Hyxw+4Y8tTqVVLrLyH+usyTtqTMfVSgcvOewnWU0pLpySyVqXAz\n tXs50/4tvXLTDlmbHFhGPI4QBiiiyToyobvcemV/zS9/3YhwvlXBmLtOO6s+T94n5mxN\n xRlFZArg5pQ8BFl9+YuSKLzoNOnZvzKl9tbNwwTEF1C9qyqqmwxZ1TV/iq5N/9wuoF06\n Ur1SgS/bmBlZ29WWQ0KtYvYP0Py0SXeZyr/DnXzW677zCTkJBZgChAgu/rE5j7S7Ex9v\n DtstGJvm3GLnhyap4Sw+gsUEuB+cU+EShUwYdbe8dm1l9N7WdjtjcMYATB8Yo+K4Bshz\n SlWQ==", "X-Gm-Message-State": "AOJu0Yx2IfLM0dGkaFMaXT9ZzHodHXBthZOoNH8xUZfYV+I7feOgQ/14\n g16p4ivDiwJM+hVAaKHjyyeryxYeIV+mhMxZFrWikFyGjzv8oQwEVAjj+tvogtI6K1XLD0ieLmy\n SQEGV9C0Jf9WCLf15FPqtN4C7Rf9P8XKpr43Sbx9WWT9weKuvWLb2WpqRCXy2W66oL/LT", "X-Gm-Gg": "AZuq6aIhRHoIfMmRGrl3BvwK19e5ijn8/eqWxedZX/TRqpYSdajDueciZIYAsWenNyJ\n Kqx4qP+kaKHkBC/dYF75XAeuKMy9iBdlX2LzLCvs0ZmW5Z8lQYR7b+3ETz1kOo9nCkzNdGJ4Ksw\n 8UiKKNV28Nr+r8bE83wlxTMZ8xv5ccKkNAAeEJSnfMemMjoDPJRr9Be2l3KUEGwf4nzE9mszpiq\n tdPWWqaP0K4S4bS1Xy+2GiCdYnJUNjmF/eOTbdLm/27bmRxFRhG/zd+K+fm+sypH6R8Cb9ZDjIr\n 5gjqfmAPR7MuaMMlAMoJc+MjwXuEsFVdMhI/Updbuw4vfgiXCz9JDk6RVYVpODut5KgZlP51iOw\n 8XC4IkOAXezIumVyrIt9wS6l+F64yWkINGaWVtaHxtxq0AjU=", "X-Received": [ "by 2002:a05:6a00:12d7:b0:81f:5ec1:8bcd with SMTP id\n d2e1a72fcca58-824c949ad7dmr5825732b3a.20.1771121201997;\n Sat, 14 Feb 2026 18:06:41 -0800 (PST)", "by 2002:a05:6a00:12d7:b0:81f:5ec1:8bcd with SMTP id\n d2e1a72fcca58-824c949ad7dmr5825714b3a.20.1771121201439;\n Sat, 14 Feb 2026 18:06:41 -0800 (PST)" ], "From": "Andrew Pinski <andrew.pinski@oss.qualcomm.com>", "To": "gcc-patches@gcc.gnu.org", "Cc": "Andrew Pinski <andrew.pinski@oss.qualcomm.com>", "Subject": "[PATCH] forwprop: Fix copy prop aggregates into return statements\n slightly [PR124099]", "Date": "Sat, 14 Feb 2026 18:06:38 -0800", "Message-ID": "<20260215020638.835820-1-andrew.pinski@oss.qualcomm.com>", "X-Mailer": "git-send-email 2.43.0", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-Proofpoint-GUID": "LMfW3uWAlMG_v77jFIVWU8cFGWKK6QTS", "X-Proofpoint-ORIG-GUID": "LMfW3uWAlMG_v77jFIVWU8cFGWKK6QTS", "X-Authority-Analysis": "v=2.4 cv=Sc76t/Ru c=1 sm=1 tr=0 ts=69912a33 cx=c_pps\n a=Qgeoaf8Lrialg5Z894R3/Q==:117 a=OFTEO+MNSLyTRHJ1mgLEyg==:17\n a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22\n a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=EUspDBNiAAAA:8\n a=IYmy_zZtiygCukagNK0A:9 a=x9snwWr2DeNwDh03kgHS:22", "X-Proofpoint-Spam-Details-Enc": "AW1haW4tMjYwMjE1MDAxMiBTYWx0ZWRfX9jT/PrISr7rC\n hSWKh6GR4CsgJjSh28hKBHh5MvmfaHiNNbbKUKQhRuxPxZAQby5VKQTyvKNCCy+aynp9qY4p4UH\n rlkpF6q5PDspb1/Q1o//wVDo7sb+ZKOTTz5LcBWZsylCp2RPhnYfzY5D2o8KlQ59fFNWkysd2BI\n Af1Ec5+k9RX1ozeVvLCyyTLQZRUwEW5I02X0LjlYtJ6581lzLpQShRAsDsExMbwdh0vtoS+68eG\n gcwnJbNIfYA7MuuTrBIoXqS4yqYtPPgGCPCwfAuBe5wYBfcFGzkD27gITdUB7weMpWF9F/8msxp\n px8AiuTNc7p8ic/4ADfyukJthFhO6RqWnUgqiloSrkaPyO/yoq+6gV4KIFCjS550RUXkMgTNC9W\n iw3AjwSVrfBya94DCtAtTrGe71BuBS/mI1DbvTt2y0NT8/+f+NX79ntzCOd+j0ZyVwblVmNKbZk\n TWGiRqYQIwxQSUXXx8Q==", "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-02-14_03,2026-02-13_01,2025-10-01_01", "X-Proofpoint-Spam-Details": "rule=outbound_notspam policy=outbound score=0\n bulkscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 phishscore=0\n impostorscore=0 spamscore=0 clxscore=1015 suspectscore=0 malwarescore=0\n classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0\n reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602150012", "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": "So a few more restrictions are needed here.\nFirst we don't need to change if the return statement is already\na RESULT_DECL nor deference of the RESULT_DECL.\nSecond proping a global variable into the return is ok for the most\npart except enumtls does not know how to expand that correctly and things\ngo down hill. So restrict to non global vars now.\n\nBootstrapped and tested on x86_64-linux-gnu.\nAlso tested the testcase with TLS turned off so enumtls ran.\n\n\tPR tree-optimization/124099\n\ngcc/ChangeLog:\n\n\t* tree-ssa-forwprop.cc (optimize_agr_copyprop_return): Don't do anything\n\tif the return is already result decl or a deference of result decl.\n\tAlso reject non local var decls.\n\ngcc/testsuite/ChangeLog:\n\n\t* gcc.dg/torture/tls-return-1.c: New test.\n\nSigned-off-by: Andrew Pinski <andrew.pinski@oss.qualcomm.com>\n---\n gcc/testsuite/gcc.dg/torture/tls-return-1.c | 12 ++++++++++++\n gcc/tree-ssa-forwprop.cc | 15 +++++++++++++--\n 2 files changed, 25 insertions(+), 2 deletions(-)\n create mode 100644 gcc/testsuite/gcc.dg/torture/tls-return-1.c", "diff": "diff --git a/gcc/testsuite/gcc.dg/torture/tls-return-1.c b/gcc/testsuite/gcc.dg/torture/tls-return-1.c\nnew file mode 100644\nindex 00000000000..aa56e42904c\n--- /dev/null\n+++ b/gcc/testsuite/gcc.dg/torture/tls-return-1.c\n@@ -0,0 +1,12 @@\n+/* { dg-do compile } */\n+/* { dg-options \"\" } */\n+\n+\n+/* PR tree-optimization/124099 */ \n+\n+struct s1 { int t[2];};\n+__thread struct s1 t;\n+struct s1 g()\n+{ \n+ return t;\n+}\ndiff --git a/gcc/tree-ssa-forwprop.cc b/gcc/tree-ssa-forwprop.cc\nindex c4fde7b4aae..a8a8e296b32 100644\n--- a/gcc/tree-ssa-forwprop.cc\n+++ b/gcc/tree-ssa-forwprop.cc\n@@ -1734,11 +1734,22 @@ optimize_agr_copyprop_return (gimple *defstmt, greturn *use,\n || is_gimple_min_invariant (rvalue)\n || TYPE_VOLATILE (TREE_TYPE (rvalue)))\n return;\n+\n+ /* `<retval> = t;` is already the best it could be.\n+ Likewise `*<retval>_N(D) = t`. */\n+ if (TREE_CODE (rvalue) == RESULT_DECL\n+ || (TREE_CODE (rvalue) == MEM_REF\n+\t && TREE_CODE (TREE_OPERAND (rvalue, 0)) == SSA_NAME\n+\t && TREE_CODE (SSA_NAME_VAR (TREE_OPERAND (rvalue, 0)))\n+\t == RESULT_DECL))\n+ return;\n tree newsrc = new_src_based_on_copy (rvalue, dest, src);\n if (!newsrc)\n return;\n- /* Currently only support decls, could support VCEs too? */\n- if (!DECL_P (newsrc))\n+ /* Currently only support non-global vars.\n+ See PR 124099 on enumtls not supporting expanding for GIMPLE_RETURN.\n+ FIXME: could support VCEs too? */\n+ if (!VAR_P (newsrc) || is_global_var (newsrc))\n return;\n if (dump_file && (dump_flags & TDF_DETAILS))\n {\n", "prefixes": [] }