diff options
author | Jim Wilson <wilson@cygnus.com> | 1998-06-22 12:02:52 +0000 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1998-06-22 05:02:52 -0700 |
commit | aeb2f500b073c09d86daf7d0cdbe71ddd9e1561c (patch) | |
tree | fcfeac16601900f555f6e18a00c09d9d28703514 /gcc/unroll.c | |
parent | efef624b6f02ae9bacb45069f79d88201b847f7c (diff) | |
download | gcc-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.c | 5 |
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. */ |