diff options
Diffstat (limited to 'gcc/modulo-sched.c')
-rw-r--r-- | gcc/modulo-sched.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/gcc/modulo-sched.c b/gcc/modulo-sched.c index ed06fc4..a669bb8 100644 --- a/gcc/modulo-sched.c +++ b/gcc/modulo-sched.c @@ -1,5 +1,5 @@ /* Swing Modulo Scheduling implementation. - Copyright (C) 2004, 2005 + Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. Contributed by Ayal Zaks and Mustafa Hagog <zaks,mustafa@il.ibm.com> @@ -976,8 +976,11 @@ sms_schedule (FILE *dump_file) sched_init (NULL); /* Init Data Flow analysis, to be used in interloop dep calculation. */ - df = df_init (); - df_analyze (df, 0, DF_ALL); + df = df_init (DF_HARD_REGS | DF_EQUIV_NOTES | DF_SUBREGS); + df_rd_add_problem (df); + df_ru_add_problem (df); + df_chain_add_problem (df, DF_DU_CHAIN | DF_UD_CHAIN); + df_analyze (df); /* Allocate memory to hold the DDG array one entry for each loop. We use loop->num as index into this array. */ @@ -1091,6 +1094,7 @@ sms_schedule (FILE *dump_file) /* Release Data Flow analysis data structures. */ df_finish (df); + df = NULL; /* We don't want to perform SMS on new loops - created by versioning. */ num_loops = loops->num; @@ -2536,7 +2540,6 @@ rest_of_handle_sms (void) { #ifdef INSN_SCHEDULING basic_block bb; - sbitmap blocks; /* We want to be able to create new pseudos. */ no_new_pseudos = 0; @@ -2547,9 +2550,7 @@ 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); - blocks = sbitmap_alloc (last_basic_block); - sbitmap_ones (blocks); - update_life_info (blocks, UPDATE_LIFE_GLOBAL_RM_NOTES, + update_life_info (NULL, UPDATE_LIFE_GLOBAL_RM_NOTES, (PROP_DEATH_NOTES | PROP_REG_INFO | PROP_KILL_DEAD_CODE |