* flow.c (delete_unreachable_blocks): Mark blocks as they
are put on to the worklist, not as they are taken off.
From-SVN: r25584
+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
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. */
{
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