From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 7A1443858407; Mon, 5 Feb 2024 08:37:27 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7A1443858407 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1707122247; bh=hK4BXvt+PJG0gvRxKcQOTTWz+dc+Ei8AgS3ZqWbq7Ts=; h=From:To:Subject:Date:In-Reply-To:References:From; b=R7RUG45zdQCCZbaehORZigHA/sDD2zQIsidX9djxyLNfeeMFlZSl0V5Lx+8HgTl8r vvhra69tljWZNYIy8W8rGE+OdPr8/kipsXWYyENA6MF/VhiQf6q9/yYSKm1hJvvRCC W5szDRe1BKA7Olj6R93XBZWybZoL/o/SpR+UOvdw= From: "cvs-commit at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/113059] [14 regression] fftw fails tests for -O3 -m32 -march=znver2 since r14-6210-ge44ed92dbbe9d4 Date: Mon, 05 Feb 2024 08:36:25 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 14.0 X-Bugzilla-Keywords: wrong-code X-Bugzilla-Severity: normal X-Bugzilla-Who: cvs-commit at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P1 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=3D113059 --- Comment #24 from GCC Commits --- The master branch has been updated by Jakub Jelinek : https://gcc.gnu.org/g:d413df070ba5efadd2fb8b6c6aa6003b8cae617b commit r14-8797-gd413df070ba5efadd2fb8b6c6aa6003b8cae617b Author: Jakub Jelinek Date: Mon Feb 5 09:33:26 2024 +0100 i386: Clear REG_UNUSED and REG_DEAD notes from the IL at the end of vzeroupper pass [PR113059] The move of the vzeroupper pass from after reload pass to after postreload_cse helped only partially, CSE-like passes can still invalid= ate those notes (especially REG_UNUSED) if they use some earlier register holding some value later on in the IL. So, either we could try to move it one pass further after gcse2 and hope no later pass invalidates the notes, or the following patch attempts to restore the REG_DEAD/REG_UNUSED state from GCC 13 and earlier, where the LRA or reload passes remove all REG_DEAD/REG_UNUSED notes and the n= otes reappear only at the start of dse2 pass when it calls df_note_add_problem (); df_analyze (); So, effectively NEXT_PASS (pass_postreload_cse); NEXT_PASS (pass_gcse2); NEXT_PASS (pass_split_after_reload); NEXT_PASS (pass_ree); NEXT_PASS (pass_compare_elim_after_reload); NEXT_PASS (pass_thread_prologue_and_epilogue); passes operate without those notes in the IL. While in GCC 14 mode switching computes the notes problem at the start = of vzeroupper, the patch below removes them at the end of the pass again, = so that the above passes continue to operate without them. 2024-02-05 Jakub Jelinek PR target/113059 * config/i386/i386-features.cc (rest_of_handle_insert_vzerouppe= r): Remove REG_DEAD/REG_UNUSED notes at the end of the pass before df_analyze call.=