Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.1/patches/2223793/?format=api
{ "id": 2223793, "url": "http://patchwork.ozlabs.org/api/1.1/patches/2223793/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/20260416082755.2036-1-tanshanshan@eswincomputing.com/", "project": { "id": 17, "url": "http://patchwork.ozlabs.org/api/1.1/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 }, "msgid": "<20260416082755.2036-1-tanshanshan@eswincomputing.com>", "date": "2026-04-16T08:27:55", "name": "[arm] Enable stm_case=5 in store_multiple_sequence", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "59f290c516c3b6b7c5b4e596b77dc1e9f0f8d920", "submitter": { "id": 92555, "url": "http://patchwork.ozlabs.org/api/1.1/people/92555/?format=api", "name": "覃珊珊", "email": "tanshanshan@eswincomputing.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/20260416082755.2036-1-tanshanshan@eswincomputing.com/mbox/", "series": [ { "id": 500107, "url": "http://patchwork.ozlabs.org/api/1.1/series/500107/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=500107", "date": "2026-04-16T08:27:55", "name": "[arm] Enable stm_case=5 in store_multiple_sequence", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/500107/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2223793/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2223793/checks/", "tags": {}, "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 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; dmarc=none (p=none dis=none)\n header.from=eswincomputing.com", "sourceware.org;\n spf=pass smtp.mailfrom=eswincomputing.com", "server2.sourceware.org;\n arc=none smtp.remote-ip=162.243.161.220" ], "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 4fxB4J5F32z1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 16 Apr 2026 18:28:47 +1000 (AEST)", "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 927854BA2E2D\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 16 Apr 2026 08:28:45 +0000 (GMT)", "from zg8tmtyylji0my4xnjeumjiw.icoremail.net\n (zg8tmtyylji0my4xnjeumjiw.icoremail.net [162.243.161.220])\n by sourceware.org (Postfix) with ESMTP id CEC8F4BA2E05\n for <gcc-patches@gcc.gnu.org>; Thu, 16 Apr 2026 08:28:19 +0000 (GMT)", "from E0005178LT.eswin.cn (unknown [10.64.112.126])\n by app2 (Coremail) with SMTP id TQJkCgA3TaCNneBpMSISAA--.14728S2;\n Thu, 16 Apr 2026 16:28:00 +0800 (CST)" ], "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 sourceware.org 927854BA2E2D", "OpenDKIM Filter v2.11.0 sourceware.org CEC8F4BA2E05" ], "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org CEC8F4BA2E05", "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org CEC8F4BA2E05", "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776328099; cv=none;\n b=SJj1eMjap2nrH5QT/yerVb/2oKdF4IiQRkyNcUTy401nfzs/OsoYGwYsc3WycFwPin7OZi5NTMFXccE0mCZ2Aha9OiV8FjOeZzihZ52bCC+SPPQzNds7E7/rzDo2fxLiisBrhxAAt95zwhkPdyYy3RKkv227KIK7q6I943iPAOk=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776328099; c=relaxed/simple;\n bh=P+VDQUve3e+fzoAemmGMWHba6YESTd5QjV1MlCaXkp8=;\n h=From:To:Subject:Date:Message-ID:MIME-Version;\n b=dGf3zGVBl6VV/YnnhNohpUmdxNFtLmAHP9VQxw5beNe2BVQXR5HkOA936h8LDLWiJzYmbJ3C5YbCS+K9CIZxyJl7Ha2RODW7RqeYHso9pXcRBwxxdIuM5aITU2tEwRjToOMyFKCTKuAbeSqMtX4biAt63WTYAaP80DMkOcUM8rw=", "ARC-Authentication-Results": "i=1; server2.sourceware.org", "From": "tanshanshan <tanshanshan@eswincomputing.com>", "To": "gcc-patches@gcc.gnu.org", "Cc": "Richard.Earnshaw@arm.com, kito.cheng@gmail.com, palmer@dabbelt.com,\n jeffreyalaw@gmail.com, tanshanshan@eswincomputing.com", "Subject": "[PATCH] [arm] Enable stm_case=5 in store_multiple_sequence", "Date": "Thu, 16 Apr 2026 16:27:55 +0800", "Message-ID": "<20260416082755.2036-1-tanshanshan@eswincomputing.com>", "X-Mailer": "git-send-email 2.47.1.windows.2", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-CM-TRANSID": "TQJkCgA3TaCNneBpMSISAA--.14728S2", "X-Coremail-Antispam": "1UD129KBjvJXoW7AF17Aw1DWw4kur17ur43trb_yoW8XF45pr\n srGw15t34rGa1fGF1DuFZ7u34UZws7Kr13tFZIvr97Jwn8tryIyF4DKasxua48Wr45Ar43\n ZF9YqrnF934DCaUanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2\n 9KBjDU0xBIdaVrnRJUUUkG14x267AKxVWUJVW8JwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0\n rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02\n 1l84ACjcxK6xIIjxv20xvE14v26w1j6s0DM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26r4U\n JVWxJr1l84ACjcxK6I8E87Iv67AKxVW0oVCq3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Gc\n CE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E\n 2Ix0cI8IcVAFwI0_Jr0_Jr4lYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJV\n W8JwACjcxG0xvY0x0EwIxGrwACjI8F5VA0II8E6IAqYI8I648v4I1lc7CjxVAaw2AFwI0_\n JF0_Jw1l42xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67\n AKxVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r126r1DMIIY\n rxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14\n v26r1j6r4UMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJVW8\n JwCI42IY6I8E87Iv6xkF7I0E14v26r1j6r4UYxBIdaVFxhVjvjDU0xZFpf9x0JUSNtxUUU\n UU=", "X-CM-SenderInfo": "pwdq2xxdqvxt3q6h245lqf0zpsxwx03jof0z/", "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 load_multiple_sequence function already supports ldm_case=5 to handle\nmemory references with arbitrary ARM-encodable constant offsets (via\nconst_ok_for_arm). However, the corresponding store path in\nstore_multiple_sequence lacked this capability, even though gen_stm_seq\nwas prepared to handle stm_case=5.\n\nThe change adds a check similar to load_multiple_sequence: when the\noffset is not zero but can be encoded as an ARM immediate (using\nconst_ok_for_arm), we now return stm_case = 5. This enables the\ngeneration of add+stm sequences for store operations, improving\ncode size and maintaining consistency between load and store\noptimizations.\n\ngcc/ChangeLog:\n * config/arm/arm.c (store_multiple_sequence): Add support for\n stm_case=5 using const_ok_for_arm to check offset encodability.\n\nSigned-off-by: tanshanshan <tanshanshan@eswincomputing.com>\n---\n gcc/config/arm/arm.cc | 3 +++\n 1 file changed, 3 insertions(+)", "diff": "diff --git a/gcc/config/arm/arm.cc b/gcc/config/arm/arm.cc\nindex 0a1f6612d07..5861849daae 100644\n--- a/gcc/config/arm/arm.cc\n+++ b/gcc/config/arm/arm.cc\n@@ -14907,6 +14907,9 @@ store_multiple_sequence (rtx *operands, int nops, int nops_total,\n stm_case = 3; /* stmda */\n else if (TARGET_32BIT && unsorted_offsets[order[nops - 1]] == -4)\n stm_case = 4; /* stmdb */\n+ else if (const_ok_for_arm (unsorted_offsets[order[0]])\n+\t || const_ok_for_arm (-unsorted_offsets[order[0]]))\n+ stm_case = 5;\n else\n return 0;\n \n", "prefixes": [ "arm" ] }