Commit c1b52c0e by Richard Sandiford Committed by Richard Sandiford

Make more use of in_hard_reg_set_p

An upcoming patch will convert hard_regno_nregs into an inline
function, which in turn allows hard_regno_nregs to be used as the
name of a targetm field.  This patch rewrites a use that can use
in_hard_reg_set_p instead.

2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	* ira-costs.c (record_operand_costs): Use in_hard_reg_set_p
	instead of hard_regno_nregs.

From-SVN: r252013
parent 4edd6298
2017-09-12 Richard Sandiford <richard.sandiford@linaro.org> 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
* ira-costs.c (record_operand_costs): Use in_hard_reg_set_p
instead of hard_regno_nregs.
2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
* config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use
end_hard_regno instead of hard_regno_nregs. end_hard_regno instead of hard_regno_nregs.
* config/s390/s390.c (s390_reg_clobbered_rtx): Likewise. * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
......
...@@ -1386,7 +1386,7 @@ record_operand_costs (rtx_insn *insn, enum reg_class *pref) ...@@ -1386,7 +1386,7 @@ record_operand_costs (rtx_insn *insn, enum reg_class *pref)
cost_classes_t cost_classes_ptr = regno_cost_classes[regno]; cost_classes_t cost_classes_ptr = regno_cost_classes[regno];
enum reg_class *cost_classes = cost_classes_ptr->classes; enum reg_class *cost_classes = cost_classes_ptr->classes;
reg_class_t rclass; reg_class_t rclass;
int k, nr; int k;
i = regno == (int) REGNO (src) ? 1 : 0; i = regno == (int) REGNO (src) ? 1 : 0;
for (k = cost_classes_ptr->num - 1; k >= 0; k--) for (k = cost_classes_ptr->num - 1; k >= 0; k--)
...@@ -1398,18 +1398,9 @@ record_operand_costs (rtx_insn *insn, enum reg_class *pref) ...@@ -1398,18 +1398,9 @@ record_operand_costs (rtx_insn *insn, enum reg_class *pref)
{ {
if (reg_class_size[rclass] == 1) if (reg_class_size[rclass] == 1)
op_costs[i]->cost[k] = -frequency; op_costs[i]->cost[k] = -frequency;
else else if (in_hard_reg_set_p (reg_class_contents[rclass],
{ mode, other_regno))
for (nr = 0; op_costs[i]->cost[k] = -frequency;
nr < hard_regno_nregs[other_regno][mode];
nr++)
if (! TEST_HARD_REG_BIT (reg_class_contents[rclass],
other_regno + nr))
break;
if (nr == hard_regno_nregs[other_regno][mode])
op_costs[i]->cost[k] = -frequency;
}
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment