From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id BDD17385829E; Thu, 18 Jan 2024 07:37:18 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BDD17385829E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1705563438; bh=n9fGsv3cX6RaFXLaPnOluuxSvnEariE3dXq7m7c3Mlw=; h=From:To:Subject:Date:In-Reply-To:References:From; b=YRofUHP64oav1XTtB/Lnl1/Zx2SZtiu9/E9gh4T9dMnuuJqcQskL6ew0ewqmrzRGY GtbNTeK+huh1JKMHw6d2HTVC1ZEDkFhy8WXjWj/BYYCgf8YP8N9R6NbZaqfDX66wQ2 qL8/ZyVUjvmCyqZ9YchcaoitYPnjCtLMleSrHDNY= From: "cvs-commit at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/113374] [14 regression] ICE in find_uses_to_rename_use Date: Thu, 18 Jan 2024 07:37:17 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: tree-optimization X-Bugzilla-Version: 14.0 X-Bugzilla-Keywords: ice-on-valid-code X-Bugzilla-Severity: normal X-Bugzilla-Who: cvs-commit at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Resolution: X-Bugzilla-Priority: P1 X-Bugzilla-Assigned-To: rguenth 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=3D113374 --- Comment #10 from GCC Commits --- The master branch has been updated by Richard Biener : https://gcc.gnu.org/g:0f38666680d6ad0e40c4a8b6d94b2c93931cdf42 commit r14-8206-g0f38666680d6ad0e40c4a8b6d94b2c93931cdf42 Author: Richard Biener Date: Wed Jan 17 13:24:22 2024 +0100 tree-optimization/113374 - early break vect and virtual operands The following fixes wrong virtual operands being used for peeled early breaks where we can have different live ones and for multiple exits it makes sure to update the correct PHI arguments. I've introduced SET_PHI_ARG_DEF_ON_EDGE so we can avoid using a wrong edge to compute the PHI arg index from. I've took the liberty to understand the code again and refactor and comment it a bit differently. The main functional change is that we preserve the live virtual operand on all exits. PR tree-optimization/113374 * tree-ssa-operands.h (SET_PHI_ARG_DEF_ON_EDGE): New. * tree-vect-loop.cc (move_early_exit_stmts): Update virtual LC PHIs. * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_c= fg): Refactor. Preserve virtual LC PHIs on all exits. * gcc.dg/vect/vect-early-break_106-pr113374.c: New testcase.=