summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/unroll.c6
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 77d23c1ce40..fc6d1efa11c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Mon Mar 8 16:04:44 1999 Jim Wilson <wilson@cygnus.com>
+
+ * unroll.c (loop_iterations): Only call loop_find_equiv_value if we
+ have a REG or SUBREG.
+
Mon Mar 8 15:27:42 1999 Jeffrey A Law (law@cygnus.com)
* flow.c (merge_blocks_nomove): For HAVE_cc0 targets, make sure
diff --git a/gcc/unroll.c b/gcc/unroll.c
index 841f06a23d1..32ed5314370 100644
--- a/gcc/unroll.c
+++ b/gcc/unroll.c
@@ -3830,7 +3830,11 @@ loop_iterations (loop_start, loop_end, loop_info)
if (GET_CODE (increment) != CONST_INT)
{
- increment = loop_find_equiv_value (loop_start, increment);
+ /* If we have a REG, check to see if REG holds a constant value. */
+ /* ??? Other RTL, such as (neg (reg)) is possible here, but it isn't
+ clear if it is worthwhile to try to handle such RTL. */
+ if (GET_CODE (increment) == REG || GET_CODE (increment) == SUBREG)
+ increment = loop_find_equiv_value (loop_start, increment);
if (GET_CODE (increment) != CONST_INT)
{
OpenPOWER on IntegriCloud