From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8638 invoked by alias); 16 May 2013 10:08:39 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 8555 invoked by uid 48); 16 May 2013 10:08:34 -0000 From: "jakub at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug rtl-optimization/57300] [4.8/4.9 Regression] statement in expression miscompiled at -O3 in 32-bit mode Date: Thu, 16 May 2013 10:08:00 -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: 4.8.1 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: jakub at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 4.8.1 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2013-05/txt/msg01098.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57300 --- Comment #10 from Jakub Jelinek --- Re: Eric's question, not easily, because if we implement that define_split as define_peephole2, then it won't trigger at all, because the next define_split ";; Extend to memory case when source register does not die.", will then split the insn already during split2 pass rather than waiting for peephole2 pass. So we'd need to protect that second splitter with peephole2_completed predicate which we don't have yet, or so. Is that the way to go? If so, I can try a patch. Note, s390 will still be broken, but we don't have testcases for it right now. Re: Steven, we need some solution for 4.8.1 too. While it is true that generally df_note doesn't mean the problem is up2date, doesn't df_finish_pass always kill that problem and thus at least the current pass should have called df_add_note_problem? Given the passes that split insns right now (see previous comments), having df_note non-NULL means either it is a combine pass where it is fine, or split* pass in which split_dead_or_set_p has been called already.