flow.c fix
Jeffrey A Law
law@cygnus.com
Fri Oct 16 17:44:00 GMT 1998
I've checked in this patch. It fixes a problem exposed during testing of the
post-reload flow code.
flow.c (find_basic_blocks_1): Do not delete unreachable blocks
after reload has completed.
Index: flow.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/./gcc/flow.c,v
retrieving revision 1.73
diff -c -3 -p -r1.73 flow.c
*** flow.c 1998/10/16 00:08:32 1.73
--- flow.c 1998/10/17 00:43:11
*************** find_basic_blocks_1 (f, nonlocal_labels)
*** 597,603 ****
if (n_basic_blocks > 0)
{
int something_marked = 1;
! int deleted;
/* Pass over all blocks, marking each block that is reachable
and has not yet been marked.
--- 597,603 ----
if (n_basic_blocks > 0)
{
int something_marked = 1;
! int deleted = 0;
/* Pass over all blocks, marking each block that is reachable
and has not yet been marked.
*************** find_basic_blocks_1 (f, nonlocal_labels)
*** 631,637 ****
&& LABEL_REFS (basic_block_head[i]) == basic_block_head[i])
abort ();
! deleted = delete_unreachable_blocks ();
/* There are pathological cases where one function calling hundreds of
nested inline functions can generate lots and lots of unreachable
--- 631,638 ----
&& LABEL_REFS (basic_block_head[i]) == basic_block_head[i])
abort ();
! if (! reload_completed)
! deleted = delete_unreachable_blocks ();
/* There are pathological cases where one function calling hundreds of
nested inline functions can generate lots and lots of unreachable
More information about the Gcc-patches
mailing list