diff options
author | Richard Henderson <rth@cygnus.com> | 1999-10-26 20:24:24 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 1999-10-26 20:24:24 -0700 |
commit | 93cba9936ec3d32fcb1b3e484816bab6adb8446f (patch) | |
tree | e906403762829fbff5ef8e233a571b65c5b0452a /gcc | |
parent | 09a308fe0858315bf9b95ce5a8747c3c8ea351e0 (diff) | |
download | gcc-93cba9936ec3d32fcb1b3e484816bab6adb8446f.zip gcc-93cba9936ec3d32fcb1b3e484816bab6adb8446f.tar.gz gcc-93cba9936ec3d32fcb1b3e484816bab6adb8446f.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/flow.c | 17 |
2 files changed, 21 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bbec9cf..49d4fe2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. @@ -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; |