This is the mail archive of the
mailing list for the GCC project.
Re: CFG problems on alpha
> On Thu, Oct 25, 2001 at 03:26:38PM +0200, Jan Hubicka wrote:
> > I've just checked that and it don't appear to be the case, as
> > try_optimize_cfg always cleansup and find_unrechable_blocks don't
> > use aux.
> It is the case. It's a typo. You set a bit on an edge
> instead of a block, and those don't get cleaned up.
> *** cfgcleanup.c 2001/10/23 13:34:23 1.10
> --- cfgcleanup.c 2001/10/26 07:11:53
> *************** merge_blocks (e, b, c, mode)
> *** 490,496 ****
> if (b_fallthru_edge->src == ENTRY_BLOCK_PTR)
> return false;
> - BB_SET_FLAG (b_fallthru_edge, BB_UPDATE_LIFE);
> notice_new_block (force_nonfallthru (b_fallthru_edge));
> merge_blocks_move_predecessor_nojumps (b, c);
> However, I can't figure out why this is here. You've just insertted
> a branch in a new block, and notice_new_block takes care of updating
> the new block. So what's this?
It's an cut&pasto :( It should be missing there.
> This patch appears to suffer from other problems as well. With the
> above, I get past the cfg abort on alpha to scheduler aborts due to
> invalid incoming life info, and DJ has a failure building SH libgcc
> that appears to be related.
> It may be best to revert the patch until it gets more testing.
Agreed. I've apparently underestimated the issue - it appears to be
Maybe it is better to be solved at lower level as I've proposed in the
other email by making the "modified" flag to be set by emit insn familly
what do you think?