{"id":2229788,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2229788/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/patch/c71ec978-3eae-4bc0-9b4a-cf8663ec73c7@redhat.com/","project":{"id":17,"url":"http://patchwork.ozlabs.org/api/1.1/projects/17/?format=json","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":"<c71ec978-3eae-4bc0-9b4a-cf8663ec73c7@redhat.com>","date":"2026-04-28T18:10:36","name":"[pushed,IRA] : Fix implicit preference calculation","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"35f7f450eb7b0ccfe46b361360722ff2b95562a9","submitter":{"id":4455,"url":"http://patchwork.ozlabs.org/api/1.1/people/4455/?format=json","name":"Vladimir Makarov","email":"vmakarov@redhat.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/gcc/patch/c71ec978-3eae-4bc0-9b4a-cf8663ec73c7@redhat.com/mbox/","series":[{"id":501918,"url":"http://patchwork.ozlabs.org/api/1.1/series/501918/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/list/?series=501918","date":"2026-04-28T18:10:36","name":"[pushed,IRA] : Fix implicit preference calculation","version":1,"mbox":"http://patchwork.ozlabs.org/series/501918/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2229788/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2229788/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\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=hshCQirW;\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 (1024-bit key,\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=hshCQirW","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.133.124"],"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 4g4pR213Gdz1yHv\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 29 Apr 2026 04:11:24 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id BD3424BBC0A0\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 28 Apr 2026 18:11:22 +0000 (GMT)","from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.133.124])\n by sourceware.org (Postfix) with ESMTP id 961034BB3BEE\n for <gcc-patches@gcc.gnu.org>; Tue, 28 Apr 2026 18:10:41 +0000 (GMT)","from mail-qt1-f198.google.com (mail-qt1-f198.google.com\n [209.85.160.198]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-530-RqY-nTqTOC2vuHyFBwmscg-1; Tue, 28 Apr 2026 14:10:39 -0400","by mail-qt1-f198.google.com with SMTP id\n d75a77b69052e-50ff051e189so79927141cf.2\n for <gcc-patches@gcc.gnu.org>; Tue, 28 Apr 2026 11:10:39 -0700 (PDT)","from [192.168.0.111] (192-0-141-76.cpe.teksavvy.com. [192.0.141.76])\n by smtp.gmail.com with ESMTPSA id\n d75a77b69052e-5100da76364sm24072221cf.11.2026.04.28.11.10.36\n for <gcc-patches@gcc.gnu.org>\n (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n Tue, 28 Apr 2026 11:10:37 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org BD3424BBC0A0","OpenDKIM Filter v2.11.0 sourceware.org 961034BB3BEE"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 961034BB3BEE","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 961034BB3BEE","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1777399841; cv=none;\n b=xUw7wlRCZ14GgE9qENiwY5NGa9dxfPr+spsxOCiKW2wGi46xQjwcUt6fAz3vtyALS8a+f6alt+wte0e8lYSEcoiaoTknOFWboM7WW7gkbiJTT3fMEsRCi0bX0Mikmj60HsG5TtIOJpbWmf5yjckZmjt5I8sq3RFFu/IRUQ8eTYs=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1777399841; c=relaxed/simple;\n bh=oOlnbLvb1Jpv5/hSd8F1Psd+XX9jvm1ge9g7GG8dZ5I=;\n h=DKIM-Signature:Message-ID:Date:MIME-Version:From:Subject:To;\n b=HG914TJo1xQvq+b7lJQB0tqX75WRvXyHHLXLlXBSJckFhyZCBCkOE86Bk0JlDnf4DI938SO3Oc/TcpxnPx54SnmbadOk/NdYwVt/CyPj+6AOlWgN2rMSUE6AyN/RhkB1AqZxlXYy8rcSCO0RIoJSGQpFgPzsz3TIyz/aBK2f+PU=","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=1777399841;\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=YX8eoR8H/6TdropUcLt9Dvl60yrzsKEin+QOQ0WcNw4=;\n b=hshCQirW/mppvZbmS6YwAaR7IUc2oYXH3iQpaWTeDKuNv2Lu2beI4EXOcr3WbqXP7hX3Lj\n cu9/QAvrwJs2J8kx+e5mg6aLvrl7VikTNOCAXpMqWpkF4nxR+3n36KgKTKskvtIQfhzREr\n K6E74rZ2yIz3ZElEySjRtC+NjZqa3yQ=","X-MC-Unique":"RqY-nTqTOC2vuHyFBwmscg-1","X-Mimecast-MFC-AGG-ID":"RqY-nTqTOC2vuHyFBwmscg_1777399839","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1777399839; x=1778004639;\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=ZQzOWRBOJjqlgT+nIjN5SRQhHtZ3daZp2r5kC1EhhDo=;\n b=mQbXE2aIvRwwYfaZedVIxGW9f+ObCxQ9//ZSEwsdJ/1PKsAcBY2uwvnUg62DajvqGr\n LFeKvSVCCwu/m0lfkY4HY22nBGnZIllH/d7FIMQfShGVn2tkTkkOCOzVx2TFh6xAP3fo\n oyjo0/1G0FCwaln710rLOF9ID6hg39WXSaVWpsER/2qPqjEbyCZWlLMvYs2nOnfsOm4Y\n W4OiUQ8prQj9Ue4+r4OtUj4MDru+0WJGcn+1lEl5PTgXct0vqw6jpyGL07TNGdMnPvk6\n nzT3w9UA2R13aJPTydZCmQW6BFN0y8G+PTZ1Qw6vwh3d8KX18oCxwz9iyPnSp46+PY9t\n EaMQ==","X-Gm-Message-State":"AOJu0YyOoJ/sr/dXrXZkjvxjFyjt8HETFkPejpRCV5Opl9naLZIHg4lm\n nFrcqJZfQ7Q1w+CV7MzDpwkAzIVuhO4t50OBc/7O79pqpzYBP+qHF8mCAvMKQycJRafNxMcb9Wj\n Qpt+mXcAe2Puv/3oSwWk9fJMzJsQB1ZRv7OIX8SbxUD5tFf/yZ8XsBp4aM8DQBuvgEX2PTPJHPZ\n OzuByQ8CyJo9AX0GRPCoY/G4f4LRwXKD3k13/JjqMCi2s=","X-Gm-Gg":"AeBDietPM89W9xAphx7BJ2LGelsBKCLVy0fXUJTIky731gELMRc6ad1NOTJjE5jR+TN\n Cg+A+2CTNEVb+LkfDIIt7oDqG2dvD1KS3N+sWvI0T0j11Ge0DgXJGViyaZSw+RG100fMAuh9/BE\n 1uSDi1z/rmtby7VzcyivQq+qit/0VgxWw1qJcKpfl6AaLDunmng66lpd+RdT/aYTgD6Jzg09jXx\n l32/93S7niGqIG8uO7DaAlUFzJhym4HlriXr7EfP0c18L1dLFIvtY69TcnK5OLw2toeQFWRe39D\n Z/NNvEI6dGNPnU+1WQ74s0fPU38YUtIZiH3hWyaGiboN+ZuJOr95SLo+G5kAQPQT2bU0jq8df9V\n n0jA/YghDxOWDaz555sQfECqrRvn/vB6T/zl7rFiI2H7sT9cHgqv9eFNPz0+gdoUBGg==","X-Received":["by 2002:a05:622a:580a:b0:50b:5336:1d20 with SMTP id\n d75a77b69052e-5100e1efec8mr50330721cf.53.1777399838564;\n Tue, 28 Apr 2026 11:10:38 -0700 (PDT)","by 2002:a05:622a:580a:b0:50b:5336:1d20 with SMTP id\n d75a77b69052e-5100e1efec8mr50329931cf.53.1777399838000;\n Tue, 28 Apr 2026 11:10:38 -0700 (PDT)"],"Message-ID":"<c71ec978-3eae-4bc0-9b4a-cf8663ec73c7@redhat.com>","Date":"Tue, 28 Apr 2026 14:10:36 -0400","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","From":"Vladimir Makarov <vmakarov@redhat.com>","Subject":"[pushed][IRA]: Fix implicit preference calculation","To":"\"gcc-patches@gcc.gnu.org\" <gcc-patches@gcc.gnu.org>","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"Pi4h7QN7yTxJiEeiohA_t9itIuFBkcIwF52h-cJo9ig_1777399839","X-Mimecast-Originator":"redhat.com","Content-Type":"multipart/mixed; boundary=\"------------Au5KT7Xp0Agl09SAFOEe9qGV\"","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 patch fixes a bug in implicit pref calculation.\n\nThe patch was successfully bootstrapped and tested on x86_64, aarch64, \nand ppc64le.","diff":"commit b47f63d4226f2297a33cf10dac0fd236f189a2bf\nAuthor: Vladimir N. Makarov <vmakarov@redhat.com>\nDate:   Tue Apr 28 08:36:13 2026 -0400\n\n    [IRA]: Fix implicit preference calculation.\n    \n    When searching prefered hard regs from too strict constraints we can ignore\n    some alternatives for subsequent operands.  This can result in worse code\n    generation.  The patch fixes this.\n    \n    gcc/ChangeLog:\n    \n            * ira-lives.cc (ira_implicitly_set_insn_hard_regs): Use the same\n            start prefered for all operand.\n\ndiff --git a/gcc/ira-lives.cc b/gcc/ira-lives.cc\nindex 04e586343c8..a6b3eff1ab8 100644\n--- a/gcc/ira-lives.cc\n+++ b/gcc/ira-lives.cc\n@@ -956,12 +956,14 @@ ira_implicitly_set_insn_hard_regs (HARD_REG_SET *set,\n \t  mode = (GET_CODE (op) == SCRATCH\n \t\t  ? GET_MODE (op) : PSEUDO_REGNO_MODE (regno));\n \t  cl = NO_REGS;\n-\t  for (; (c = *p); p += CONSTRAINT_LEN (c, p))\n+\t  for (alternative_mask curr_preferred = preferred;\n+\t       (c = *p);\n+\t       p += CONSTRAINT_LEN (c, p))\n \t    if (c == '#')\n-\t      preferred &= ~ALTERNATIVE_BIT (0);\n+\t      curr_preferred &= ~ALTERNATIVE_BIT (0);\n \t    else if (c == ',')\n-\t      preferred >>= 1;\n-\t    else if (preferred & 1)\n+\t      curr_preferred >>= 1;\n+\t    else if (curr_preferred & 1)\n \t      {\n \t\tcl = reg_class_for_constraint (lookup_constraint (p));\n \t\tif (cl != NO_REGS)\n","prefixes":["pushed","IRA"]}