aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>1999-10-26 20:24:24 -0700
committerRichard Henderson <rth@gcc.gnu.org>1999-10-26 20:24:24 -0700
commit93cba9936ec3d32fcb1b3e484816bab6adb8446f (patch)
treee906403762829fbff5ef8e233a571b65c5b0452a /gcc
parent09a308fe0858315bf9b95ce5a8747c3c8ea351e0 (diff)
downloadgcc-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/ChangeLog10
-rw-r--r--gcc/flow.c17
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.
diff --git a/gcc/flow.c b/gcc/flow.c
index 35a8ad5..8ff7b92 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -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;