This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: New regressions because of ICE in flow.c
- From: Jan Hubicka <jh at suse dot cz>
- To: Neil Booth <neil at daikokuya dot demon dot co dot uk>
- Cc: gcc at gcc dot gnu dot org, jh at suse dot cz, gcc-patches at gcc dot gnu dot org, rth at cygnus dot com
- Date: Sat, 30 Mar 2002 23:48:24 +0100
- Subject: Re: New regressions because of ICE in flow.c
- References: <20020330204007.GA19714@daikokuya.demon.co.uk>
> This patch appears to be causing a whole load of regressions for
> the C compiler:
>
> Sat Mar 30 14:08:55 CET 2002 Jan Hubicka <jh@suse.cz>
>
> * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
> * when not optimizing.
>
> * toplev.c (rest_of_compilation): Cann mark_constant_function
> only when optimizing.
>
> * flow.c (calculate_global_regs_live): Ensure that all AUX
> * fields are NULL.
>
> * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
> (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
> (try_optimize_cfg): clear all AUX fields.
>
> * i386.c (aligned_operand): Be prepared for SUBREGed registers.
> (ix86_decompose_address): Use REG_P instead of GET_CODE (...) ==
> REG.
> (ix86_address_cost): Be prepared for SUBREGed registers.
> (legitimate_address_p): Accept SUBREGed registers.
>
> One example:
>
> output is:
> /home/neil/src/gcc/gcc/testsuite/gcc.c-torture/compile/920409-2.c: In
> function `x':
> /home/neil/src/gcc/gcc/testsuite/gcc.c-torture/compile/920409-2.c:2:
> Internal compiler error in calculate_global_regs_live, at flow.c:1081
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
Hi,
I've lost the attached hunk by mistakely updating cfgbuild from mainline to cfg
branch. We do use aux field during cfgbuild but do not clear them that makes
flow analysis called from reg-stack to abort.
I've regtested/bootstrapped i386 and installed it to mainline as obvious, OK for
branch?
Honza
Sat Mar 30 23:45:44 CET 2002 Jan Hubicka <jh@suse.cz>
* cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
Index: cfgbuild.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cfgbuild.c,v
retrieving revision 1.12
diff -c -3 -p -r1.12 cfgbuild.c
*** cfgbuild.c 2001/12/22 15:51:07 1.12
--- cfgbuild.c 2002/03/30 22:45:38
*************** find_basic_blocks_1 (f)
*** 597,602 ****
--- 597,603 ----
label_value_list = lvl;
tail_recursion_label_list = trll;
+ clear_aux_for_blocks ();
}