Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2216264/?format=api
{ "id": 2216264, "url": "http://patchwork.ozlabs.org/api/patches/2216264/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/20260326084442.3676380-1-eikansh.gupta@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": "<20260326084442.3676380-1-eikansh.gupta@oss.qualcomm.com>", "list_archive_url": null, "date": "2026-03-26T08:44:42", "name": "tree-ssa-dce: eliminate dead relaxed atomic loads with no LHS [PR123966]", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "5237639e43a9e98148be8cc0096f1fa849092bfd", "submitter": { "id": 92956, "url": "http://patchwork.ozlabs.org/api/people/92956/?format=api", "name": "Eikansh Gupta", "email": "eikansh.gupta@oss.qualcomm.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/20260326084442.3676380-1-eikansh.gupta@oss.qualcomm.com/mbox/", "series": [ { "id": 497553, "url": "http://patchwork.ozlabs.org/api/series/497553/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=497553", "date": "2026-03-26T08:44:42", "name": "tree-ssa-dce: eliminate dead relaxed atomic loads with no LHS [PR123966]", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/497553/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2216264/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2216264/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=NUwUl9HK;\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=Qf/p/OYP;\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 (2048-bit key,\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=NUwUl9HK;\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=Qf/p/OYP", "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.168.131" ], "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 4fhHRD6xYxz1yGD\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 26 Mar 2026 19:45:28 +1100 (AEDT)", "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 8D9944BA2E13\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 26 Mar 2026 08:45:26 +0000 (GMT)", "from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com\n [205.220.168.131])\n by sourceware.org (Postfix) with ESMTPS id D35744BA2E10\n for <gcc-patches@gcc.gnu.org>; Thu, 26 Mar 2026 08:44:54 +0000 (GMT)", "from pps.filterd (m0279865.ppops.net [127.0.0.1])\n by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 62Q69pIF1965553\n for <gcc-patches@gcc.gnu.org>; Thu, 26 Mar 2026 08:44:53 GMT", "from mail-pg1-f199.google.com (mail-pg1-f199.google.com\n [209.85.215.199])\n by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d4pymj0p8-1\n (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n for <gcc-patches@gcc.gnu.org>; Thu, 26 Mar 2026 08:44:53 +0000 (GMT)", "by mail-pg1-f199.google.com with SMTP id\n 41be03b00d2f7-c629a3276e9so1630615a12.2\n for <gcc-patches@gcc.gnu.org>; Thu, 26 Mar 2026 01:44:53 -0700 (PDT)", "from hu-eikagupt-hyd.qualcomm.com ([202.46.22.19])\n by smtp.gmail.com with ESMTPSA id\n 41be03b00d2f7-c76737f42dcsm1666331a12.4.2026.03.26.01.44.49\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 26 Mar 2026 01:44:51 -0700 (PDT)" ], "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 sourceware.org 8D9944BA2E13", "OpenDKIM Filter v2.11.0 sourceware.org D35744BA2E10" ], "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org D35744BA2E10", "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org D35744BA2E10", "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774514695; cv=none;\n b=VZ2R1S0Gg54TFneVwqR9l1MOe4dyz9BF3crcE+IayjmKHFYJQLTYVKoruz0k1t5NLX9IuDCtX0ySpQonjv0ElisMxkox0QpVg6ub1d875aRVIXOPDfBNRSdCpHWl6tAi5qJgzWkmMiPTgCz3kqAdxDv4ikqM9pyf954x04xmNGQ=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1774514695; c=relaxed/simple;\n bh=9ZMqtYprb6wwozP+kFOjtoUCAKZ6NrP9d88t4FaguIA=;\n h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-Id:\n MIME-Version;\n b=jybXBntWN9aBuHL7+QX2KxZZzx/1bwPKyPXIwtNwDfv090nY/coWJY3ZDqvaZ+4NPC25YtEte776r8dkDPKvUEtgjN99ZyvCEPLPrlCdHtzMx+ncVYCiTiQRCiiF4ze74BrUZuB5HcTWPRt3KzjwZ4yTzXlcoIqcX4hc9AsKDTc=", "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=E+JNbXg+k33JxXvAFzuW0iHFlfNiuAxt+WU\n SaMDTcHg=; b=NUwUl9HKuzLIYblnnMLP12PUdKnK8mYPuLGHTMluQuTeTqsx+Pt\n XTqymAsQnP3OWg1FMnRBwq6+jExxZtkibflNMxYIt7RWv0y/GGE04dqidZb6CYyK\n u5RRkxdB7icm5caaehr8ycOnLtCHZkPMFhz7TfSkNVGu/yt1J7kekBbhv3uTp5Mt\n +WnnviF/WNVkeyowpoh4bovVFyy4shYR9WF3kcislu6I1UsCF1+1zhc2K3KQzDTQ\n p1iYtRo6aDmbzJcpv3hJxvEtC0pMPutaYj2K1a4RMq8TkvacDtfA+FlGeVknxDzq\n f20JTHwJa94cTSb+ay3zNsnLAIgY6l/fvhA==", "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=oss.qualcomm.com; s=google; t=1774514693; x=1775119493; 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=E+JNbXg+k33JxXvAFzuW0iHFlfNiuAxt+WUSaMDTcHg=;\n b=Qf/p/OYPZ7ebfz/ZRfksbbja9KslrBmuvf4h0PSesL+d9xyCNFlJ+9vQknZcXsNHoE\n HdBfeG5rlwlYKa/LEhVEdd5rits8bokNnaCVYvNMOv1002JwAuobSju5H4r+J4e/EYrm\n ZVqC0Y0YZPW/GjnuMz21mNk/5Wbe8nJnP8bk9aczM4GheL7Ofwkce4Jp/I9rLKATgLXv\n fmsz24D4bHkt214UxDEwmaiHg4z6cd2lBmu2UIQ/er4VQi2uOEopBnSXrsEYDA9/1pVK\n Jof54XKfSz+akSG0kHStZcULaz45dWZ54k3WlSDmZUgM+ONVVZk1unIVu0kufkL+595n\n o8WA==" ], "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1774514693; x=1775119493;\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=E+JNbXg+k33JxXvAFzuW0iHFlfNiuAxt+WUSaMDTcHg=;\n b=V1z4/WPUZ2v5Q/1T1O2z0Cc+BIHJaToyChFVFFLe+MIhYvrGHJRFVmOBHpSKGKWOZG\n JY+/3QK6Q5bA0IqNrUdhw4lD4Gja7BhsXrfRNLy1Xki3wpuYC2OoICysqBwh4l94zSnO\n VZe2jddyrvhnK9p3lfXVu3uB012DlfMBYrgiZeTrKgBkGj1dzTRHJXE503sRfVtnkXta\n /GS7V7GlCnrWppWNpHMElGsJlpXQkzkXcG+VcVs8yOuWpzRs+irx+RT5nc58WSRZz48g\n WOuXBPrzc81YTEbUEj+pWPNkgnwzwhchw/6yuE6Y6pnliuZOcIGSkH6hoGJeZjwv3HzQ\n BIww==", "X-Gm-Message-State": "AOJu0Yz2xcoHPBYenuPYsMoPXbtEorHbFbgQDhoS2XSi9slA5RmxZjHd\n 4BMDr/wFcQGPfTwEjLWoOuivbTFUe1dwtOGIKEV20veDNqEVKZnCsD+cCRfdA9X6+KLaKlhYDc8\n TrQBY7cQ5efgmYu7V36zx97OI1cjFtwMRerh7Q6EYfBjKRkVnuyjPZoXG3K2cyCSEA9ft", "X-Gm-Gg": "ATEYQzwlKlS0BZTb0JgSY5huL1H8NH/HNA1dDaRMqRm/VsO+kfuRXXmtOZjnK1ZvJUG\n VazzYXHZ9OWNY3A9wB72sLaC0gaaWkSjReHBEWDX6t9hTa3/RwlZ78wQaSQO7BkjAXsys4xzC6A\n p41I6eQAhWYsh41ksl8iSKGuW6mO9FLGqIy/Q8O5epyPVs7haNLZr9DWsMlGj0/grz0VIHi9+2R\n rO9c878l0fmZi4v0NEx4aU3xXBiywwAdyyhomxTq2/xLvh3kDJRjwaAAWsDq3D3XN5UkWydmHPa\n 6Cf2kb+LsnEqcbuA3YohdGNxkYizzCM0DjrbMPWml9ycxWOVEy2vTRDzUHXFYmyNC5sj34Tjb1X\n YZNtUR1YzTXnQ4vnaum280eReatgv9hqJKuTuBEGvUuOwAJuEhlLLEwQ=", "X-Received": [ "by 2002:a05:6a20:3ca7:b0:398:6461:687a with SMTP id\n adf61e73a8af0-39c4aaa1e67mr7376574637.7.1774514692685;\n Thu, 26 Mar 2026 01:44:52 -0700 (PDT)", "by 2002:a05:6a20:3ca7:b0:398:6461:687a with SMTP id\n adf61e73a8af0-39c4aaa1e67mr7376549637.7.1774514692154;\n Thu, 26 Mar 2026 01:44:52 -0700 (PDT)" ], "From": "Eikansh Gupta <eikansh.gupta@oss.qualcomm.com>", "To": "gcc-patches@gcc.gnu.org", "Cc": "Eikansh Gupta <eikansh.gupta@oss.qualcomm.com>", "Subject": "[PATCH] tree-ssa-dce: eliminate dead relaxed atomic loads with no LHS\n [PR123966]", "Date": "Thu, 26 Mar 2026 14:14:42 +0530", "Message-Id": "<20260326084442.3676380-1-eikansh.gupta@oss.qualcomm.com>", "X-Mailer": "git-send-email 2.34.1", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-Proofpoint-ORIG-GUID": "xCtojpuv6WHyJQltywmhkPwYno18WYCh", "X-Proofpoint-Spam-Details-Enc": "AW1haW4tMjYwMzI2MDA2MiBTYWx0ZWRfX3cC2pkO1mTPw\n +04/8NXf77dSE0O3JKgNfNyyRJoAUja0ZDXBw3otYCcpn1GXape+pCMdv5A5yYKIBNPODSCf39N\n TjVizEWPv4h2t2DI7Ao8/fuM4y1w+N0vxYA/JHPn7+8oBvF04CxZ3zE9haY3/9rzOGBnoHA8Xaw\n G4JHf+hazSYkebvk19mS7ZUU9uIZ5KQSf8mM9jIQLip9+bzpD08kD76oG1ANzpU+0VudRdzLS8+\n ikLBOh0pDR/xkgwGqrAft3wecWftwK9/3YScdg8gZC60kz6H9J5NhKojzngziLqU/Ke+2SFZ5UM\n 2E9y8klO0TdloZCP+nUNxAV+Iw/fDHI8PTAWHUIezdwBaM7p7LtwaMzJs7m2cCcxYefvhHmdNFe\n oouiGZjJzcgeoic6IgbDy2ZGlOVxb/RRjEnQHTX6BISUrCEWS71K0poIrYs3sv4hU5F+8ebIK50\n ARjVxB3vj55LojDyKcA==", "X-Authority-Analysis": "v=2.4 cv=SvedKfO0 c=1 sm=1 tr=0 ts=69c4f205 cx=c_pps\n a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=fChuTYTh2wq5r3m49p7fHw==:17\n a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22\n a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8\n a=0HEUfKhkY0tIicNJuRcA:9 a=_Vgx9l1VpLgwpw_dHYaR:22", "X-Proofpoint-GUID": "xCtojpuv6WHyJQltywmhkPwYno18WYCh", "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-03-26_02,2026-03-24_01,2025-10-01_01", "X-Proofpoint-Spam-Details": "rule=outbound_notspam policy=outbound score=0\n bulkscore=0 malwarescore=0 suspectscore=0 lowpriorityscore=0 phishscore=0\n clxscore=1015 adultscore=0 impostorscore=0 spamscore=0 priorityscore=1501\n classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0\n reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603260062", "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": "A relaxed atomic load whose result is never used has no observable\neffect: the value is discarded and __ATOMIC_RELAXED provides no\ninter-thread synchronisation guarantee.\n\nFix this by adding an early-return check for\nBUILT_IN_ATOMIC_LOAD_1/2/4/8/16 calls that have no LHS and a\ncompile-time-constant relaxed memory order.\n\n PR tree-optimization/123966\n\ngcc/ChangeLog:\n\t* tree-ssa-dce.cc (mark_stmt_if_obviously_necessary):\n Don't mark a relaxed atomic load with no LHS as necessary.\n\ngcc/testsuite/ChangeLog:\n\t* gcc.dg/tree-ssa/pr123966.c: New test.\n\nSigned-off-by: Eikansh Gupta <eikansh.gupta@oss.qualcomm.com>\n---\n gcc/testsuite/gcc.dg/tree-ssa/pr123966.c | 71 ++++++++++++++++++++++++\n gcc/tree-ssa-dce.cc | 23 ++++++++\n 2 files changed, 94 insertions(+)\n create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/pr123966.c", "diff": "diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr123966.c b/gcc/testsuite/gcc.dg/tree-ssa/pr123966.c\nnew file mode 100644\nindex 00000000000..7658f1d1945\n--- /dev/null\n+++ b/gcc/testsuite/gcc.dg/tree-ssa/pr123966.c\n@@ -0,0 +1,71 @@\n+/* { dg-do compile } */\n+/* { dg-options \"-O2 -fdump-tree-cddce1\" } */\n+\n+unsigned char g1;\n+unsigned short g2;\n+unsigned int g4;\n+unsigned long long g8;\n+\n+/* Relaxed loads, result unused -- must be eliminated. */\n+void test_relaxed_1 (void)\n+{\n+ unsigned char r;\n+ __atomic_load (&g1, &r, 0);\n+}\n+\n+void test_relaxed_2 (void)\n+{\n+ unsigned short r;\n+ __atomic_load (&g2, &r, 0);\n+}\n+\n+void test_relaxed_4 (void)\n+{\n+ unsigned int r;\n+ __atomic_load (&g4, &r, 0);\n+}\n+\n+void test_relaxed_8 (void)\n+{\n+ unsigned long long r;\n+ __atomic_load (&g8, &r, 0);\n+}\n+\n+/* Non-relaxed orders, result unused -- must be preserved. */\n+void test_acquire (void)\n+{\n+ unsigned int r;\n+ __atomic_load (&g4, &r, 2);\n+}\n+\n+void test_seqcst (void)\n+{\n+ unsigned int r;\n+ __atomic_load (&g4, &r, 5);\n+}\n+\n+void test_consume (void)\n+{\n+ unsigned int r;\n+ __atomic_load (&g4, &r, 1);\n+}\n+\n+/* Runtime order -- must be preserved (order unknown at compile time). */\n+void test_runtime (int order)\n+{\n+ unsigned int r;\n+ __atomic_load (&g4, &r, order);\n+}\n+\n+/* Relaxed load but result is used -- must be preserved. */\n+unsigned int test_used (void)\n+{\n+ unsigned int r;\n+ __atomic_load (&g4, &r, 0);\n+ return r;\n+}\n+\n+/* { dg-final { scan-tree-dump-times \"__atomic_load_1\" 0 \"cddce1\" } } */\n+/* { dg-final { scan-tree-dump-times \"__atomic_load_2\" 0 \"cddce1\" } } */\n+/* { dg-final { scan-tree-dump-times \"__atomic_load_8\" 0 \"cddce1\" } } */\n+/* { dg-final { scan-tree-dump-times \"__atomic_load_4\" 5 \"cddce1\" } } */\ndiff --git a/gcc/tree-ssa-dce.cc b/gcc/tree-ssa-dce.cc\nindex 7932607e889..a63cac2fa30 100644\n--- a/gcc/tree-ssa-dce.cc\n+++ b/gcc/tree-ssa-dce.cc\n@@ -70,6 +70,7 @@ along with GCC; see the file COPYING3. If not see\n #include \"tree-ssa.h\"\n #include \"ipa-modref-tree.h\"\n #include \"ipa-modref.h\"\n+#include \"memmodel.h\"\n \n static struct stmt_stats\n {\n@@ -408,6 +409,28 @@ mark_stmt_if_obviously_necessary (gimple *stmt, bool aggressive)\n \tif (is_removable_cxa_atexit_call (call))\n \t return;\n \n+\t/* A relaxed atomic load with no LHS has no observable effect:\n+\t the value is discarded and relaxed ordering provides no\n+\t inter-thread synchronisation guarantee. Don't mark it\n+\t necessary so DCE can remove it. */\n+\tif (!gimple_call_lhs (call)\n+\t && gimple_call_builtin_p (call, BUILT_IN_NORMAL))\n+\t switch (DECL_FUNCTION_CODE (gimple_call_fndecl (call)))\n+\t {\n+\t case BUILT_IN_ATOMIC_LOAD_1:\n+\t case BUILT_IN_ATOMIC_LOAD_2:\n+\t case BUILT_IN_ATOMIC_LOAD_4:\n+\t case BUILT_IN_ATOMIC_LOAD_8:\n+\t case BUILT_IN_ATOMIC_LOAD_16:\n+\t tree model_arg = gimple_call_arg (call, 1);\n+\t if (TREE_CODE (model_arg) == INTEGER_CST\n+\t\t && is_mm_relaxed (memmodel_from_int (tree_to_uhwi (model_arg))))\n+\t\treturn;\n+\t break;\n+\t default:\n+\t break;\n+\t }\n+\n \t/* IFN_GOACC_LOOP calls are necessary in that they are used to\n \t represent parameter (i.e. step, bound) of a lowered OpenACC\n \t partitioned loop. But this kind of partitioned loop might not\n", "prefixes": [] }