Commit d362bd85 by David Malcolm Committed by David Malcolm

fwprop.c: Use rtx_insn

gcc/
	* fwprop.c (single_def_use_dom_walker::before_dom_children):
	Strengthen local "insn" from rtx to rtx_insn *.
	(use_killed_between): Likewise for param "target_insn".
	(all_uses_available_at): Likewise for param "target_insn" and
	local "next".
	(update_df_init): Likewise for params "def_insn", "insn".
	(update_df): Likewise for param "insn".
	(try_fwprop_subst): Likewise for param "def_insn" and local
	"insn".
	(free_load_extend): Likewise for param "insn".
	(forward_propagate_subreg): Likewise for param "def_insn" and
	local "use_insn".
	(forward_propagate_asm): Likewise for param "def_insn" and local
	"use_insn".
	(forward_propagate_and_simplify): Likewise for param "def_insn"
	and local "use_insn".
	(forward_propagate_into): Likewise for locals "def_insn" and
	"use_insn".

From-SVN: r214328
parent 691fe203
2014-08-22 David Malcolm <dmalcolm@redhat.com> 2014-08-22 David Malcolm <dmalcolm@redhat.com>
* fwprop.c (single_def_use_dom_walker::before_dom_children):
Strengthen local "insn" from rtx to rtx_insn *.
(use_killed_between): Likewise for param "target_insn".
(all_uses_available_at): Likewise for param "target_insn" and
local "next".
(update_df_init): Likewise for params "def_insn", "insn".
(update_df): Likewise for param "insn".
(try_fwprop_subst): Likewise for param "def_insn" and local
"insn".
(free_load_extend): Likewise for param "insn".
(forward_propagate_subreg): Likewise for param "def_insn" and
local "use_insn".
(forward_propagate_asm): Likewise for param "def_insn" and local
"use_insn".
(forward_propagate_and_simplify): Likewise for param "def_insn"
and local "use_insn".
(forward_propagate_into): Likewise for locals "def_insn" and
"use_insn".
2014-08-22 David Malcolm <dmalcolm@redhat.com>
* function.c (emit_initial_value_sets): Strengthen local "seq" * function.c (emit_initial_value_sets): Strengthen local "seq"
from rtx to rtx_insn *. from rtx to rtx_insn *.
(instantiate_virtual_regs_in_insn): Likewise for param "insn" and (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
......
...@@ -218,7 +218,7 @@ single_def_use_dom_walker::before_dom_children (basic_block bb) ...@@ -218,7 +218,7 @@ single_def_use_dom_walker::before_dom_children (basic_block bb)
int bb_index = bb->index; int bb_index = bb->index;
struct df_md_bb_info *md_bb_info = df_md_get_bb_info (bb_index); struct df_md_bb_info *md_bb_info = df_md_get_bb_info (bb_index);
struct df_lr_bb_info *lr_bb_info = df_lr_get_bb_info (bb_index); struct df_lr_bb_info *lr_bb_info = df_lr_get_bb_info (bb_index);
rtx insn; rtx_insn *insn;
bitmap_copy (local_md, &md_bb_info->in); bitmap_copy (local_md, &md_bb_info->in);
bitmap_copy (local_lr, &lr_bb_info->in); bitmap_copy (local_lr, &lr_bb_info->in);
...@@ -719,7 +719,7 @@ local_ref_killed_between_p (df_ref ref, rtx from, rtx to) ...@@ -719,7 +719,7 @@ local_ref_killed_between_p (df_ref ref, rtx from, rtx to)
we check if the definition is killed after DEF_INSN or before we check if the definition is killed after DEF_INSN or before
TARGET_INSN insn, in their respective basic blocks. */ TARGET_INSN insn, in their respective basic blocks. */
static bool static bool
use_killed_between (df_ref use, rtx def_insn, rtx target_insn) use_killed_between (df_ref use, rtx_insn *def_insn, rtx_insn *target_insn)
{ {
basic_block def_bb = BLOCK_FOR_INSN (def_insn); basic_block def_bb = BLOCK_FOR_INSN (def_insn);
basic_block target_bb = BLOCK_FOR_INSN (target_insn); basic_block target_bb = BLOCK_FOR_INSN (target_insn);
...@@ -783,12 +783,12 @@ use_killed_between (df_ref use, rtx def_insn, rtx target_insn) ...@@ -783,12 +783,12 @@ use_killed_between (df_ref use, rtx def_insn, rtx target_insn)
would require full computation of available expressions; would require full computation of available expressions;
we check only restricted conditions, see use_killed_between. */ we check only restricted conditions, see use_killed_between. */
static bool static bool
all_uses_available_at (rtx def_insn, rtx target_insn) all_uses_available_at (rtx_insn *def_insn, rtx_insn *target_insn)
{ {
df_ref use; df_ref use;
struct df_insn_info *insn_info = DF_INSN_INFO_GET (def_insn); struct df_insn_info *insn_info = DF_INSN_INFO_GET (def_insn);
rtx def_set = single_set (def_insn); rtx def_set = single_set (def_insn);
rtx next; rtx_insn *next;
gcc_assert (def_set); gcc_assert (def_set);
...@@ -869,7 +869,7 @@ register_active_defs (df_ref use) ...@@ -869,7 +869,7 @@ register_active_defs (df_ref use)
I'm not doing this yet, though. */ I'm not doing this yet, though. */
static void static void
update_df_init (rtx def_insn, rtx insn) update_df_init (rtx_insn *def_insn, rtx_insn *insn)
{ {
#ifdef ENABLE_CHECKING #ifdef ENABLE_CHECKING
sparseset_clear (active_defs_check); sparseset_clear (active_defs_check);
...@@ -906,7 +906,7 @@ update_uses (df_ref use) ...@@ -906,7 +906,7 @@ update_uses (df_ref use)
uses if NOTES_ONLY is true. */ uses if NOTES_ONLY is true. */
static void static void
update_df (rtx insn, rtx note) update_df (rtx_insn *insn, rtx note)
{ {
struct df_insn_info *insn_info = DF_INSN_INFO_GET (insn); struct df_insn_info *insn_info = DF_INSN_INFO_GET (insn);
...@@ -933,9 +933,10 @@ update_df (rtx insn, rtx note) ...@@ -933,9 +933,10 @@ update_df (rtx insn, rtx note)
performed. */ performed. */
static bool static bool
try_fwprop_subst (df_ref use, rtx *loc, rtx new_rtx, rtx def_insn, bool set_reg_equal) try_fwprop_subst (df_ref use, rtx *loc, rtx new_rtx, rtx_insn *def_insn,
bool set_reg_equal)
{ {
rtx insn = DF_REF_INSN (use); rtx_insn *insn = DF_REF_INSN (use);
rtx set = single_set (insn); rtx set = single_set (insn);
rtx note = NULL_RTX; rtx note = NULL_RTX;
bool speed = optimize_bb_for_speed_p (BLOCK_FOR_INSN (insn)); bool speed = optimize_bb_for_speed_p (BLOCK_FOR_INSN (insn));
...@@ -1016,7 +1017,7 @@ try_fwprop_subst (df_ref use, rtx *loc, rtx new_rtx, rtx def_insn, bool set_reg_ ...@@ -1016,7 +1017,7 @@ try_fwprop_subst (df_ref use, rtx *loc, rtx new_rtx, rtx def_insn, bool set_reg_
load from memory. */ load from memory. */
static bool static bool
free_load_extend (rtx src, rtx insn) free_load_extend (rtx src, rtx_insn *insn)
{ {
rtx reg; rtx reg;
df_ref def, use; df_ref def, use;
...@@ -1057,10 +1058,11 @@ free_load_extend (rtx src, rtx insn) ...@@ -1057,10 +1058,11 @@ free_load_extend (rtx src, rtx insn)
/* If USE is a subreg, see if it can be replaced by a pseudo. */ /* If USE is a subreg, see if it can be replaced by a pseudo. */
static bool static bool
forward_propagate_subreg (df_ref use, rtx def_insn, rtx def_set) forward_propagate_subreg (df_ref use, rtx_insn *def_insn, rtx def_set)
{ {
rtx use_reg = DF_REF_REG (use); rtx use_reg = DF_REF_REG (use);
rtx use_insn, src; rtx_insn *use_insn;
rtx src;
/* Only consider subregs... */ /* Only consider subregs... */
enum machine_mode use_mode = GET_MODE (use_reg); enum machine_mode use_mode = GET_MODE (use_reg);
...@@ -1127,9 +1129,10 @@ forward_propagate_subreg (df_ref use, rtx def_insn, rtx def_set) ...@@ -1127,9 +1129,10 @@ forward_propagate_subreg (df_ref use, rtx def_insn, rtx def_set)
/* Try to replace USE with SRC (defined in DEF_INSN) in __asm. */ /* Try to replace USE with SRC (defined in DEF_INSN) in __asm. */
static bool static bool
forward_propagate_asm (df_ref use, rtx def_insn, rtx def_set, rtx reg) forward_propagate_asm (df_ref use, rtx_insn *def_insn, rtx def_set, rtx reg)
{ {
rtx use_insn = DF_REF_INSN (use), src, use_pat, asm_operands, new_rtx, *loc; rtx_insn *use_insn = DF_REF_INSN (use);
rtx src, use_pat, asm_operands, new_rtx, *loc;
int speed_p, i; int speed_p, i;
df_ref uses; df_ref uses;
...@@ -1204,9 +1207,9 @@ forward_propagate_asm (df_ref use, rtx def_insn, rtx def_set, rtx reg) ...@@ -1204,9 +1207,9 @@ forward_propagate_asm (df_ref use, rtx def_insn, rtx def_set, rtx reg)
result. */ result. */
static bool static bool
forward_propagate_and_simplify (df_ref use, rtx def_insn, rtx def_set) forward_propagate_and_simplify (df_ref use, rtx_insn *def_insn, rtx def_set)
{ {
rtx use_insn = DF_REF_INSN (use); rtx_insn *use_insn = DF_REF_INSN (use);
rtx use_set = single_set (use_insn); rtx use_set = single_set (use_insn);
rtx src, reg, new_rtx, *loc; rtx src, reg, new_rtx, *loc;
bool set_reg_equal; bool set_reg_equal;
...@@ -1329,7 +1332,8 @@ static bool ...@@ -1329,7 +1332,8 @@ static bool
forward_propagate_into (df_ref use) forward_propagate_into (df_ref use)
{ {
df_ref def; df_ref def;
rtx def_insn, def_set, use_insn; rtx_insn *def_insn, *use_insn;
rtx def_set;
rtx parent; rtx parent;
if (DF_REF_FLAGS (use) & DF_REF_READ_WRITE) if (DF_REF_FLAGS (use) & DF_REF_READ_WRITE)
......
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