------- 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