aboutsummaryrefslogtreecommitdiff
path: root/gcc/ree.c
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@linaro.org>2017-09-12 13:28:08 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2017-09-12 13:28:08 +0000
commit462a99aa98416135d2675d07d32f7ce234287983 (patch)
tree6a0d7b2184713f09474d42070b1f6e4fa7670a38 /gcc/ree.c
parente0bd6c9f0aa67d88bbb20019362a4572fc5fac3c (diff)
downloadgcc-462a99aa98416135d2675d07d32f7ce234287983.zip
gcc-462a99aa98416135d2675d07d32f7ce234287983.tar.gz
gcc-462a99aa98416135d2675d07d32f7ce234287983.tar.bz2
Make more use of REG_NREGS
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 uses that are more easily (and efficiently) written as REG_NREGS. 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * caller-save.c (add_used_regs): Use REG_NREGS instead of hard_regno_nregs. * config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise. * config/arm/arm.c (output_move_neon): Likewise. (arm_attr_length_move_neon): Likewise. (neon_split_vcombine): Likewise. * config/c6x/c6x.c (c6x_mark_reg_read): Likewise. (c6x_mark_reg_written): Likewise. (c6x_dwarf_register_span): Likewise. * config/i386/i386.c (ix86_save_reg): Likewise. * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise. (rws_access_reg): Likewise. * config/s390/s390.c (s390_call_saved_register_used): Likewise. * mode-switching.c (create_pre_exit): Likewise. * ree.c (combine_reaching_defs): Likewise. (add_removable_extension): Likewise. * regcprop.c (find_oldest_value_reg): Likewise. (copyprop_hardreg_forward_1): Likewise. * reload.c (reload_inner_reg_of_subreg): Likewise. (push_reload): Likewise. (combine_reloads): Likewise. (find_dummy_reload): Likewise. (reload_adjust_reg_for_mode): Likewise. * reload1.c (find_reload_regs): Likewise. (forget_old_reloads_1): Likewise. (reload_reg_free_for_value_p): Likewise. (reload_adjust_reg_for_temp): Likewise. (emit_reload_insns): Likewise. (delete_output_reload): Likewise. * sel-sched.c (choose_best_reg_1): Likewise. (choose_best_pseudo_reg): Likewise. From-SVN: r252010
Diffstat (limited to 'gcc/ree.c')
-rw-r--r--gcc/ree.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/gcc/ree.c b/gcc/ree.c
index 72564de..9e04954 100644
--- a/gcc/ree.c
+++ b/gcc/ree.c
@@ -823,8 +823,7 @@ combine_reaching_defs (ext_cand *cand, const_rtx set_pat, ext_state *state)
return false;
/* Ensure the number of hard registers of the copy match. */
- if (HARD_REGNO_NREGS (REGNO (src_reg), dst_mode)
- != HARD_REGNO_NREGS (REGNO (src_reg), GET_MODE (src_reg)))
+ if (HARD_REGNO_NREGS (REGNO (src_reg), dst_mode) != REG_NREGS (src_reg))
return false;
/* There's only one reaching def. */
@@ -1136,8 +1135,7 @@ add_removable_extension (const_rtx expr, rtx_insn *insn,
We allow this when the registers are different because the
code in combine_reaching_defs will handle that case correctly. */
- if ((HARD_REGNO_NREGS (REGNO (dest), mode)
- != HARD_REGNO_NREGS (REGNO (reg), GET_MODE (reg)))
+ if (HARD_REGNO_NREGS (REGNO (dest), mode) != REG_NREGS (reg)
&& reg_overlap_mentioned_p (dest, reg))
return;