From 6243e03f60a2d83343dabfa2084ad210f742607a Mon Sep 17 00:00:00 2001 From: rsandifo Date: Thu, 28 Aug 2014 06:24:12 +0000 Subject: [PATCH] gcc/ * regcprop.c (cprop_find_used_regs_1): Delete. (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214652 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/regcprop.c | 37 ++++++++++++++++--------------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5deaac3dd85e..45ec00b1de46 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2014-08-28 Richard Sandiford + + * regcprop.c (cprop_find_used_regs_1): Delete. + (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx. + 2014-08-28 Richard Sandiford * regcprop.c: Include rtl-iter.h. diff --git a/gcc/regcprop.c b/gcc/regcprop.c index e65f89df1682..3297721df391 100644 --- a/gcc/regcprop.c +++ b/gcc/regcprop.c @@ -702,33 +702,28 @@ apply_debug_insn_changes (struct value_data *vd, unsigned int regno) apply_change_group (); } -/* Called via for_each_rtx, for all used registers in a real - insn apply DEBUG_INSN changes that change registers to the - used register. */ - -static int -cprop_find_used_regs_1 (rtx *loc, void *data) -{ - if (REG_P (*loc)) - { - struct value_data *vd = (struct value_data *) data; - if (vd->e[REGNO (*loc)].debug_insn_changes) - { - apply_debug_insn_changes (vd, REGNO (*loc)); - free_debug_insn_changes (vd, REGNO (*loc)); - } - } - return 0; -} - /* Called via note_uses, for all used registers in a real insn apply DEBUG_INSN changes that change registers to the used registers. */ static void -cprop_find_used_regs (rtx *loc, void *vd) +cprop_find_used_regs (rtx *loc, void *data) { - for_each_rtx (loc, cprop_find_used_regs_1, vd); + struct value_data *const vd = (struct value_data *) data; + subrtx_iterator::array_type array; + FOR_EACH_SUBRTX (iter, array, *loc, NONCONST) + { + const_rtx x = *iter; + if (REG_P (x)) + { + unsigned int regno = REGNO (x); + if (vd->e[regno].debug_insn_changes) + { + apply_debug_insn_changes (vd, regno); + free_debug_insn_changes (vd, regno); + } + } + } } /* Perform the forward copy propagation on basic block BB. */ -- 2.39.5