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/combine.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/combine.c')
-rw-r--r-- | gcc/combine.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/gcc/combine.c b/gcc/combine.c index c9a6703..b734231 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -739,14 +739,16 @@ combine_instructions (f, nregs) ; } } + clear_bb_flags (); + EXECUTE_IF_SET_IN_SBITMAP (refresh_blocks, 0, this_basic_block, + BASIC_BLOCK (this_basic_block)->flags |= BB_DIRTY); + new_direct_jump_p |= purge_all_dead_edges (0); delete_noop_moves (f); - if (need_refresh) - { - update_life_info (refresh_blocks, UPDATE_LIFE_GLOBAL_RM_NOTES, - PROP_DEATH_NOTES); - } + update_life_info_in_dirty_blocks (UPDATE_LIFE_GLOBAL_RM_NOTES, + PROP_DEATH_NOTES | PROP_SCAN_DEAD_CODE + | PROP_KILL_DEAD_CODE); /* Clean up. */ sbitmap_free (refresh_blocks); |