This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Unroller fix


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]