flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.

* flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
        (update_life_info) [REG_WAS_0]: Search the original insns rather
        than the new insns for the note.  Fix typos finding note_dest.
        If no dest found, discard the note rather than abort.
        [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
        (replace_insns): Remove the old insn list after update_life_info
        not before.

From-SVN: r28946
This commit is contained in:
Richard Henderson 1999-08-28 16:29:55 -07:00 committed by Richard Henderson
parent 87373fba4a
commit 5aabad0023
2 changed files with 28 additions and 28 deletions

View File

@ -1,3 +1,13 @@
Sat Aug 28 16:24:31 1999 Richard Henderson <rth@cygnus.com>
* flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
(update_life_info) [REG_WAS_0]: Search the original insns rather
than the new insns for the note. Fix typos finding note_dest.
If no dest found, discard the note rather than abort.
[REG_NOALIAS]: Handle as REG_NO_CONFLICT.
(replace_insns): Remove the old insn list after update_life_info
not before.
Sat Aug 28 16:20:12 1999 Richard Henderson <rth@cygnus.com>
* haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling

View File

@ -287,7 +287,7 @@ static void commit_one_edge_insertion PROTO((edge));
static void delete_unreachable_blocks PROTO((void));
static void delete_eh_regions PROTO((void));
static int can_delete_note_p PROTO((rtx));
static void delete_insn_chain PROTO((rtx, rtx));
static void flow_delete_insn_chain PROTO((rtx, rtx));
static int delete_block PROTO((basic_block));
static void expunge_block PROTO((basic_block));
static rtx flow_delete_insn PROTO((rtx));
@ -1641,7 +1641,7 @@ can_delete_note_p (note)
that must be paired. */
static void
delete_insn_chain (start, finish)
flow_delete_insn_chain (start, finish)
rtx start, finish;
{
/* Unchain the insns one by one. It would be quicker to delete all
@ -1733,7 +1733,7 @@ delete_block (b)
end = next_nonnote_insn (b->end);
if (!end || GET_CODE (end) != BARRIER)
end = b->end;
delete_insn_chain (insn, end);
flow_delete_insn_chain (insn, end);
no_delete_insns:
@ -2022,7 +2022,7 @@ tidy_fallthru_edge (e, b, c)
/* Selectively unlink the sequence. */
if (q != PREV_INSN (c->head))
delete_insn_chain (NEXT_INSN (q), PREV_INSN (c->head));
flow_delete_insn_chain (NEXT_INSN (q), PREV_INSN (c->head));
e->flags |= EDGE_FALLTHRU;
}
@ -5774,14 +5774,13 @@ update_life_info (notes, first, last, orig_first_insn, orig_last_insn)
}
else
{
note_dest = find_insn_with_note (note, first, last);
note_dest = find_insn_with_note (note, orig_first_insn,
orig_last_insn);
if (note_dest != NULL_RTX)
{
note_dest = single_set (orig_dest);
note_dest = single_set (note_dest);
if (note_dest != NULL_RTX)
{
note_dest = SET_DEST (orig_dest);
}
note_dest = SET_DEST (note_dest);
}
}
/* This note applies to the dest of the original insn. Find the
@ -5789,7 +5788,7 @@ update_life_info (notes, first, last, orig_first_insn, orig_last_insn)
there. */
if (! note_dest)
abort ();
break;
for (insn = first; ; insn = NEXT_INSN (insn))
{
@ -5812,10 +5811,9 @@ update_life_info (notes, first, last, orig_first_insn, orig_last_insn)
&& HARD_REGNO_NREGS (REGNO (note_dest),
GET_MODE (note_dest)) > 1)
break;
/* It must be set somewhere; fail if we couldn't find
/* It must be set somewhere; bail if we couldn't find
where it was set. */
if (insn == last)
abort ();
}
}
break;
@ -5828,6 +5826,7 @@ update_life_info (notes, first, last, orig_first_insn, orig_last_insn)
break;
case REG_NO_CONFLICT:
case REG_NOALIAS:
/* These notes apply to the dest of the original insn. Find the last
new insn that now has the same dest, and move the note there.
@ -6091,29 +6090,19 @@ replace_insns (first, last, first_new, notes)
if (notes == NULL_RTX)
{
for (curr = first; curr != stop; curr = NEXT_INSN (curr))
{
if (GET_RTX_CLASS (GET_CODE (curr)) == 'i')
notes = prepend_reg_notes (notes, REG_NOTES (curr));
}
}
for (curr = first; curr; curr = next)
{
next = NEXT_INSN (curr);
delete_insn (curr);
if (curr == last)
break;
}
last_new = emit_insn_after (first_new, prev);
first_new = NEXT_INSN (prev);
for (i = 0; i < n_basic_blocks; i++)
{
if (BLOCK_HEAD (i) == first)
{
BLOCK_HEAD (i) = first_new;
}
BLOCK_HEAD (i) = first_new;
if (BLOCK_END (i) == last)
{
BLOCK_END (i) = last_new;
}
BLOCK_END (i) = last_new;
}
/* This is probably bogus. */
if (first_new == last_new)
@ -6125,6 +6114,7 @@ replace_insns (first, last, first_new, notes)
}
}
update_life_info (notes, first_new, last_new, first, last);
flow_delete_insn_chain (first, last);
}
/* Verify the CFG consistency. This function check some CFG invariants and