From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id D3FD6385843A; Mon, 26 Sep 2022 14:42:36 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D3FD6385843A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1664203356; bh=3ltsdsnlZtEfQc9rrwv2H+wpADCHniWrGlkoQ4HAauw=; h=From:To:Subject:Date:In-Reply-To:References:From; b=H+suPjvuUJHVB15gNC6HbtoD2nnE39vhV2HWt1dsYHQILfF6llVcat2DeTPkXbhNL pQl+QuW06MJ072E2MtLqwytMo8KZCozJzQZ8mP5RIWhyPm2I17qvExXshgDIBQ2GZt xNUcnBt3sJVPhwvF/ttZNqBpzBaJhbd/fG0H5Umk= From: "cvs-commit at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/107009] [13 Regression] massive unnecessary code blowup in vectorizer Date: Mon, 26 Sep 2022 14:42:35 +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: 13.0 X-Bugzilla-Keywords: missed-optimization X-Bugzilla-Severity: normal X-Bugzilla-Who: cvs-commit at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P1 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 13.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=3D107009 --- Comment #8 from CVS Commits --- The master branch has been updated by Aldy Hernandez : https://gcc.gnu.org/g:2460f7cdef7ef9c971de79271afc0db73687a272 commit r13-2876-g2460f7cdef7ef9c971de79271afc0db73687a272 Author: Aldy Hernandez Date: Fri Sep 23 19:47:33 2022 +0200 Set ranges from unreachable edges for all known ranges. In the conversion of DOM+evrp to DOM+ranger, we missed that evrp was exporting ranges for unreachable edges for all SSA names for which we have ranges for. Instead we have only been exporting ranges for the SSA name in the final conditional to the BB involving the unreachable edge. This patch adjusts adjusts DOM to iterate over the exports, similarly to what evrp was doing. Note that I also noticed that we don't calculate the nonzero bit mask for op1, when 0 =3D op1 & MASK. This isn't needed for this PR, since maybe_set_nonzero_bits() is chasing the definition and parsing the bitwise and on its own. However, I'll be adding the functionality for completeness sake, plus we could probably drop the maybe_set_nonzero_bits legacy call entirely. PR tree-optimization/107009 gcc/ChangeLog: * tree-ssa-dom.cc (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): Iterate over exports. gcc/testsuite/ChangeLog: * gcc.dg/tree-ssa/pr107009.c: New test.=