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:
parent
6904889880
commit
9d19c7329c
2 changed files with 14 additions and 1 deletions
|
@ -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)
|
||||
|
|
|
@ -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];
|
||||
|
|
Loading…
Add table
Reference in a new issue