Commit f73d5666 by Mostafa Hagog Committed by Mostafa Hagog

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
parent 1cb7dfc3
2005-04-03 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.
2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
* cfghooks.c (lv_flush_pending_stmts,
cfg_hook_duplicate_loop_to_header_edge, extract_cond_bb_edges,
lv_adjust_loop_header_phi, lv_add_condition_to_bb): New.
......
......@@ -461,7 +461,7 @@ clear_bb_flags (void)
basic_block bb;
FOR_BB_BETWEEN (bb, ENTRY_BLOCK_PTR, NULL, next_bb)
bb->flags = BB_PARTITION (bb);
bb->flags = BB_PARTITION (bb) | (bb->flags & BB_DISABLE_SCHEDULE);
}
/* Check the consistency of profile information. We can't do that
......
......@@ -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);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment