Commit 78dd9906 by J"orn Rennecke Committed by Joern Rennecke

* regmove.c (copy_src_to_dest): New argument max_old_uid.

From-SVN: r25639
parent 3c869bc5
Mon Mar 8 18:47:11 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
* regmove.c (copy_src_to_dest): New argument max_old_uid.
Mon Mar 8 08:23:00 1999 Bruce Korb <korb@datadesign.com> Mon Mar 8 08:23:00 1999 Bruce Korb <korb@datadesign.com>
* ChangeLog: merged entries from fixincl-branch * ChangeLog: merged entries from fixincl-branch
......
...@@ -43,7 +43,7 @@ static int optimize_reg_copy_1 PROTO((rtx, rtx, rtx)); ...@@ -43,7 +43,7 @@ static int optimize_reg_copy_1 PROTO((rtx, rtx, rtx));
static void optimize_reg_copy_2 PROTO((rtx, rtx, rtx)); static void optimize_reg_copy_2 PROTO((rtx, rtx, rtx));
static void optimize_reg_copy_3 PROTO((rtx, rtx, rtx)); static void optimize_reg_copy_3 PROTO((rtx, rtx, rtx));
static rtx gen_add3_insn PROTO((rtx, rtx, rtx)); static rtx gen_add3_insn PROTO((rtx, rtx, rtx));
static void copy_src_to_dest PROTO((rtx, rtx, rtx, int)); static void copy_src_to_dest PROTO((rtx, rtx, rtx, int, int));
static int *regmove_bb_head; static int *regmove_bb_head;
struct match { struct match {
...@@ -744,11 +744,12 @@ optimize_reg_copy_3 (insn, dest, src) ...@@ -744,11 +744,12 @@ optimize_reg_copy_3 (insn, dest, src)
instead moving the value to dest directly before the operation. */ instead moving the value to dest directly before the operation. */
static void static void
copy_src_to_dest (insn, src, dest, loop_depth) copy_src_to_dest (insn, src, dest, loop_depth, old_max_uid)
rtx insn; rtx insn;
rtx src; rtx src;
rtx dest; rtx dest;
int loop_depth; int loop_depth;
int old_max_uid;
{ {
rtx seq; rtx seq;
rtx link; rtx link;
...@@ -820,11 +821,14 @@ copy_src_to_dest (insn, src, dest, loop_depth) ...@@ -820,11 +821,14 @@ copy_src_to_dest (insn, src, dest, loop_depth)
/* Is the insn the head of a basic block? If so extend it */ /* Is the insn the head of a basic block? If so extend it */
insn_uid = INSN_UID (insn); insn_uid = INSN_UID (insn);
move_uid = INSN_UID (move_insn); move_uid = INSN_UID (move_insn);
bb = regmove_bb_head[insn_uid]; if (insn_uid < old_max_uid)
if (bb >= 0)
{ {
BLOCK_HEAD (bb) = move_insn; bb = regmove_bb_head[insn_uid];
regmove_bb_head[insn_uid] = -1; if (bb >= 0)
{
BLOCK_HEAD (bb) = move_insn;
regmove_bb_head[insn_uid] = -1;
}
} }
/* Update the various register tables. */ /* Update the various register tables. */
...@@ -1534,7 +1538,8 @@ regmove_optimize (f, nregs, regmove_dump_file) ...@@ -1534,7 +1538,8 @@ regmove_optimize (f, nregs, regmove_dump_file)
/* If we weren't able to replace any of the alternatives, try an /* If we weren't able to replace any of the alternatives, try an
alternative appoach of copying the source to the destination. */ alternative appoach of copying the source to the destination. */
if (!success && copy_src != NULL_RTX) if (!success && copy_src != NULL_RTX)
copy_src_to_dest (insn, copy_src, copy_dst, loop_depth); copy_src_to_dest (insn, copy_src, copy_dst, loop_depth,
old_max_uid);
} }
} }
......
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