aboutsummaryrefslogtreecommitdiff
path: root/gcc/combine.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2002-03-08 21:32:15 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2002-03-08 20:32:15 +0000
commitc51d95ecef9cfee1e96789495a5086a84b22ad56 (patch)
tree84fa304edc2ca3262e1d32784341ca2852d908ad /gcc/combine.c
parent3b25fbfeafe195ba777acedd7b79d5b74ff8927e (diff)
downloadgcc-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.c12
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);