diff options
author | Jan Hubicka <jh@suse.cz> | 2002-03-08 21:32:15 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2002-03-08 20:32:15 +0000 |
commit | c51d95ecef9cfee1e96789495a5086a84b22ad56 (patch) | |
tree | 84fa304edc2ca3262e1d32784341ca2852d908ad /gcc/cfgrtl.c | |
parent | 3b25fbfeafe195ba777acedd7b79d5b74ff8927e (diff) | |
download | gcc-c51d95ecef9cfee1e96789495a5086a84b22ad56.zip gcc-c51d95ecef9cfee1e96789495a5086a84b22ad56.tar.gz gcc-c51d95ecef9cfee1e96789495a5086a84b22ad56.tar.bz2 |
cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been removed; fix return value.
* cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
removed; fix return value.
* combine.c (combine_instructions): Dirtify blocks where we failed to
update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
* toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
From-SVN: r50454
Diffstat (limited to 'gcc/cfgrtl.c')
-rw-r--r-- | gcc/cfgrtl.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c index 7e3ebad..6e929eb 100644 --- a/gcc/cfgrtl.c +++ b/gcc/cfgrtl.c @@ -2108,6 +2108,7 @@ purge_dead_edges (bb) if (e->flags & EDGE_EH) { remove_edge (e); + bb->flags |= BB_DIRTY; purged = true; } } @@ -2121,7 +2122,7 @@ purge_dead_edges (bb) if (!any_condjump_p (insn) && !returnjump_p (insn) && !simplejump_p (insn)) - return false; + return purged; /* Branch probability/prediction notes are defined only for condjumps. We've possibly turned condjump into simplejump. */ @@ -2154,12 +2155,13 @@ purge_dead_edges (bb) && returnjump_p (insn)) continue; + bb->flags |= BB_DIRTY; purged = true; remove_edge (e); } if (!bb->succ || !purged) - return false; + return purged; if (rtl_dump_file) fprintf (rtl_dump_file, "Purged edges from bb %i\n", bb->index); @@ -2206,7 +2208,11 @@ purge_dead_edges (bb) { next = e->succ_next; if (!(e->flags & EDGE_FALLTHRU)) - remove_edge (e), purged = true; + { + bb->flags |= BB_DIRTY; + remove_edge (e); + purged = true; + } } if (!bb->succ || bb->succ->succ_next) |