From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10591 invoked by alias); 15 Aug 2013 12:56:33 -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 10561 invoked by uid 48); 15 Aug 2013 12:56:32 -0000 From: "jakub at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug regression/58165] [4.8/4.9 regression] internal compiler error: verify_flow_info Date: Thu, 15 Aug 2013 12:56:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: regression X-Bugzilla-Version: 4.8.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: jakub at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: jakub at gcc dot gnu.org X-Bugzilla-Target-Milestone: 4.8.2 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-08/txt/msg00809.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58165 --- Comment #5 from Jakub Jelinek --- (In reply to Alexander Ivchenko from comment #4) > I firstly did something like that: > > diff --git a/gcc/tree-call-cdce.c b/gcc/tree-call-cdce.c > index 9b6186e..5862ebf 100644 > --- a/gcc/tree-call-cdce.c > +++ b/gcc/tree-call-cdce.c > @@ -771,6 +771,9 @@ shrink_wrap_one_built_in_call (gimple bi_call) > join_tgt_in_edge_fall_thru = make_edge (guard_bb0, join_tgt_bb, > EDGE_FALSE_VALUE); > > + if (!gimple_call_nothrow_p (bi_call)) > + make_eh_edges (bi_call); > + > bi_call_in_edge0->probability = REG_BR_PROB_BASE * ERR_PROB; > bi_call_in_edge0->count = > apply_probability (guard_bb0->count, > > which also helped.. but now I see that we shouldn't split the block Well, that wouldn't be sufficient, you'd need to also remove the EH edges from the other bb. But not splitting the block means you don't have to bother with that. Though, thinking about it again, my patch might be problematic for -fcompare-debug, because we could be not splitting without -g and for -g if a call is followed by some debug stmts, we could be splitting. So, I need to use stmt_ends_bb_p instead.