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]

Re: That annoying dnrm2.f failure on i386


  > 	* basic-block.h (basic_block_computed_jump_target): Declare.
  > 	* flags.h: (current_function_has_computed_jump): Declare.
  > 	* flow.c: (basic_block_computed_jump_target): Define.
  > 	(flow_analysis): Allocate it. Set current_function_has_computed_jump
  > 	to 0.
  > 	(find_basic_blocks): Set current_function_has_computed_jump and
  > 	elements of basic_block_computed_jump_target to 1 as appropriate.
  > 	* function.c: (current_function_has_computed_jump): Define.
  > 	* global.c (global_conflicts): Don't allocate pseudos into stack regs
  > 	at the start of a block that is reachable by a computed jump.
  > 	* reg-stack.c (stack_reg_life_analysis): If must restart, do so
  > 	immediately.
  > 	(subst_stack_regs): Undo change from Sep 4 1997.
  > 	(uses_reg_or_mem): Now unused, deleted.
  > 	* stupid.c (stupid_life_analysis): Compute
  > 	current_function_has_computed_jump.
  > 	(stupid_find_reg): Don't allocate stack regs if the function has a
  > 	computed goto.
I've installed a slightly modified version of this patch.

In particular other passes can make use of this information
(haifa-sched.c & loop.c for example).  So I've make sure the
values are computed regardless of STACK_REGS and updated the
comments appropriately.

Thanks!

jeff


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