aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/emit-rtl.c2
-rw-r--r--gcc/recog.c10
3 files changed, 9 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7095903..0fa8476 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Thu Mar 14 19:04:29 CET 2002 Jan HUbicka <jh@suse.cz>
+
+ * emit-rtl.c (try_split): Use delete_insns.
+ * recog.c (split_all_insns): Fix terminating condition.
+
2002-03-14 Richard Earnshaw <rearnsha@arm.com>
Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 4d82afb..937bd20 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -3076,7 +3076,7 @@ try_split (pat, trial, last)
tem = emit_insn_after (seq, trial);
- delete_related_insns (trial);
+ delete_insn (trial);
if (has_barrier)
emit_barrier_after (tem);
diff --git a/gcc/recog.c b/gcc/recog.c
index 8ad3ed2..cb1cb66 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -2735,14 +2735,16 @@ split_all_insns (upd_life)
{
basic_block bb = BASIC_BLOCK (i);
rtx insn, next;
+ bool finish = false;
- for (insn = bb->head; insn ; insn = next)
+ for (insn = bb->head; !finish ; insn = next)
{
rtx last;
/* Can't use `next_real_insn' because that might go across
CODE_LABELS and short-out basic blocks. */
next = NEXT_INSN (insn);
+ finish = (insn == bb->end);
last = split_insn (insn);
if (last)
{
@@ -2756,13 +2758,7 @@ split_all_insns (upd_life)
changed = 1;
insn = last;
}
-
- if (next == NEXT_INSN (bb->end))
- break;
}
-
- if (insn == NULL)
- abort ();
}
if (changed)