From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id C348C3858415; Sat, 20 Nov 2021 16:30:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C348C3858415 From: "cvs-commit at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/103226] [12 Regression] Recent change to copy-headers causes execution failure for gcc.dg/torture/pr80974 Date: Sat, 20 Nov 2021 16:30:22 +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: 12.0 X-Bugzilla-Keywords: wrong-code X-Bugzilla-Severity: normal X-Bugzilla-Who: cvs-commit at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P4 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 12.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 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Nov 2021 16:30:22 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D103226 --- Comment #22 from CVS Commits --- The master branch has been updated by Jeff Law : https://gcc.gnu.org/g:7950c96ca667ddaab9d6e894da3958ebc2e2dccb commit r12-5432-g7950c96ca667ddaab9d6e894da3958ebc2e2dccb Author: Jeff Law Date: Sat Nov 20 11:20:07 2021 -0500 Clobber the condition code in the bfin doloop patterns Per Aldy's excellent, but tough to follow analysis in PR 103226, this p= atch fixes the bfin-elf regression. In simplest terms the doloop patterns on this port may clobber the condition code register, but they do not expose that until after register allocat= ion. That would be fine, except that other patterns have exposed CC earlier.= As a result the dataflow, particularly for CC, is incorrect. This leads the register allocators to assume that a value in CC outside= the loop is still valid inside the loop when in fact, the value has been clobbered. This is what caused pr80974 to start failing. With this fix, not only do we fix the pr80974 regression, but we fix ~20 other execution failures in the port. It also reduces test time for the port from ~90 minutes to ~60 minutes. PR tree-optimization/103226 gcc/ * config/bfin/bfin.md (doloop pattern, splitter and expander): Clobber CC.=