flow.c (delete_unreachable_blocks): Mark blocks as they are put on to the worklist, not as they are taken off.

* flow.c (delete_unreachable_blocks): Mark blocks as they
        are put on to the worklist, not as they are taken off.

From-SVN: r25584
This commit is contained in:
Richard Henderson 1999-03-04 07:01:06 -08:00 committed by Richard Henderson
parent dd5657ed92
commit aa3d4bf947
2 changed files with 15 additions and 5 deletions

View File

@ -1,3 +1,8 @@
Thu Mar 4 15:00:35 1999 Richard Henderson <rth@cygnus.com>
* flow.c (delete_unreachable_blocks): Mark blocks as they
are put on to the worklist, not as they are taken off.
Thu Mar 4 00:05:44 1999 Jeffrey A Law (law@cygnus.com)
* function.c (current_function_has_computed_jump): Remove duplicate

View File

@ -1466,7 +1466,12 @@ delete_unreachable_blocks ()
support Fortran alternate entry points. */
for (e = ENTRY_BLOCK_PTR->succ; e ; e = e->succ_next)
*tos++ = e->dest;
{
*tos++ = e->dest;
/* Mark the block with a handy non-null value. */
e->dest->aux = e;
}
/* Iterate: find everything reachable from what we've already seen. */
@ -1474,12 +1479,12 @@ delete_unreachable_blocks ()
{
basic_block b = *--tos;
/* Mark the block with a handy non-null value. */
b->aux = b;
for (e = b->succ; e ; e = e->succ_next)
if (!e->dest->aux)
*tos++ = e->dest;
{
*tos++ = e->dest;
e->dest->aux = e;
}
}
/* Delete all unreachable basic blocks. Count down so that we don't