resubmitting IRA improvements: patch 3/4

Vladimir N. Makarov vmakarov@redhat.com
Fri Aug 13 21:00:00 GMT 2010


This is patch which decreases number of processed register classes in 
costs part of IRA to compensate slow down by the previous patch.

Is it ok to commit into the trunk?

2010-08-13  Vladimir Makarov <vmakarov@redhat.com>

     * ira-int.h (struct target_ira_int): Remove x_cost_classes.

     * ira-costs.c: Fix formatting.
     (cost_classes, cost_classes_num): Remove.
     (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
     (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
     (cost_classes_del, cost_classes_htab): New.
     (cost_classes_aclass_cache, cost_classes_mode_cache): New.
     (initiate_regno_cost_classes, setup_cost_classes): New.
     (setup_regno_cost_classes_by_aclass): New.
     (setup_regno_cost_classes_by_mode, finish_regno_cost_classes):
     New.
     (record_reg_classes): Use regno_cost_classes instead of
     cost_classes.  Move checking opposite operand up.
     (record_address_regs): Use regno_cost_classes
     instead of cost_classes.
     (scan_one_insn): Ditto.  Use always general register.
     (print_allocno_costs): Use regno_cost_classes instead of
     cost_classes.
     (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
     (find_costs_and_classes): Set up cost classes for each registers.
     Use also their mode for this.  Use regno_cost_classes instead of
     cost_classes.
     (setup_allocno_class_and_costs): Use regno_cost_classes instead of
     cost_classes.
     (free_ira_costs, ira_init_costs): Don't use cost_classes.
     (ira_costs, ira_set_pseudo_classes): Call
     initiate_regno_cost_classes and finish_regno_cost_classes.

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: costs2.patch
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20100813/50c4a30f/attachment.ksh>


More information about the Gcc-patches mailing list