This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Unroller fix
- From: Graham Stott <grahams at redhat dot com>
- To: law at redhat dot com
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Mon, 19 Nov 2001 22:42:12 -0500
- Subject: Re: Unroller fix
- References: <12904.1005923181@porcupine.cygnus.com>
Jeff,
law@redhat.com wrote:
>
> The loop unroller can create jumps without initializing the JUMP_LABEL
> field. This causes cfgbuild to abort.
>
> This patch fixes the problem by initializing the JUMP_LABEL field in
> the obvious way. It fixes several c-torture compilation failures on
> the PA without creating any new failures. It has also passed a 3-stage
> bootstrap on the PA.
>
> * unroll.c (copy_loop_body): Initialize JUMP_LABEL field after
> creating a new jump insn.
>
> Index: unroll.c
> ===================================================================
> RCS file: /cvs/gcc/egcs/gcc/unroll.c,v
> retrieving revision 1.145
> diff -c -3 -p -r1.145 unroll.c
> *** unroll.c 2001/11/16 02:26:39 1.145
> --- unroll.c 2001/11/16 17:03:49
> *************** copy_loop_body (loop, copy_start, copy_e
> *** 2074,2079 ****
> --- 2074,2080 ----
> jump_insn after COPY, and redirect the jump around
> that. */
> jmp = emit_jump_insn_after (gen_jump (exit_label), copy);
> + JUMP_LABEL (jmp) = exit_label;
> jmp = emit_barrier_after (jmp);
> emit_label_after (lab, jmp);
> LABEL_NUSES (lab) = 0;
Do we need to also increment the LABEL_NUSES for the exit_label ?
Graham