diff options
author | Jan Hubicka <jh@suse.cz> | 2001-07-12 18:01:33 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2001-07-12 16:01:33 +0000 |
commit | 6691db8e6b45f1c8bf6032663e60495fa02de9b2 (patch) | |
tree | 2114e2a7141fc32722cd1751d911d3348af4067e /gcc/flow.c | |
parent | a3e5ae6dd8577e990a5bd93dc8202d341c0b29f0 (diff) | |
download | gcc-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.c | 19 |
1 files changed, 8 insertions, 11 deletions
@@ -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) |