From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13410 invoked by alias); 24 Aug 2006 02:45:40 -0000 Received: (qmail 12040 invoked by alias); 24 Aug 2006 02:45:14 -0000 Date: Thu, 24 Aug 2006 02:45:00 -0000 Message-ID: <20060824024514.12039.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/28798] remove_phi_node attempts removal of a phi node resized by resize_phi_node In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "dberlin at dberlin dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2006-08/txt/msg02006.txt.bz2 List-Id: ------- Comment #12 from dberlin at gcc dot gnu dot org 2006-08-24 02:45 ------- Subject: Re: remove_phi_node attempts removal of a phi node resized by resize_phi_node hosking at cs dot purdue dot edu wrote: > ------- Comment #11 from hosking at cs dot purdue dot edu 2006-08-24 00:57 ------- > (In reply to comment #9) >> Does 4.1 have the check for EDGE_CRITICAL_P in insert_aux? > > Yes: > > /* This can happen in the very weird case > that our fake infinite loop edges have caused a > critical edge to appear. */ > if (EDGE_CRITICAL_P (pred)) > { > cant_insert = true; > break; > } > > Honestly, there should be no other case in which the edge actually needs to be split. It is just a shortcut rather than trying to whether we want the beginning of the succ or the end of the pred (it figures it out for us). If you could attach the dump from -fdump-tree-crited-vops-details-blocks-stats, and tell me what pred, src, and block are, that would be helpful. Without more, it's either something *very* strange in the code modula3 is creating (or broken gimplification), *or* the edge inserter is confused and believes it needs to create a block in a case it doesn't. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28798