aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@libertysurf.fr>2003-06-13 05:34:02 +0200
committerEric Botcazou <ebotcazou@gcc.gnu.org>2003-06-13 03:34:02 +0000
commit5adf448c3bf4ba52122ae94ee632d9cbf13510a8 (patch)
treefa7a79f20d4d5a8d98f8b55461728097df43f2ee /gcc
parente860ed6dce2da5698956ce966ae27385b8780fdd (diff)
downloadgcc-5adf448c3bf4ba52122ae94ee632d9cbf13510a8.zip
gcc-5adf448c3bf4ba52122ae94ee632d9cbf13510a8.tar.gz
gcc-5adf448c3bf4ba52122ae94ee632d9cbf13510a8.tar.bz2
re PR rtl-optimization/10955 ([SPARC] wrong code at -O3 for structure argument in context of structure return)
PR optimization/10955 * unroll.c (unroll_loop): Fix off-by-one bug. From-SVN: r67870
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/unroll.c4
3 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f5a84c0..182eab0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2003-06-13 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/10955
+ * unroll.c (unroll_loop): Fix off-by-one bug.
+
2003-06-12 Aldy Hernandez <aldyh@redhat.com>
* config/rs6000/rs6000.c (function_arg): Remove typo.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5a31745..0aaa68d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2003-06-13 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * gcc.c-torture/execute/20030611-1.c: New test.
+
2003-06-12 Roger Sayle <roger@eyesopen.com>
PR middle-end/168
diff --git a/gcc/unroll.c b/gcc/unroll.c
index 43539c3..e7e03ab 100644
--- a/gcc/unroll.c
+++ b/gcc/unroll.c
@@ -791,9 +791,9 @@ unroll_loop (loop, insn_count, strength_reduce_p)
/* We must limit the generic test to max_reg_before_loop, because only
these pseudo registers have valid regno_first_uid info. */
for (r = FIRST_PSEUDO_REGISTER; r < max_reg_before_loop; ++r)
- if (REGNO_FIRST_UID (r) > 0 && REGNO_FIRST_UID (r) <= max_uid_for_loop
+ if (REGNO_FIRST_UID (r) > 0 && REGNO_FIRST_UID (r) < max_uid_for_loop
&& REGNO_FIRST_LUID (r) >= copy_start_luid
- && REGNO_LAST_UID (r) > 0 && REGNO_LAST_UID (r) <= max_uid_for_loop
+ && REGNO_LAST_UID (r) > 0 && REGNO_LAST_UID (r) < max_uid_for_loop
&& REGNO_LAST_LUID (r) <= copy_end_luid)
{
/* However, we must also check for loop-carried dependencies.