ira-lives.c (process_single_reg_class_operands): Update the hard reg costs for all the hard registers desired by the single reg...

* ira-lives.c (process_single_reg_class_operands): Update the 
	hard reg costs for all the hard registers desired by the single
	reg class operand.

From-SVN: r153487
This commit is contained in:
Jeff Law 2009-10-22 21:43:14 -06:00 committed by Jeff Law
parent 5ba0d527e1
commit d5b5b6bca0
2 changed files with 13 additions and 4 deletions

View file

@ -1,3 +1,9 @@
2009-10-22 Jeff Law <law@redhat.com>
* ira-lives.c (process_single_reg_class_operands): Update the
hard reg costs for all the hard registers desired by the
single reg class operand.
2009-10-22 Richard Sandiford <rdsandiford@googlemail.com>
* simplify-rtx.c (simplify_replace_fn_rtx): Add a fallback case

View file

@ -841,6 +841,7 @@ process_single_reg_class_operands (bool in_p, int freq)
[ira_class_hard_regs[cl][0]]) >= 0
&& reg_class_size[cl] <= (unsigned) CLASS_MAX_NREGS (cl, mode))
{
int i, size;
cost
= (freq
* (in_p
@ -848,10 +849,12 @@ process_single_reg_class_operands (bool in_p, int freq)
: ira_get_register_move_cost (mode, cl, cover_class)));
ira_allocate_and_set_costs
(&ALLOCNO_CONFLICT_HARD_REG_COSTS (operand_a), cover_class, 0);
ALLOCNO_CONFLICT_HARD_REG_COSTS (operand_a)
[ira_class_hard_reg_index
[cover_class][ira_class_hard_regs[cl][0]]]
-= cost;
size = ira_reg_class_nregs[cover_class][mode];
for (i = 0; i < size; i++)
ALLOCNO_CONFLICT_HARD_REG_COSTS (operand_a)
[ira_class_hard_reg_index
[cover_class][ira_class_hard_regs[cl][i]]]
-= cost;
}
}