aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Wilson <wilson@cygnus.com>1997-08-31 05:57:40 +0000
committerJim Wilson <wilson@gcc.gnu.org>1997-08-30 22:57:40 -0700
commit2599dcc74ab14923fef52293afad9f5fe2d30e9c (patch)
tree92cb8569d645ccf8be7eec30b9290b2579a50c9c
parent4f122a21abed3b537e9baf105fff9f9066f7c190 (diff)
downloadgcc-2599dcc74ab14923fef52293afad9f5fe2d30e9c.zip
gcc-2599dcc74ab14923fef52293afad9f5fe2d30e9c.tar.gz
gcc-2599dcc74ab14923fef52293afad9f5fe2d30e9c.tar.bz2
Fix alpha loop unrolling abort.
* unroll.c (calculate_giv_inc): Handle increment with code PLUS. From-SVN: r15004
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/unroll.c7
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 058eb9e..a337377 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Sat Aug 30 22:54:26 1997 Jim Wilson <wilson@cygnus.com>
+
+ * unroll.c (calculate_giv_inc): Handle increment with code PLUS.
+
Sat Aug 30 10:49:46 1997 David Edelsohn <edelsohn@mhpcc.edu>
* rs6000.md: Make DF fused-add operations pay attention to
diff --git a/gcc/unroll.c b/gcc/unroll.c
index 2fb1f9a..ce6623c 100644
--- a/gcc/unroll.c
+++ b/gcc/unroll.c
@@ -1495,10 +1495,11 @@ calculate_giv_inc (pattern, src_insn, regno)
if (GET_CODE (increment) == LO_SUM)
increment = XEXP (increment, 1);
else if (GET_CODE (increment) == IOR
- || GET_CODE (increment) == ASHIFT)
+ || GET_CODE (increment) == ASHIFT
+ || GET_CODE (increment) == PLUS)
{
/* The rs6000 port loads some constants with IOR.
- The alpha port loads some constants with ASHIFT. */
+ The alpha port loads some constants with ASHIFT and PLUS. */
rtx second_part = XEXP (increment, 1);
enum rtx_code code = GET_CODE (increment);
@@ -1513,6 +1514,8 @@ calculate_giv_inc (pattern, src_insn, regno)
if (code == IOR)
increment = GEN_INT (INTVAL (increment) | INTVAL (second_part));
+ else if (code == PLUS)
+ increment = GEN_INT (INTVAL (increment) + INTVAL (second_part));
else
increment = GEN_INT (INTVAL (increment) << INTVAL (second_part));
}