aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tom@codesourcery.com>2014-09-06 08:08:36 +0000
committerTom de Vries <vries@gcc.gnu.org>2014-09-06 08:08:36 +0000
commit811e4f15d616e4501d5beff25075bfea57a2f1aa (patch)
treebe8aa4847fbb06e39c4310cac65cf8624dcac97d
parentda27f5567c0dd3fccf035e14bb7010a0538648e4 (diff)
downloadgcc-811e4f15d616e4501d5beff25075bfea57a2f1aa.zip
gcc-811e4f15d616e4501d5beff25075bfea57a2f1aa.tar.gz
gcc-811e4f15d616e4501d5beff25075bfea57a2f1aa.tar.bz2
Fix IRA_HARD_REGNO_ADD_COST_MULTIPLIER in ira_tune_allocno_costs
2014-09-06 Tom de Vries <tom@codesourcery.com> * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS. From-SVN: r214988
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/ira-costs.c22
2 files changed, 16 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a8ef78a..97408f1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2014-09-06 Tom de Vries <tom@codesourcery.com>
+
+ * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
+ IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
+ ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
+
2014-09-05 Dominique Dhumieres <dominiq@lps.ens.fr>
PR target/63188
diff --git a/gcc/ira-costs.c b/gcc/ira-costs.c
index 774a958..57239f5 100644
--- a/gcc/ira-costs.c
+++ b/gcc/ira-costs.c
@@ -2217,21 +2217,19 @@ ira_tune_allocno_costs (void)
crossed_calls_clobber_regs
= &(ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS (a));
if (ira_hard_reg_set_intersection_p (regno, mode,
- *crossed_calls_clobber_regs))
- {
- if (ira_hard_reg_set_intersection_p (regno, mode,
+ *crossed_calls_clobber_regs)
+ && (ira_hard_reg_set_intersection_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]));
+ || 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]));
#ifdef IRA_HARD_REGNO_ADD_COST_MULTIPLIER
- cost += ((ira_memory_move_cost[mode][rclass][0]
- + ira_memory_move_cost[mode][rclass][1])
- * ALLOCNO_FREQ (a)
- * IRA_HARD_REGNO_ADD_COST_MULTIPLIER (regno) / 2);
+ cost += ((ira_memory_move_cost[mode][rclass][0]
+ + ira_memory_move_cost[mode][rclass][1])
+ * ALLOCNO_FREQ (a)
+ * IRA_HARD_REGNO_ADD_COST_MULTIPLIER (regno) / 2);
#endif
- }
if (INT_MAX - cost < reg_costs[j])
reg_costs[j] = INT_MAX;
else