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: fix compile/20010519-1.f regression


> 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);
>       }


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