diff options
author | Mostafa Hagog <mustafa@il.ibm.com> | 2005-04-03 09:27:07 +0000 |
---|---|---|
committer | Mostafa Hagog <hagog@gcc.gnu.org> | 2005-04-03 09:27:07 +0000 |
commit | f73d56667d8c9b6344e930bac2928a7cca46ab4c (patch) | |
tree | 8a2f7cc89d6073c3b6b3841a55aaa027e337866b /gcc/passes.c | |
parent | 1cb7dfc3b3c1506c0fc3cef33b8571f2eefd549c (diff) | |
download | gcc-f73d56667d8c9b6344e930bac2928a7cca46ab4c.zip gcc-f73d56667d8c9b6344e930bac2928a7cca46ab4c.tar.gz gcc-f73d56667d8c9b6344e930bac2928a7cca46ab4c.tar.bz2 |
cfg.c (clear_bb_flags): Don't clear BB_DISABLE_SCHEDULE.
2005-03-31 Mostafa Hagog <mustafa@il.ibm.com>
* cfg.c (clear_bb_flags): Don't clear BB_DISABLE_SCHEDULE.
* modulo-sched.c (undo_replace_buff_elem): New structure.
(kernel_number_of_cycles, ps_unschedule_node,
undo_generate_reg_moves,free_undo_replace_buff,
undo_permute_partial_schedule, loop_single_full_bb_p,
SIMPLE_SMS_LOOP_P, loop_canon_p, canon_loop,
build_loops_structure, get_sched_window): New.
(generate_reg_moves): Return undo_replace_buff_elem and other
fixes.
(generate_prolog_epilog): Remove old loop versioning.
(sms_schedule): Use loop information and loop_version.
(sms_schedule_by_order): Split part of it to get_sched_window.
* passes.c (rest_of_handle_sms): call cfg_layout_initialize
cfg_layout_finalize and free_dominance_info before/after SMS.
From-SVN: r97484
Diffstat (limited to 'gcc/passes.c')
-rw-r--r-- | gcc/passes.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/passes.c b/gcc/passes.c index f98fbf8..40e87a4 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -577,6 +577,7 @@ rest_of_handle_partition_blocks (void) static void rest_of_handle_sms (void) { + basic_block bb; sbitmap blocks; timevar_push (TV_SMS); @@ -584,10 +585,11 @@ rest_of_handle_sms (void) /* We want to be able to create new pseudos. */ no_new_pseudos = 0; + /* Collect loop information to be used in SMS. */ + cfg_layout_initialize (CLEANUP_UPDATE_LIFE); sms_schedule (dump_file); close_dump_file (DFI_sms, print_rtl, get_insns ()); - /* Update the life information, because we add pseudos. */ max_regno = max_reg_num (); allocate_reg_info (max_regno, FALSE, FALSE); @@ -601,6 +603,12 @@ rest_of_handle_sms (void) no_new_pseudos = 1; + /* Finalize layout changes. */ + FOR_EACH_BB (bb) + if (bb->next_bb != EXIT_BLOCK_PTR) + bb->rbi->next = bb->next_bb; + cfg_layout_finalize (); + free_dominance_info (CDI_DOMINATORS); ggc_collect (); timevar_pop (TV_SMS); } |