This is the mail archive of the gcc-patches@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: [PATCH] Fix wrong register allocation for EH


Eric Botcazou wrote:

but, while the second part (for abnormal edges) has been transposed in process_bb_node_lives, the first part (for EH edges) hasn't.


It looks like the code was removed by the patch

2008-09-04 Richard Sandiford <rdsandiford@googlemail.com>

   PR middle-end/37243
   * ira-build.c (form_loop_tree): Reverse BB walk.
   (create_bb_allocnos): Likewise.
   * ira-lives.c (make_regno_born_and_dead, regs_set): Delete.
   (mark_reg_store): Rename to...
   (mark_ref_live): ...this and take a df_ref argument instead of
   note_stores arguments.  Assert that we have a register.
   (mark_reg_clobber): Delete.
   (def_conflicts_with_inputs_p): New function.
   (mark_reg_conflicts): Delete.
   (mark_reg_death): Rename to...
   (mark_ref_dead): ...this and take a df_ref argument instead of
   a register.  Assert that we have a register.
   (process_bb_node_lives): Hoist frequency calculation out of
   instruction walk.  Convert from a forwards scan to a backwards scan.
   Use DF_REF_USES and DF_REF_DEFS instead of register notes and
   note_stores.  Remove EH_RETURN_DATA_REGNO and regs_set handling.
   (create_allocno_live_ranges): Don't create regs_set.

I overlooked that when I was reviewing the patch. My bad.
Hence the attached patch, tested on SPARC/Solaris, OK for mainline?

Yes, Eric. Thank you for the patch.

2008-11-10 Eric Botcazou <ebotcazou@adacore.com>


	* ira-lives.c (process_bb_node_lives): Deal with EH_RETURN_DATA_REGNO.
	



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