This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [ira] patch for optimistic register coalescing implementation
- From: "Seongbae Park (박성배, 朴成培)" <seongbae dot park at gmail dot com>
- To: "Vladimir Makarov" <vmakarov at redhat dot com>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 9 Oct 2007 21:24:01 -0700
- Subject: Re: [ira] patch for optimistic register coalescing implementation
- References: <470BFC8C.9030106@redhat.com>
I very quickly skimmed through the patch, so I could have easily missed
but I couldn't tell where undo coalescing is handled,
which makes the optimistic coalescing different from simple aggressive
coalescing
(and more expensive in compile time too).
Can you point me to which part of the code handles that ?
Apology if I missed the obvious.
Thanks,
Seongbae
On 10/9/07, Vladimir Makarov <vmakarov@redhat.com> wrote:
> The patch is mainly initial implementation of optimistic coalescing
> which might be useful for architectures with big regular register
> files.
>
> 2007-10-09 Vladimir Makarov <vmakarov@redhat.com>
>
> * toplev.h (flag_ira_coalesce): New external variable.
>
> * ira-int.h (allocno): New members first_coalesced_allocno,
> next_coalesced_allocno.
> (ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO):
> New macros.
> (reg_class_subintersect): New external variable.
>
> * ira-color.c (processed_allocno_bitmap): New variable.
> (allocno_cost_compare_func, print_coalesced_allocno): New
> functions.
> (assign_hard_reg): Process coalesced allocnos.
> (get_coalesced_allocnos_best_class_and_freq): New function.
> (add_allocno_to_ordered_bucket): Use the function.
> (push_allocno_to_stack, push_allocnos_to_stack): Process coalesced
> allocnos.
> (remove_allocno_from_bucket_and_push, pop_allocnos_from_stack):
> Use print_coalesced_allocno.
> (setup_allocno_available_regs_num,
> setup_allocno_left_conflicts_num): Process coalesced allocnos.
> (copy_freq_compare_func, allocno_conflict_p, coalesce_allocnos):
> New functions.
> (color_allocnos): Allocate/free processed_allocno_bitmap. Call
> coalesce_allocnos.
> (priority_coloring): Allocate/free processed_allocno_bitmap.
>
> * ira-build.c (check_coalesced_allocnos): New function.
> (create_allocno): Initiate next_coalesced_allocno,
> first_coalesced_allocno.
> (create_cap_allocno): Check next_coalesced_allocno,
> first_coalesced_allocno.
>
> * common.opt (fira-coalesce): New option.
>
> * ira.c (setup_reg_class_intersect): New function.
> (reg_class_subintersect): New global variable.
> (init_ira_once): Call setup_reg_class_intersect.
>
> * doc/invoke.texi (-fira-coalescing): New option.
>
>
>
>
--
#pragma ident "Seongbae Park, compiler, http://seongbae.blogspot.com"