flow.c (merge_blocks_move_predecessor_nojumps): Cope with already adjacent blocks, but no fallthru.

* flow.c (merge_blocks_move_predecessor_nojumps): Cope
        with already adjacent blocks, but no fallthru.
        (merge_blocks_move_successor_nojumps): Simplify.
        (debug_flow_info): New.

From-SVN: r30203
This commit is contained in:
Richard Henderson 1999-10-26 20:24:24 -07:00 committed by Richard Henderson
parent 09a308fe08
commit 93cba9936e
2 changed files with 21 additions and 6 deletions

View File

@ -1,3 +1,13 @@
Tue Oct 26 20:21:02 1999 Richard Henderson <rth@cygnus.com>
* flow.c (merge_blocks_move_predecessor_nojumps): Cope
with already adjacent blocks, but no fallthru.
(merge_blocks_move_successor_nojumps): Simplify.
(debug_flow_info): New.
* toplev.c (rest_of_compilation): Open jump1 dump file before
jump and close after, as opposed to just using dump_rtl.
Wed Oct 27 03:09:23 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
* reload.h (earlyclobber_operand_p): Declare.

View File

@ -2011,12 +2011,11 @@ static int
merge_blocks_move_predecessor_nojumps (a, b)
basic_block a, b;
{
rtx start, end, insertpoint, barrier;
rtx start, end, barrier;
int index;
start = a->head;
end = a->end;
insertpoint = PREV_INSN (b->head);
/* We want to delete the BARRIER after the end of the insns we are
going to move. If we don't find a BARRIER, then do nothing. This
@ -2042,7 +2041,8 @@ merge_blocks_move_predecessor_nojumps (a, b)
start = squeeze_notes (start, end);
/* Scramble the insn chain. */
reorder_insns (start, end, insertpoint);
if (end != PREV_INSN (b->head))
reorder_insns (start, end, PREV_INSN (b->head));
if (rtl_dump_file)
{
@ -2073,11 +2073,10 @@ static int
merge_blocks_move_successor_nojumps (a, b)
basic_block a, b;
{
rtx start, end, insertpoint, barrier;
rtx start, end, barrier;
start = b->head;
end = b->end;
insertpoint = a->end;
/* We want to delete the BARRIER after the end of the insns we are
going to move. If we don't find a BARRIER, then do nothing. This
@ -2103,7 +2102,7 @@ merge_blocks_move_successor_nojumps (a, b)
start = squeeze_notes (start, end);
/* Scramble the insn chain. */
reorder_insns (start, end, insertpoint);
reorder_insns (start, end, a->end);
/* Now blocks A and B are contiguous. Merge them. */
merge_blocks_nomove (a, b);
@ -4966,6 +4965,12 @@ dump_flow_info (file)
putc('\n', file);
}
void
debug_flow_info ()
{
dump_flow_info (stderr);
}
static void
dump_edge_info (file, e, do_succ)
FILE *file;