aboutsummaryrefslogtreecommitdiff
path: root/gcc/flow.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2001-07-12 18:01:33 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2001-07-12 16:01:33 +0000
commit6691db8e6b45f1c8bf6032663e60495fa02de9b2 (patch)
tree2114e2a7141fc32722cd1751d911d3348af4067e /gcc/flow.c
parenta3e5ae6dd8577e990a5bd93dc8202d341c0b29f0 (diff)
downloadgcc-6691db8e6b45f1c8bf6032663e60495fa02de9b2.zip
gcc-6691db8e6b45f1c8bf6032663e60495fa02de9b2.tar.gz
gcc-6691db8e6b45f1c8bf6032663e60495fa02de9b2.tar.bz2
flow.c (try_optimize_cfg): Delete whole chain of trivially dead basic blocks.
* flow.c (try_optimize_cfg): Delete whole chain of trivially dead basic blocks. (verify_flow_info): Make diagnostics prettier. From-SVN: r43967
Diffstat (limited to 'gcc/flow.c')
-rw-r--r--gcc/flow.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/gcc/flow.c b/gcc/flow.c
index 51fe12c..92f6309 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -3653,10 +3653,10 @@ try_optimize_cfg (mode)
edge s;
int changed_here = 0;
- /* Delete trivially dead basic block. */
- if (b->pred == NULL)
+ /* Delete trivially dead basic blocks. */
+ while (b->pred == NULL)
{
- c = BASIC_BLOCK (i - 1);
+ c = BASIC_BLOCK (b->index - 1);
if (rtl_dump_file)
fprintf (rtl_dump_file, "Deleting block %i.\n", b->index);
flow_delete_block (b);
@@ -7923,23 +7923,20 @@ verify_flow_info ()
&& (e->src->index + 1 != e->dest->index
|| !can_fallthru (e->src, e->dest)))
{
- fprintf (stderr,
- "verify_flow_info: Incorrect fallthru edge %i->%i\n",
- e->src->index, e->dest->index);
- fflush (stderr);
+ error ("verify_flow_info: Incorrect fallthru edge %i->%i",
+ e->src->index, e->dest->index);
err = 1;
}
if (e->src != bb)
{
- fprintf (stderr,
- "verify_flow_info: Basic block %d succ edge is corrupted\n",
- bb->index);
+ error ("verify_flow_info: Basic block %d succ edge is corrupted",
+ bb->index);
fprintf (stderr, "Predecessor: ");
dump_edge_info (stderr, e, 0);
fprintf (stderr, "\nSuccessor: ");
dump_edge_info (stderr, e, 1);
- fflush (stderr);
+ fprintf (stderr, "\n");
err = 1;
}
if (e->dest != EXIT_BLOCK_PTR)