From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 5BD92382C168; Thu, 27 Oct 2022 00:42:04 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5BD92382C168 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1666831324; bh=FvFgAIHEPQBFdp8IfNJjzUbiDEpaFdlDofzBONHI9v0=; h=From:To:Subject:Date:In-Reply-To:References:From; b=mr6hI2RCEaokOpDhHUCG1IsOH+KcnMXYEZQYoyWPQCFg/YWCSbyKSpKhLwo0AmvH5 EyQPXcBmcFPWDmJoWSARMJF32BviA1DAublPvyVMpuM3g6s04YpRJHShO4BmQnAex6 x9aTrHoo9MGN/gPgEonr/RlX0/Ui0mOCX12wujQE= From: "pinskia at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug rtl-optimization/105653] [10/11/12/13 Regression] '-fcompare-debug' failure w/ -O2 Date: Thu, 27 Oct 2022 00:42:02 +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: 13.0 X-Bugzilla-Keywords: compare-debug-failure, needs-bisection X-Bugzilla-Severity: normal X-Bugzilla-Who: pinskia 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: 10.5 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: everconfirmed bug_status cf_reconfirmed_on 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=3D105653 Andrew Pinski changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed| |2022-10-27 --- Comment #3 from Andrew Pinski --- IRA adds the REG_EQUIV note even for both with/without -g. But it was removed in peephole2 for -g case. In the -g case we get the following extra output in -g for peephole2 starti= ng with: df_worklist_dataflow_doublequeue: n_basic_blocks 8 n_edges 10 count 9 ( 1.= 1) .... DCE: Deleting insn 15 deleting insn with uid =3D 15. ... insn 15 was: (insn:TI 15 13 16 2 (set (reg/f:DI 1 x1 [101]) (plus:DI (reg/f:DI 0 x0 [orig:99 thisD.4083 ] [99]) (const_int 8 [0x8]))) "/app/example.cpp":9:25 discrim 1 141 {*adddi3_aarch64} (expr_list:REG_UNUSED (reg/f:DI 1 x1 [101]) (nil))) in sched_fusion. But in the -g0 case, it was not removed inside peephole2. Someone who understands DF DCE better should look into this on why it was n= ot removed inside peephole2 without -g. The instruction without -g: (insn:TI 8 3 9 2 (set (reg/f:DI 1 x1 [101]) (plus:DI (reg/f:DI 0 x0 [orig:99 this ] [99]) (const_int 8 [0x8]))) "/app/example.cpp":9:25 discrim 1 141 {*adddi3_aarch64} (expr_list:REG_UNUSED (reg/f:DI 1 x1 [101]) (nil))) Which looks exactly the same even.=