This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: CFG problems on alpha
- To: Richard Henderson <rth at redhat dot com>, Richard Kenner <kenner at vlsi1 dot ultra dot nyu dot edu>, gcc at gcc dot gnu dot org, jh at suse dot cz
- Subject: Re: CFG problems on alpha
- From: Jan Hubicka <jh at suse dot cz>
- Date: Thu, 25 Oct 2001 09:45:21 +0200
- References: <10110250142.AA11251@vlsi1.ultra.nyu.edu> <20011024225543.A978@redhat.com>
> On Wed, Oct 24, 2001 at 09:42:02PM -0400, Richard Kenner wrote:
> > ../../egcs/gcc/cp/decl2.c:4397: Internal compiler error in
> > alloc_aux_for_edge, at cfg.c:649
>
> I suspect
>
> Tue Oct 23 15:30:23 CEST 2001 Jan Hubicka <jh@suse.cz>
>
> * toplev.c (rest_of_compilation): Use CLEANUP_UPDATE_LIFE
> to avoid update_life_info call.
> * basic-block.h (CLEANUP_UPATE_LIFE): Define.
> * cfgcleanup.c (bb_flags): New enum.
> (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG, FORWARDER_BLOCK_P): New macros.
> (notice_new_block, update_forwarder_flag): New functions.
> (try_simplify_condjump): Use FORWARDER_BLOCK_P.
> (try_forward_edges): Likewise; update flags.
> (merge_blocks): Likewise.
> (outgoing_edges_match): Likewise.
> (try_crossjump_to_edge): Likewise.
> (try_optimize_cfg): Likewise; initialize and clear the flags;
> recompute life info if needed.
> (cleanup_cfg): No need to clear aux pointers.
>
> in that it probably left the aux field non-zero. Which
Agreed - somehow it happends to be nonzero, even when I don't see where it
is comming from (both delete_unreachable_blocks and try_optimize_cfg should
clear the aux pointers).
I am going to fix this afternoon, as now I need to wait on our study section
to get my index approved.
I apologize for the problem.
Honza
> trips the later sanity check.
>
>
> r~