From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 805763858C62; Thu, 1 Feb 2024 08:09:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 805763858C62 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1706774950; bh=OdQs8GSzXuar60QcDyYmOiVNN1I5WFQydNC9qupF2r0=; h=From:To:Subject:Date:In-Reply-To:References:From; b=TLL/zqIkMBrbwTOrPYat22tDprbdtjF06GrbVZ0mgsJaDssnzoNP1SnYhdueFp0eK JiEvgUY4ziKIf2tHGlAWxTPLosZeOF+irtr6DjNFTkcqjEsXVtjk7usw3AVV0TNZpw YVHEK+WIDCp5NEWM7tp1FOIQMnMbbgB8ajV1L/sg= From: "rguenth at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/113693] ICE: in check_loop_closed_ssa_def, at tree-ssa-loop-manip.cc:647 with _BitInt() at -O2 -fdbg-cnt=vect_loop:1 Date: Thu, 01 Feb 2024 08:09:09 +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: rguenth at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: rguenth at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_status assigned_to 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=3D113693 Richard Biener changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot = gnu.org --- Comment #2 from Richard Biener --- We have [local count: 955630224]: # _236 =3D PHI <_101(11)> _110 =3D .UADDC (prephitmp_250, 0, _101); and _101 is defined in the loop just exited. This is broken by #0 set_ssa_use_from_ptr (use=3D0x7ffff7fb29c0,=20 val=3D) at /space/rguenther/src/gcc/gcc/ssa-iterators.h:297 #1 0x00000000019c17c3 in replace_exp (op_p=3D0x7ffff7fb29c0,=20 val=3D) at /space/rguenther/src/gcc/gcc/tree-ssa-propagate.cc:1150 #2 0x00000000019c18b4 in propagate_value (op_p=3D0x7ffff7fb29c0,=20 val=3D) at /space/rguenther/src/gcc/gcc/tree-ssa-propagate.cc:1173 #3 0x00000000019fb999 in eliminate_dom_walker::eliminate_stmt ( this=3D0x7fffffffd610, b=3D,=20 gsi=3D0x7fffffffd2f0) at /space/rguenther/src/gcc/gcc/tree-ssa-sccvn.cc= :7179 #4 0x00000000019ff727 in process_bb (avail=3D...,=20 bb=3D, bb_visited=3Dfalse,=20 iterate_phis=3Dfalse, iterate=3Dfalse, eliminate=3Dtrue, do_region=3Dtr= ue,=20 exit_bbs=3D0x7fffffffd890, skip_phis=3Dfalse) at /space/rguenther/src/gcc/gcc/tree-ssa-sccvn.cc:8190 #5 0x0000000001a016a5 in do_rpo_vn_1 (fn=3D0x7ffff71e2000,=20 entry=3D 12)>, exit_bbs=3D0x7fffffffd890,=20 iterate=3Dfalse, eliminate=3Dtrue, skip_entry_phis=3Dfalse, kind=3DVN_W= ALKREWRITE) at /space/rguenther/src/gcc/gcc/tree-ssa-sccvn.cc:8642 #6 0x0000000001a01d09 in do_rpo_vn (fn=3D0x7ffff71e2000,=20 entry=3D 12)>, exit_bbs=3D0x7fffffffd890,=20 iterate=3Dfalse, eliminate=3Dtrue, skip_entry_phis=3Dfalse, kind=3DVN_W= ALKREWRITE) at /space/rguenther/src/gcc/gcc/tree-ssa-sccvn.cc:8747 #7 0x0000000001b1717d in (anonymous namespace)::pass_vectorize::execute ( this=3D0x485ab10, fun=3D0x7ffff71e2000) at /space/rguenther/src/gcc/gcc/tree-vectorizer.cc:1389 but region VN is supposed to preserve LC SSA. We're value-numbering the region with entry edge 11 -> 12 (that's the exit edge from the previous loop). We try to include the preheader here which I think is fine because the vectorizer puts stmts there. The way to preserve LC SSA, making the op available, isn't working here because of the change that treats out-of-region defs as available.=