This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: fix compile/20010519-1.f regression
- From: Jan Hubicka <jh at suse dot cz>
- To: Richard Henderson <rth at redhat dot com>, gcc-patches at gcc dot gnu dot org
- Date: Tue, 12 Mar 2002 11:43:39 +0100
- Subject: Re: fix compile/20010519-1.f regression
- References: <20020311185719.A31236@redhat.com>
> Yet another verify_flow_info abort.
>
> This time, local-alloc replaces a register with its REG_EQUIV
> label, turning an indirect jump into a direct jump. We fail
> to clear the EDGE_ABNORMAL bit, which leads to the sanity check
> abort.
SHould not we always do such change earlier? With -O2 it looks really
strange we didn't discovered the opurtunity and with -O0 I guess we simply
should not try to reincarnate anyway. I need to check.
Thanks for fixing it!
Honza
>
> Fixed thus.
>
>
> r~
>
>
> * toplev.c (rest_of_compilation): Call purge_all_dead_edges
> if rebuild_label_notes_after_reload.
>
> Index: toplev.c
> ===================================================================
> RCS file: /cvs/gcc/gcc/gcc/toplev.c,v
> retrieving revision 1.591
> diff -c -p -d -r1.591 toplev.c
> *** toplev.c 2002/03/11 21:49:11 1.591
> --- toplev.c 2002/03/12 03:10:39
> *************** rest_of_compilation (decl)
> *** 3225,3230 ****
> --- 3225,3231 ----
> timevar_push (TV_JUMP);
>
> rebuild_jump_labels (insns);
> + purge_all_dead_edges (0);
>
> timevar_pop (TV_JUMP);
> }