From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 0EEFF3857C74; Thu, 28 Oct 2021 11:42:11 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0EEFF3857C74 From: "rguenth at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug ipa/102982] [12 Regression] Dead Code Elimination Regression at -O3 (trunk vs 11.2.0) Date: Thu, 28 Oct 2021 11:42:10 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: ipa X-Bugzilla-Version: 12.0 X-Bugzilla-Keywords: missed-optimization X-Bugzilla-Severity: normal X-Bugzilla-Who: rguenth at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 12.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_status keywords target_milestone everconfirmed cc cf_reconfirmed_on component 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: Thu, 28 Oct 2021 11:42:11 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D102982 Richard Biener changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Keywords| |missed-optimization Target Milestone|--- |12.0 Ever confirmed|0 |1 CC| |hubicka at gcc dot gnu.org, | |jamborm at gcc dot gnu.org, | |marxin at gcc dot gnu.org Last reconfirmed| |2021-10-28 Component|tree-optimization |ipa --- Comment #3 from Richard Biener --- I'd say that's indeed "unfortunate". The main missing optimization though = is treating c[0][0][0] =3D 0; as a "store" when trying to make 'c' constant, not realizing it stores the same value as the static initializer (after making it readonly we'd have to elide all such stores though). That would fix the testcase as to what is likely the desired trigger of the foo() call removal. Honza/Martin?=