aboutsummaryrefslogtreecommitdiff
path: root/gcc/passes.c
diff options
context:
space:
mode:
authorMostafa Hagog <mustafa@il.ibm.com>2005-03-21 18:49:29 +0000
committerMostafa Hagog <hagog@gcc.gnu.org>2005-03-21 18:49:29 +0000
commitd331e204024e2a74124880dd0dee8f4952fc9b26 (patch)
treef2b248b3f124017096da7b8acade677c20bf2d16 /gcc/passes.c
parent191dd2c9c240ee8c8f8ea8f97e5361140d5af1de (diff)
downloadgcc-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.c14
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 ();