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
This commit is contained in:
parent
ba087771c0
commit
7dddfb65cf
|
@ -1,3 +1,10 @@
|
|||
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>
|
||||
|
||||
* config/h8300/h8300.c (get_shift_alg): Remove redundant code.
|
||||
|
|
|
@ -334,6 +334,7 @@ merge_blocks_move_predecessor_nojumps (a, b)
|
|||
/* Scramble the insn chain. */
|
||||
if (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)
|
||||
{
|
||||
|
@ -402,6 +403,7 @@ merge_blocks_move_successor_nojumps (a, b)
|
|||
|
||||
/* Now blocks A and B are contiguous. Merge them. */
|
||||
merge_blocks_nomove (a, b);
|
||||
BB_SET_FLAG (a, BB_UPDATE_LIFE);
|
||||
|
||||
if (rtl_dump_file)
|
||||
{
|
||||
|
@ -488,10 +490,14 @@ merge_blocks (e, b, c, mode)
|
|||
|
||||
if (b_has_incoming_fallthru)
|
||||
{
|
||||
rtx bb;
|
||||
if (b_fallthru_edge->src == ENTRY_BLOCK_PTR)
|
||||
return false;
|
||||
BB_SET_FLAG (b_fallthru_edge, BB_UPDATE_LIFE);
|
||||
notice_new_block (force_nonfallthru (b_fallthru_edge));
|
||||
bb = 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);
|
||||
return true;
|
||||
|
|
|
@ -603,6 +603,7 @@ merge_blocks_nomove (a, b)
|
|||
|
||||
/* B hasn't quite yet ceased to exist. Attempt to prevent mishap. */
|
||||
b->pred = b->succ = NULL;
|
||||
a->global_live_at_end = b->global_live_at_end;
|
||||
|
||||
expunge_block (b);
|
||||
|
||||
|
|
Loading…
Reference in New Issue