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 15:26:38 +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
> trips the later sanity check.
I've just checked that and it don't appear to be the case, as try_optimize_cfg
always cleansup and find_unrechable_blocks don't use aux. I will try
to hunt it after meeting I have to come in 10 minutes.
>
>
> r~