This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] Fix wrong register allocation for EH
- From: Richard Sandiford <rdsandiford at googlemail dot com>
- To: Vladimir Makarov <vmakarov at redhat dot com>
- Cc: Eric Botcazou <ebotcazou at adacore dot com>, gcc-patches at gcc dot gnu dot org
- Date: Sat, 15 Nov 2008 10:05:01 +0000
- Subject: Re: [PATCH] Fix wrong register allocation for EH
- References: <firstname.lastname@example.org> <4919AF78.email@example.com>
Vladimir Makarov <firstname.lastname@example.org> writes:
> 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 <email@example.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.
Sorry for the screw-up. I'd thought this was one of the things that DF
would handle for us.