re PR target/49865 (Unnecessary reload causes small bloat)

2011-12-20  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/49865
	* ira-costs.c (find_costs_and_classes): Prefer registers even
          if the memory cost is the same.

From-SVN: r182553
This commit is contained in:
Vladimir Makarov 2011-12-20 21:29:36 +00:00 committed by Vladimir Makarov
parent 6904889880
commit 9d19c7329c
2 changed files with 14 additions and 1 deletions

View file

@ -1,3 +1,9 @@
2011-12-20 Vladimir Makarov <vmakarov@redhat.com>
PR target/49865
* ira-costs.c (find_costs_and_classes): Prefer registers even
if the memory cost is the same.
2011-12-20 Joseph Myers <joseph@codesourcery.com>
* c-decl.c (diagnose_mismatched_decls, grokdeclarator, grokfield)

View file

@ -1693,7 +1693,14 @@ find_costs_and_classes (FILE *dump_file)
else if (i_costs[k] == best_cost)
best = ira_reg_class_subunion[best][rclass];
if (pass == flag_expensive_optimizations
&& i_costs[k] < i_mem_cost
/* We still prefer registers to memory even at this
stage if their costs are the same. We will make
a final decision during assigning hard registers
when we have all info including more accurate
costs which might be affected by assigning hard
registers to other pseudos because the pseudos
involved in moves can be coalesced. */
&& i_costs[k] <= i_mem_cost
&& (reg_class_size[reg_class_subunion[alt_class][rclass]]
> reg_class_size[alt_class]))
alt_class = reg_class_subunion[alt_class][rclass];