summaryrefslogtreecommitdiff
path: root/gcc/ira-costs.c
diff options
context:
space:
mode:
authorvmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2008-10-16 00:52:59 +0000
committervmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2008-10-16 00:52:59 +0000
commit2501d9b23b90c6a78ec169bc2aff75f5d08d2260 (patch)
tree46930f5d2d2fa9992f97afd3e7f9588e6fafc03f /gcc/ira-costs.c
parent7173d4d00091dd0096cce8ab7dd8d6c0e4018a45 (diff)
downloadgcc-2501d9b23b90c6a78ec169bc2aff75f5d08d2260.tar.gz
2008-10-14 Vladimir Makarov <vmakarov@redhat.com>
PR target/37633 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Check HARD_REGNO_CALL_PART_CLOBBERED. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141161 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ira-costs.c')
-rw-r--r--gcc/ira-costs.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/ira-costs.c b/gcc/ira-costs.c
index 774902035e1..64b2e7995d6 100644
--- a/gcc/ira-costs.c
+++ b/gcc/ira-costs.c
@@ -1572,8 +1572,8 @@ ira_tune_allocno_costs_and_cover_classes (void)
regno = ira_class_hard_regs[cover_class][j];
rclass = REGNO_REG_CLASS (regno);
cost = 0;
- /* ??? If only part is call clobbered. */
- if (! ira_hard_reg_not_in_set_p (regno, mode, call_used_reg_set))
+ if (! ira_hard_reg_not_in_set_p (regno, mode, call_used_reg_set)
+ || HARD_REGNO_CALL_PART_CLOBBERED (regno, mode))
cost += (ALLOCNO_CALL_FREQ (a)
* (ira_memory_move_cost[mode][rclass][0]
+ ira_memory_move_cost[mode][rclass][1]));