This is the mail archive of the gcc@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: New regressions because of ICE in flow.c


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


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