aboutsummaryrefslogtreecommitdiff
path: root/gcc/unroll.c
diff options
context:
space:
mode:
authorJim Wilson <wilson@cygnus.com>1998-06-22 12:02:52 +0000
committerJim Wilson <wilson@gcc.gnu.org>1998-06-22 05:02:52 -0700
commitaeb2f500b073c09d86daf7d0cdbe71ddd9e1561c (patch)
treefcfeac16601900f555f6e18a00c09d9d28703514 /gcc/unroll.c
parentefef624b6f02ae9bacb45069f79d88201b847f7c (diff)
downloadgcc-aeb2f500b073c09d86daf7d0cdbe71ddd9e1561c.zip
gcc-aeb2f500b073c09d86daf7d0cdbe71ddd9e1561c.tar.gz
gcc-aeb2f500b073c09d86daf7d0cdbe71ddd9e1561c.tar.bz2
Fix irix6 -O3 -funroll-all-loops bootstrap failure reported by Kaveh Ghazi.
* gcse.c (add_label_notes): New function. (pre_insert_insn): Call it. * unroll.c (unroll_loop): Look for insns with a REG_LABEL note, and pass the label to set_label_in_map. From-SVN: r20658
Diffstat (limited to 'gcc/unroll.c')
-rw-r--r--gcc/unroll.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/unroll.c b/gcc/unroll.c
index d390110..7b745b2 100644
--- a/gcc/unroll.c
+++ b/gcc/unroll.c
@@ -691,6 +691,8 @@ unroll_loop (loop_end, insn_count, loop_start, end_insert_before,
for (insn = copy_start; insn != loop_end; insn = NEXT_INSN (insn))
{
+ rtx note;
+
if (GET_CODE (insn) == CODE_LABEL)
local_label[CODE_LABEL_NUMBER (insn)] = 1;
else if (GET_CODE (insn) == JUMP_INSN)
@@ -716,6 +718,9 @@ unroll_loop (loop_end, insn_count, loop_start, end_insert_before,
}
}
}
+ else if (note = find_reg_note (insn, REG_LABEL, NULL_RTX))
+ set_label_in_map (map, CODE_LABEL_NUMBER (XEXP (note, 0)),
+ XEXP (note, 0));
}
/* Allocate space for the insn map. */