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


Vladimir Makarov <vmakarov@redhat.com> 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  <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.

Sorry for the screw-up.  I'd thought this was one of the things that DF
would handle for us.

Richard


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