This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: remaining libjava/verify_local_live_at_start failures
- From: Jan Hubicka <jh at suse dot cz>
- To: John Wehle <john at feith dot com>
- Cc: jh at suse dot cz, hp at bitrange dot com, gcc at gcc dot gnu dot org
- Date: Tue, 26 Mar 2002 15:22:18 +0100
- Subject: Re: remaining libjava/verify_local_live_at_start failures
- References: <200203260036.g2Q0a7Z09773@jwlab.FEITH.COM>
> > The problem is that global liveness is not recomputed after dead code removal
> > keeping it in inconsistent state.
>
> In the past this has been caused by cleanup_cfg making a change
> and returning zero (indicating that nothing changed).
> update_life_info has:
>
> for ( ; ; )
> {
>
> ...
> if (! changed || ! cleanup_cfg (CLEANUP_EXPENSIVE))
> break;
> }
>
> So as long as cleanup_cfg returns non-zero update_life_info will
> DTRT by iterating until global liveness / dead code removal converges.
It is not unreachable code removal, it is dead code removal that causes
problem. It reproduces if you remove the flag allowing CFG changes as well.
Nothing is wrong with your patch, I guess Richard Kenner's dead store removal
introduced the problem.
Honza
>
> -- John
> -------------------------------------------------------------------------
> | Feith Systems | Voice: 1-215-646-8000 | Email: john@feith.com |
> | John Wehle | Fax: 1-215-540-5495 | |
> -------------------------------------------------------------------------