diff options
author | vmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-10-16 00:52:59 +0000 |
---|---|---|
committer | vmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-10-16 00:52:59 +0000 |
commit | 2501d9b23b90c6a78ec169bc2aff75f5d08d2260 (patch) | |
tree | 46930f5d2d2fa9992f97afd3e7f9588e6fafc03f /gcc/ira-costs.c | |
parent | 7173d4d00091dd0096cce8ab7dd8d6c0e4018a45 (diff) | |
download | gcc-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.c | 4 |
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])); |