diff options
author | Mostafa Hagog <mustafa@il.ibm.com> | 2005-03-21 18:49:29 +0000 |
---|---|---|
committer | Mostafa Hagog <hagog@gcc.gnu.org> | 2005-03-21 18:49:29 +0000 |
commit | d331e204024e2a74124880dd0dee8f4952fc9b26 (patch) | |
tree | f2b248b3f124017096da7b8acade677c20bf2d16 /gcc/passes.c | |
parent | 191dd2c9c240ee8c8f8ea8f97e5361140d5af1de (diff) | |
download | gcc-d331e204024e2a74124880dd0dee8f4952fc9b26.zip gcc-d331e204024e2a74124880dd0dee8f4952fc9b26.tar.gz gcc-d331e204024e2a74124880dd0dee8f4952fc9b26.tar.bz2 |
Fix PR middle-end/20177 and add test case.
From-SVN: r96828
Diffstat (limited to 'gcc/passes.c')
-rw-r--r-- | gcc/passes.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/gcc/passes.c b/gcc/passes.c index 7bb661d..1121d0c 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -575,6 +575,8 @@ rest_of_handle_partition_blocks (void) static void rest_of_handle_sms (void) { + sbitmap blocks; + timevar_push (TV_SMS); open_dump_file (DFI_sms, current_function_decl); @@ -587,10 +589,14 @@ rest_of_handle_sms (void) /* Update the life information, because we add pseudos. */ max_regno = max_reg_num (); allocate_reg_info (max_regno, FALSE, FALSE); - update_life_info_in_dirty_blocks (UPDATE_LIFE_GLOBAL_RM_NOTES, - (PROP_DEATH_NOTES - | PROP_KILL_DEAD_CODE - | PROP_SCAN_DEAD_CODE)); + blocks = sbitmap_alloc (last_basic_block); + sbitmap_ones (blocks); + update_life_info (blocks, UPDATE_LIFE_GLOBAL_RM_NOTES, + (PROP_DEATH_NOTES + | PROP_REG_INFO + | PROP_KILL_DEAD_CODE + | PROP_SCAN_DEAD_CODE)); + no_new_pseudos = 1; ggc_collect (); |