Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2196411/?format=api
{ "id": 2196411, "url": "http://patchwork.ozlabs.org/api/patches/2196411/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/942621fa-6573-4031-b937-c889b95a237b@redhat.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": "<942621fa-6573-4031-b937-c889b95a237b@redhat.com>", "list_archive_url": null, "date": "2026-02-13T19:02:40", "name": "[pushed,PR124079,LRA] : Fix broken s390 SPEC2017 benchmarks", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "d623f40729428133313ce9c5c4833ef5f1f8a078", "submitter": { "id": 4455, "url": "http://patchwork.ozlabs.org/api/people/4455/?format=api", "name": "Vladimir Makarov", "email": "vmakarov@redhat.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/942621fa-6573-4031-b937-c889b95a237b@redhat.com/mbox/", "series": [ { "id": 492132, "url": "http://patchwork.ozlabs.org/api/series/492132/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=492132", "date": "2026-02-13T19:02:40", "name": "[pushed,PR124079,LRA] : Fix broken s390 SPEC2017 benchmarks", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/492132/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2196411/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2196411/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=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=BgWUFjOU;\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=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=BgWUFjOU", "sourceware.org; dmarc=pass (p=quarantine dis=none)\n header.from=redhat.com", "sourceware.org; spf=pass smtp.mailfrom=redhat.com", "server2.sourceware.org;\n arc=none smtp.remote-ip=170.10.129.124" ], "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 4fCM5b4Vtjz1xvQ\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 14 Feb 2026 06:03:26 +1100 (AEDT)", "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 1BC7F4BAD143\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 13 Feb 2026 19:03:24 +0000 (GMT)", "from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.129.124])\n by sourceware.org (Postfix) with ESMTP id 742994B9DB74\n for <gcc-patches@gcc.gnu.org>; Fri, 13 Feb 2026 19:02:46 +0000 (GMT)", "from mail-qv1-f69.google.com (mail-qv1-f69.google.com\n [209.85.219.69]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-121-XPTcYRO4OSeyM76pi5bskA-1; Fri, 13 Feb 2026 14:02:44 -0500", "by mail-qv1-f69.google.com with SMTP id\n 6a1803df08f44-896ff58f17aso63855126d6.2\n for <gcc-patches@gcc.gnu.org>; Fri, 13 Feb 2026 11:02:44 -0800 (PST)", "from [192.168.0.120] (192-0-141-76.cpe.teksavvy.com. [192.0.141.76])\n by smtp.gmail.com with ESMTPSA id\n 6a1803df08f44-8971cddb9efsm81911356d6.51.2026.02.13.11.02.41\n for <gcc-patches@gcc.gnu.org>\n (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n Fri, 13 Feb 2026 11:02:42 -0800 (PST)" ], "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 sourceware.org 1BC7F4BAD143", "OpenDKIM Filter v2.11.0 sourceware.org 742994B9DB74" ], "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 742994B9DB74", "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 742994B9DB74", "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1771009366; cv=none;\n b=Mk/eMmiwomQ10+mjz3yHzq9iqSFai1f/gF4K6N4OsLg1cL98J4XQpW/E/yBTW0bAk1TZln1VuG1PPNGCmHZ962r4wZA4Q6sUkCfDZTIh231+nnE1nBqBm2bC2beI85wG0GP2oC8hCAI5PTVSS5ttYxUy+5tTnLR8stS6wWLpM1U=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1771009366; c=relaxed/simple;\n bh=SE8rIdE3ly9W2u4Im6Yt1xC4gH/z8RHNuAObt+kSVv4=;\n h=DKIM-Signature:Message-ID:Date:MIME-Version:From:Subject:To;\n b=bqioXewVt1+UetjiQAL+yJu1wHvAJTglsCwlP6QQ8mrSHctnfWFpH1DtGqmL598IbJ/xw0VGMYFpzMb7EyRESDVB8b9E5yLSYHBBoan6j5DK/NcKVbdUliCyC21e8kL7FjHcipjf63Kn905Mgo7vUOTUx/aSiGHsynCNg96jlp0=", "ARC-Authentication-Results": "i=1; server2.sourceware.org", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1771009366;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:mime-version:mime-version:content-type:content-type;\n bh=yk+z4fKVJeIUHa/o3L1dIJ5cbHnwkneYuhHhuPg3b10=;\n b=BgWUFjOUDc5bFAfuhPIlBA+aY+80Palo+juIytNMzp3872+uA9Clf/L38y3MzG87UBUqpZ\n 82bUjZxXLG8BC15FEBXyfScsEGsckQ3BtowrV9rcIomp68yY3qT4DZCeKgvp6JHHQIlllX\n Os2/y7dxqD9lyChDVikkJOPff6c7IS8=", "X-MC-Unique": "XPTcYRO4OSeyM76pi5bskA-1", "X-Mimecast-MFC-AGG-ID": "XPTcYRO4OSeyM76pi5bskA_1771009363", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1771009363; x=1771614163;\n h=to:subject:from:content-language:user-agent:mime-version:date\n :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=i+ik5FxPnvaJu42UF4ksTFt0WJJ5q/eMpC8ALifFbco=;\n b=JJDahR5qcZxac6eCh5oFlopHGzl4vXCSL33tKj+p0XzJBBTpDcx7nogcR0vI1mckHx\n 0yeeCAyYW3MXkEk9SqR22bVDSVYTPmuRfDRufr1ro7Kafy//B8cXx1FG7ZCpgcurIPb2\n nu4YbFNLRe/F7U71swqtQ9GVgh2D8dsb41+KPRju4HDlnNBmyZhBrznNNRxC+O8IV/wv\n EB3RqCFpaZ+eibtSdwAAAHnaceg6fWHvm0ABpJ02mFJpci9LYRXCc2pSUreJvjlMxa+W\n 7BFcDcQH3FJsHWmKzoIYkYY1XmFd9LRILBewSwZBH/7swKvL9kS7CoPvarZUk+W36VMj\n BPoA==", "X-Gm-Message-State": "AOJu0YxXq+p4QJU3RWZDHFoOOMc+RlAnF9Jb+3Y+eKmGj9dirvHy2C+u\n FOLC9nJuAF4stl51yufygwqcU8nQ5IvFdi8r2HwnmA6KCKSm8j3HYY1YtF4LFmKtQB0eF/tG9TU\n RiRii4h7cTI5eJbYMd2OI0xvLIDUvTI0JqvDU60H20zZq5uVYGE0xKwCnBYaBbkUKg5qTFEWLJI\n S6ys2GWJJvr0HSUbueN6ZufbtzzGFo8Yf1SI70mdoOEfk=", "X-Gm-Gg": "AZuq6aKHd38YXeoylOJlBFmIkBzDmqB2425uGUqcHxEytRJKR4P5XCBXcXmMbPOzdw7\n y5Igvr6mY4tnnhtZUF/pkYHTxaxqsbMFlvwNAXk9XIeBZyFLpOgTeQ+y4wXka0Zyw0gGeeAMesC\n RYPzHLFx5Ht9HsERpjNXylsgmAtAGKvXOYrODWzxlslCmy1flapjw8HW0YvdtSaiuN4gzFdaSih\n meP8SMbUVV7BEcgu2PIE2t503cw+XWyYfpp3Wfx7Ij6W4NEb68naVd0Xy1PxVvY3kRk2KoOtyjH\n v2ZJDgWYfC8T252aPlDxRfVUMRJImnu52QkBPK94L5cFY+j3tzZySDqyVh0MpNgsAa56p81B0kb\n JFQHbeNk8YbIKhxxxYcXSOXk1qKUMLFiCv2ehwchf3LZeqBRMOzEB3sM=", "X-Received": [ "by 2002:a05:6214:401e:b0:896:6bed:17e3 with SMTP id\n 6a1803df08f44-897361a906amr39969216d6.43.1771009363547;\n Fri, 13 Feb 2026 11:02:43 -0800 (PST)", "by 2002:a05:6214:401e:b0:896:6bed:17e3 with SMTP id\n 6a1803df08f44-897361a906amr39968556d6.43.1771009362915;\n Fri, 13 Feb 2026 11:02:42 -0800 (PST)" ], "Message-ID": "<942621fa-6573-4031-b937-c889b95a237b@redhat.com>", "Date": "Fri, 13 Feb 2026 14:02:40 -0500", "MIME-Version": "1.0", "User-Agent": "Mozilla Thunderbird", "From": "Vladimir Makarov <vmakarov@redhat.com>", "Subject": "[pushed][PR124079, LRA]: Fix broken s390 SPEC2017 benchmarks", "To": "\"gcc-patches@gcc.gnu.org\" <gcc-patches@gcc.gnu.org>", "X-Mimecast-Spam-Score": "0", "X-Mimecast-MFC-PROC-ID": "kXaOVHreRD5nupHpX_pngY2kDAos_aiMEmiym8FYu5k_1771009363", "X-Mimecast-Originator": "redhat.com", "Content-Type": "multipart/mixed; boundary=\"------------zZjk4ToI06sBBj4Eb1Bhp0jV\"", "Content-Language": "en-US", "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 following patch fixes\n\nhttps://gcc.gnu.org/bugzilla/show_bug.cgi?id=124079\n\nThe patch was successfully tested on sparc64 and bootstrapped and tested \non x86-64, aarch64, ppc64be.", "diff": "commit 498983d96193517a4854deb2775dc4478063199c\nAuthor: Vladimir N. Makarov <vmakarov@redhat.com>\nDate: Fri Feb 13 13:58:41 2026 -0500\n\n [PR124079, LRA]: Fix broken s390 SPEC2017 benchmarks\n \n Recent patch for PR121191 broke compilation of s390 SPEC benchmarks.\n This patch fixes it. The patch uses existing lra_constraint_offset to\n calculate offsets. The same function is used to find invalid matching\n reloads.\n \n gcc/ChangeLog:\n \n PR rtl-optimization/124079\n * lra-constraints.cc (get_matching_reload_reg_subreg): Add new arg\n rclass. Use another condition to use lowpart_subreg. Use lra_constraint_offset\n to calculate the subreg offset.\n (get_reload_reg, match_reload): Pass the new arg.\n \n gcc/testsuite/ChangeLog:\n \n PR rtl-optimization/124079\n * gcc.target/s390/pr124079.c: New.\n\ndiff --git a/gcc/lra-constraints.cc b/gcc/lra-constraints.cc\nindex 8c8c9d69a96..2b5b4ba1bbd 100644\n--- a/gcc/lra-constraints.cc\n+++ b/gcc/lra-constraints.cc\n@@ -682,16 +682,25 @@ canonicalize_reload_addr (rtx addr)\n return addr;\n }\n \n-/* Return rtx accessing reload REG matching another reload reg in MODE. */\n+/* Return rtx accessing reload REG of RCLASS matching another reload reg in\n+ MODE. */\n static rtx\n-get_matching_reload_reg_subreg (machine_mode mode, rtx reg)\n+get_matching_reload_reg_subreg (machine_mode mode, rtx reg,\n+\t\t\t\tenum reg_class rclass)\n {\n- if (SCALAR_INT_MODE_P (mode) && SCALAR_INT_MODE_P (GET_MODE (reg)))\n+ int hard_regno = ira_class_hard_regs[rclass][0];\n+ if (subreg_regno_offset (hard_regno,\n+\t\t\t GET_MODE (reg),\n+\t\t\t subreg_lowpart_offset (mode, GET_MODE (reg)),\n+\t\t\t mode) == 0)\n /* For matching scalar int modes generate the right subreg byte offset for\n BE targets -- see call of reload.cc:operands_match_p in\n recog.cc:constrain_operands. */\n return lowpart_subreg (mode, reg, GET_MODE (reg));\n- return gen_rtx_SUBREG (mode, reg, 0);\n+ int offset = (lra_constraint_offset (hard_regno, GET_MODE (reg))\n+\t\t- lra_constraint_offset (hard_regno, mode)) * UNITS_PER_WORD;\n+ lra_assert (offset >= 0);\n+ return gen_rtx_SUBREG (mode, reg, offset);\n }\n \n /* Create a new pseudo using MODE, RCLASS, EXCLUDE_START_HARD_REGS, ORIGINAL or\n@@ -778,7 +787,7 @@ get_reload_reg (enum op_type type, machine_mode mode, rtx original,\n \t\tif (maybe_lt (GET_MODE_SIZE (GET_MODE (reg)),\n \t\t\t GET_MODE_SIZE (mode)))\n \t\t continue;\n-\t\treg = get_matching_reload_reg_subreg (mode, reg);\n+\t\treg = get_matching_reload_reg_subreg (mode, reg, new_class);\n \t\tif (reg == NULL_RTX || GET_CODE (reg) != SUBREG)\n \t\t continue;\n \t }\n@@ -1146,7 +1155,7 @@ match_reload (signed char out, signed char *ins, signed char *outs,\n \t = lra_create_new_reg_with_unique_value (inmode, in_rtx, goal_class,\n \t\t\t\t\t\t exclude_start_hard_regs,\n \t\t\t\t\t\t \"\");\n-\t new_out_reg = get_matching_reload_reg_subreg (outmode, reg);\n+\t new_out_reg = get_matching_reload_reg_subreg (outmode, reg, goal_class);\n \t LRA_SUBREG_P (new_out_reg) = 1;\n \t /* If the input reg is dying here, we can use the same hard\n \t register for REG and IN_RTX. We do it only for original\n@@ -1165,7 +1174,7 @@ match_reload (signed char out, signed char *ins, signed char *outs,\n \t\t\t\t\t\t goal_class,\n \t\t\t\t\t\t exclude_start_hard_regs,\n \t\t\t\t\t\t \"\");\n-\t new_in_reg = get_matching_reload_reg_subreg (inmode, reg);\n+\t new_in_reg = get_matching_reload_reg_subreg (inmode, reg, goal_class);\n \t /* NEW_IN_REG is non-paradoxical subreg. We don't want\n \t NEW_OUT_REG living above. We add clobber clause for\n \t this. This is just a temporary clobber. We can remove\ndiff --git a/gcc/testsuite/gcc.target/s390/pr124079.c b/gcc/testsuite/gcc.target/s390/pr124079.c\nnew file mode 100644\nindex 00000000000..6b5ad0caa6a\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/s390/pr124079.c\n@@ -0,0 +1,8 @@\n+/* PR rtl-optimization/124079 */\n+/* { dg-do compile } */\n+/* { dg-options \"-O2 -march=z13\" } */\n+\n+int foo (const char *a, const char *b)\n+{\n+ return __builtin_strcmp (a, b);\n+}\n", "prefixes": [ "pushed", "PR124079", "LRA" ] }