Commit 7dddfb65 by Jan Hubicka Committed by Jan Hubicka

cfgcleanup.c (merge_blocks_move_predecessor_nojumps, [...]): Set BB_UPDATE_LIFE.

	* cfgcleanup.c (merge_blocks_move_predecessor_nojumps,
	merge_blocks_move_successors_nojumps): Set BB_UPDATE_LIFE.
	(merge_blocks): Properly udpate life after making edge nonfallthru.
	* cfgrtl.c (merge_blocks_nomove): Update global_live_at_end.

From-SVN: r46564
parent ba087771
Sat Oct 27 12:12:09 CEST 2001 Jan Hubicka <jh@suse.cz>
* cfgcleanup.c (merge_blocks_move_predecessor_nojumps,
merge_blocks_move_successors_nojumps): Set BB_UPDATE_LIFE.
(merge_blocks): Properly udpate life after making edge nonfallthru.
* cfgrtl.c (merge_blocks_nomove): Update global_live_at_end.
2001-10-26 Kazu Hirata <kazu@hxi.com> 2001-10-26 Kazu Hirata <kazu@hxi.com>
* config/h8300/h8300.c (get_shift_alg): Remove redundant code. * config/h8300/h8300.c (get_shift_alg): Remove redundant code.
......
...@@ -334,6 +334,7 @@ merge_blocks_move_predecessor_nojumps (a, b) ...@@ -334,6 +334,7 @@ merge_blocks_move_predecessor_nojumps (a, b)
/* Scramble the insn chain. */ /* Scramble the insn chain. */
if (a->end != PREV_INSN (b->head)) if (a->end != PREV_INSN (b->head))
reorder_insns_nobb (a->head, a->end, PREV_INSN (b->head)); reorder_insns_nobb (a->head, a->end, PREV_INSN (b->head));
BB_SET_FLAG (a, BB_UPDATE_LIFE);
if (rtl_dump_file) if (rtl_dump_file)
{ {
...@@ -402,6 +403,7 @@ merge_blocks_move_successor_nojumps (a, b) ...@@ -402,6 +403,7 @@ merge_blocks_move_successor_nojumps (a, b)
/* Now blocks A and B are contiguous. Merge them. */ /* Now blocks A and B are contiguous. Merge them. */
merge_blocks_nomove (a, b); merge_blocks_nomove (a, b);
BB_SET_FLAG (a, BB_UPDATE_LIFE);
if (rtl_dump_file) if (rtl_dump_file)
{ {
...@@ -488,10 +490,14 @@ merge_blocks (e, b, c, mode) ...@@ -488,10 +490,14 @@ merge_blocks (e, b, c, mode)
if (b_has_incoming_fallthru) if (b_has_incoming_fallthru)
{ {
rtx bb;
if (b_fallthru_edge->src == ENTRY_BLOCK_PTR) if (b_fallthru_edge->src == ENTRY_BLOCK_PTR)
return false; return false;
BB_SET_FLAG (b_fallthru_edge, BB_UPDATE_LIFE); bb = force_nonfallthru (b_fallthru_edge);
notice_new_block (force_nonfallthru (b_fallthru_edge)); if (bb)
notice_new_block (bb);
else
BB_SET_FLAG (b_fallthru_edge->src, BB_UPDATE_LIFE);
} }
merge_blocks_move_predecessor_nojumps (b, c); merge_blocks_move_predecessor_nojumps (b, c);
return true; return true;
......
...@@ -603,6 +603,7 @@ merge_blocks_nomove (a, b) ...@@ -603,6 +603,7 @@ merge_blocks_nomove (a, b)
/* B hasn't quite yet ceased to exist. Attempt to prevent mishap. */ /* B hasn't quite yet ceased to exist. Attempt to prevent mishap. */
b->pred = b->succ = NULL; b->pred = b->succ = NULL;
a->global_live_at_end = b->global_live_at_end;
expunge_block (b); expunge_block (b);
......
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