This is the mail archive of the gcc@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 accumulated costs


Vladimir Makarov wrote:
Hi, Richard. Returning to accurate cost accumulation issue you found recently. Here is the patch fixing it. You could try, if you want, how MIPS will behave with it. The patch also more accurately calculates ALLOCNO_CALL_FREQ which affects decision to spill allocno in assign_hard_reg if it is more profitable.


2008-10-01 Vladimir Makarov <vmakarov@redhat.com>


   * ira-int.h (ira_allocno): Add member updated_cover_class_cost.
   (ALLOCNO_UPDATED_COVER_CLASS_COST): New.
   (ira_fast_allocation): Remove the prototype.
      * ira-color.c (update_copy_costs, allocno_cost_compare_func,
   assign_hard_reg, calculate_allocno_spill_cost): Use updated costs.
   (color_pass): Modify the updated costs.
   (ira_color): Rename to color.  Make it static.
   (ira_fast_allocation): Rename to fast_allocation.  Make it static.
   (ira_color): New function.
      * ira-conflicts.c (process_regs_for_copy): Propagate hard reg cost
   change.

   * ira-lives.c (last_call_num, allocno_saved_at_call): New
   variables.
   (set_allocno_live, clear_allocno_live, mark_ref_live,
   mark_ref_dead): Invalidate corresponding element of
   allocno_saved_at_call.
   (process_bb_node_lives): Increment last_call_num.  Setup
   allocno_saved_at_call.  Don't increase ALLOCNO_CALL_FREQ if the
   allocno was already saved.
   (ira_create_allocno_live_ranges): Initiate last_call_num and
   allocno_saved_at_call.

   * ira-build.c (ira_create_allocno): Initiate
   ALLOCNO_UPDATED_COVER_CLASS_COST.
   (create_cap_allocno, propagate_allocno_info,
   remove_unnecessary_allocnos): Remove setting updated costs.
   (ira_flattening): Set up ALLOCNO_UPDATED_COVER_CLASS_COST.

* ira.c (ira): Don't call ira_fast_allocation.

* ira-costs.c (setup_allocno_cover_class_and_costs): Don't set up
updated costs.
This is fine. Sorry about the long delay.

Jeff


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