flow.c (find_unreachable_blocks): New function.

* flow.c (find_unreachable_blocks): New function.
	(delete_unreachable_blocks): Use find_unreachable_blocks.
	* basic-block.h (find_unreachable_blocks): Declare.

From-SVN: r43448
This commit is contained in:
Jeffrey A Law 2001-06-18 19:46:37 +00:00 committed by Jeff Law
parent fbf8334971
commit 1e29ee12f0
3 changed files with 20 additions and 7 deletions

View File

@ -1,5 +1,9 @@
Mon Jun 18 12:50:49 2001 Jeffrey A Law (law@cygnus.com)
* flow.c (find_unreachable_blocks): New function.
(delete_unreachable_blocks): Use find_unreachable_blocks.
* basic-block.h (find_unreachable_blocks): Declare.
* dce.c (eliminate_dead_code): Fix formatting glitch.
2001-06-18 Jason Merrill <jason_merrill@redhat.com>

View File

@ -555,6 +555,7 @@ extern void debug_bb_n PARAMS ((int));
extern void dump_regset PARAMS ((regset, FILE *));
extern void debug_regset PARAMS ((regset));
extern void allocate_reg_life_data PARAMS ((void));
extern void find_unreachable_blocks PARAMS ((void));
/* This function is always defined so it can be called from the
debugger, and it is declared extern so we don't get warnings about

View File

@ -2055,14 +2055,15 @@ flow_call_edges_add (blocks)
return blocks_split;
}
/* Delete all unreachable basic blocks. */
/* Find unreachable blocks. An unreachable block will have NULL in
block->aux, a non-NULL value indicates the block is reachable. */
static void
delete_unreachable_blocks ()
void
find_unreachable_blocks ()
{
basic_block *worklist, *tos;
edge e;
int i, n;
basic_block *tos, *worklist;
n = n_basic_blocks;
tos = worklist = (basic_block *) xmalloc (sizeof (basic_block) * n);
@ -2098,11 +2099,20 @@ delete_unreachable_blocks ()
}
}
free (worklist);
}
/* Delete all unreachable basic blocks. */
static void
delete_unreachable_blocks ()
{
int i;
/* Delete all unreachable basic blocks. Count down so that we
don't interfere with the block renumbering that happens in
flow_delete_block. */
for (i = n - 1; i >= 0; --i)
for (i = n_basic_blocks - 1; i >= 0; --i)
{
basic_block b = BASIC_BLOCK (i);
@ -2114,8 +2124,6 @@ delete_unreachable_blocks ()
}
tidy_fallthru_edges ();
free (worklist);
}
/* Return true if NOTE is not one of the ones that must be kept paired,