From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 2DD793858C60; Mon, 15 Jan 2024 15:26:03 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2DD793858C60 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1705332363; bh=EpZDtzwRG9FzmvQHVo++1ghDhINslFh/iZMA/aLKAB0=; h=From:To:Subject:Date:In-Reply-To:References:From; b=mPlX5SOC8H0EZhF1pszI6cm7iXZi83565nk9ce6InUJGBilaAkmWBNwfUMqpk2yMC 3gF1QeA+yZzJm1ApukreNFQeOETfz7P7b31vZthT0Fc6A73P7g3xneJYsKt0gB5YAq Y+Y/B0Jgx0fXPZadfmd3wWj6jWLQDbR5PLLOe3wY= From: "cvs-commit at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug middle-end/113354] [14 Regression] : unable to find a register to spill on mips Date: Mon, 15 Jan 2024 15:26:02 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: middle-end X-Bugzilla-Version: 14.0 X-Bugzilla-Keywords: ice-on-valid-code, ra X-Bugzilla-Severity: normal X-Bugzilla-Who: cvs-commit at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 14.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D113354 --- Comment #4 from GCC Commits --- The master branch has been updated by Vladimir Makarov : https://gcc.gnu.org/g:76bc70387d936e3c929368c265ce71e8b239e7b7 commit r14-7248-g76bc70387d936e3c929368c265ce71e8b239e7b7 Author: Vladimir N. Makarov Date: Mon Jan 15 10:19:39 2024 -0500 [PR113354][LRA]: Fixing LRA failure on building MIPS GCC My recent patch for PR112918 triggered a hidden bug in LRA on MIPS. A pseudo is matched to a register constraint and assigned to a hard registers at the first constraint sub-pass but later it is matched to X constraint. Keeping this pseudo in the register (MD0) prevents to use the same register for another pseudo in the insn and this results in LRA failure. The patch fixes this by spilling the pseudo at the constraint subpass when the chosen alternative constraint not require hard register anymore. gcc/ChangeLog: PR middle-end/113354 * lra-constraints.cc (curr_insn_transform): Spill pseudo only u= sed in the insn if the corresponding operand does not require hard register anymore.=