aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/loop.c8
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d777804..c064d94 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Mon Feb 28 11:34:43 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
+
+ * loop.c (reg_in_basic_block_p): Don't abort when falling through
+ to the end of the function.
+
2000-02-27 Mark Mitchell <mark@codesourcery.com>
* emit-rtl.c (remove_unncessary_notes): Remove notes for empty
diff --git a/gcc/loop.c b/gcc/loop.c
index dbec617..9b1584c 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -1284,8 +1284,12 @@ reg_in_basic_block_p (insn, reg)
}
}
- /* The "last use" doesn't follow the "first use"?? */
- abort ();
+ /* The "last use" that was recorded can't be found after the first
+ use. This can happen when the last use was deleted while
+ processing an inner loop, this inner loop was then completely
+ unrolled, and the outer loop is always exited after the inner loop,
+ so that everything after the first use becomes a single basic block. */
+ return 1;
}
/* Compute the benefit of eliminating the insns in the block whose