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: [ira] patch for optimistic register coalescing implementation


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";


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