From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 70421385DC1A; Wed, 20 Dec 2023 08:19:42 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 70421385DC1A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1703060382; bh=szSSJA9jo971bMKfdY3kOqE87ZFOSPPPxDUBa8KkfCE=; h=From:To:Subject:Date:In-Reply-To:References:From; b=fTgUyF4NW/DuYtFsYOIMtZc141+Os8+Sb5PWhXSZKuH50fAZ3aJPzs2C8OHyzsd2k 7WeZVNpziBGh7WwceYkkXxZSzda+3rF4frrymw3r3K4DPFtIhRtGJ6c2hDibejV0oS gc2vCi330qBa9DIzKSxQrGN1D2DrYTHqTTw/O+/Y= From: "cvs-commit at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug rtl-optimization/113002] ICE in commit_one_edge_insertion, at cfgrtl.cc:2095 with new -finline-stringops Date: Wed, 20 Dec 2023 08:19:40 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: rtl-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: P3 X-Bugzilla-Assigned-To: aoliva at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- 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=3D113002 --- Comment #4 from GCC Commits --- The master branch has been updated by Alexandre Oliva : https://gcc.gnu.org/g:672db38c6f0723ca57fe8ff4c43422341e7fb857 commit r14-6735-g672db38c6f0723ca57fe8ff4c43422341e7fb857 Author: Alexandre Oliva Date: Tue Dec 19 22:17:42 2023 -0300 -finline-stringops: allow expansion into edges [PR113002] Builtin expanders for memset and memcpy may involve conditionals and loops, but their sequences may be end up emitted in edges. Alas, commit_one_edge_insertion rejects sequences that end with a jump, a requirement that makes sense for insertions after expand, but not so much during expand. During expand, jumps may appear in the middle of the insert sequence as much as in the end, and it's only after committing edge insertions out of PHI nodes that we go through the entire function splitting blocks where needed, so relax the assert in commit_one_edge_insertion so that jumps are accepted during expand even at the end of the sequence. for gcc/ChangeLog PR rtl-optimization/113002 * cfgrtl.cc (commit_one_edge_insertion): Tolerate jumps in the inserted sequence during expand. for gcc/testsuite/ChangeLog PR rtl-optimization/113002 * gcc.dg/vect/pr113002.c: New.=