aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1997-11-27 19:24:06 +0000
committerJeff Law <law@gcc.gnu.org>1997-11-27 12:24:06 -0700
commit80c2681c0aa9298df4ad2f5ff580ec82f1b74534 (patch)
treed7a8859f9ec7fb4523fef2ac13d4e520b79a498b
parentaa59881828ad1791d4f8e7928415b71fde55b8ea (diff)
downloadgcc-80c2681c0aa9298df4ad2f5ff580ec82f1b74534.zip
gcc-80c2681c0aa9298df4ad2f5ff580ec82f1b74534.tar.gz
gcc-80c2681c0aa9298df4ad2f5ff580ec82f1b74534.tar.bz2
unroll.c (find_splittable_givs): Don't split givs with a dest_reg that was created by loop.
* unroll.c (find_splittable_givs): Don't split givs with a dest_reg that was created by loop. From-SVN: r16803
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/unroll.c6
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1920597..da98037 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Thu Nov 27 12:20:19 1997 Jeffrey A Law (law@cygnus.com)
+
+ * unroll.c (find_splittable_givs): Don't split givs with a dest_reg
+ that was created by loop.
+
Wed Nov 26 15:47:30 1997 Michael Meissner <meissner@cygnus.com>
* rs6000.c (SMALL_DATA_REG): Register to use for small data relocs.
diff --git a/gcc/unroll.c b/gcc/unroll.c
index 10dfb8a..29f01b8 100644
--- a/gcc/unroll.c
+++ b/gcc/unroll.c
@@ -2668,6 +2668,12 @@ find_splittable_givs (bl, unroll_type, loop_start, loop_end, increment,
{
rtx giv_inc, value;
+
+ /* If this is a new register, can't handle it since it does not have
+ an entry in reg_n_info. */
+ if (REGNO (v->dest_reg) >= max_reg_before_loop)
+ continue;
+
/* Only split the giv if it has already been reduced, or if the loop is
being completely unrolled. */
if (unroll_type != UNROLL_COMPLETELY && v->ignore)