aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJim Wilson <wilson@cygnus.com>1998-09-04 10:37:49 +0000
committerJim Wilson <wilson@gcc.gnu.org>1998-09-04 03:37:49 -0700
commit7940acc401ef788bf2e287bd77250a3a125c9e80 (patch)
treeaf75e1a9e5782299171f1dbfdbf70ba3d194326b /gcc
parentf3b8847be03867b52159b27295b4c8f26d7e7b48 (diff)
downloadgcc-7940acc401ef788bf2e287bd77250a3a125c9e80.zip
gcc-7940acc401ef788bf2e287bd77250a3a125c9e80.tar.gz
gcc-7940acc401ef788bf2e287bd77250a3a125c9e80.tar.bz2
Fix irix6 -g -O3 -funroll-all-loops bootstrap failure.
* loop.c (load_mems): Fix JUMP_LABEL field after for_each_rtx call. From-SVN: r22232
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/loop.c13
2 files changed, 16 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f11cd17..1b93cfd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Fri Sep 4 10:37:07 1998 Jim Wilson <wilson@cygnus.com>
+
+ * loop.c (load_mems): Fix JUMP_LABEL field after for_each_rtx call.
+
Fri Sep 4 02:01:05 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
* config/sparc/sparc.c (output_double_int): In all V9 symbolic
diff --git a/gcc/loop.c b/gcc/loop.c
index ac091e9..63ebd0b 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -8826,7 +8826,18 @@ load_mems (scan_start, end, loop_top, start)
rr.r2 = label;
for (p = start; p != end; p = NEXT_INSN (p))
- for_each_rtx (&p, replace_label, &rr);
+ {
+ for_each_rtx (&p, replace_label, &rr);
+
+ /* If this is a JUMP_INSN, then we also need to fix the JUMP_LABEL
+ field. This is not handled by for_each_rtx because it doesn't
+ handle unprinted ('0') fields. We need to update JUMP_LABEL
+ because the immediately following unroll pass will use it.
+ replace_label would not work anyways, because that only handles
+ LABEL_REFs. */
+ if (GET_CODE (p) == JUMP_INSN && JUMP_LABEL (p) == end_label)
+ JUMP_LABEL (p) = label;
+ }
}
}