aboutsummaryrefslogtreecommitdiff
path: root/gcc/ira.c
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2014-09-09 15:10:39 +0000
committerDavid Malcolm <dmalcolm@gcc.gnu.org>2014-09-09 15:10:39 +0000
commit0cc97fc5522a17788b0d47550f37d592ffca56ff (patch)
tree9fc7a0c191becf6398b01c789e1d25eaa063ba97 /gcc/ira.c
parentfcad3635f9cc635ebdd1f5b7ae2cd1586ac4511c (diff)
downloadgcc-0cc97fc5522a17788b0d47550f37d592ffca56ff.zip
gcc-0cc97fc5522a17788b0d47550f37d592ffca56ff.tar.gz
gcc-0cc97fc5522a17788b0d47550f37d592ffca56ff.tar.bz2
struct ira_reg_equiv_s's "init_insns" is an rtx_insn_list
gcc/ChangeLog: 2014-09-09 David Malcolm <dmalcolm@redhat.com> * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather than NULL_RTX. (no_equiv): Likewise. (update_equiv_regs): Likewise. (setup_reg_equiv): Likewise. Strengthen locals "elem", "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn" from rtx to rtx_insn *. Use methods of "elem" for typesafety and clarity. * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns" from rtx to rtx_insn_list *. * lra-assigns.c (spill_for): Strengthen local "x" from rtx to rtx_insn_list * and use methods for clarity and typesafety. * lra-constraints.c (contains_deleted_insn_p): Likewise for param "list". (init_insn_rhs_dead_pseudo_p): Likewise for local "insns". Remove redundant check on INSN_P (insns): this cannot hold, as "insns" is an INSN_LIST, not an insn. (reverse_equiv_p): Strengthen local "insns" from rtx to rtx_insn_list * and use methods for clarity and typesafety. (contains_reloaded_insn_p): Likewise for local "list". From-SVN: r215082
Diffstat (limited to 'gcc/ira.c')
-rw-r--r--gcc/ira.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/gcc/ira.c b/gcc/ira.c
index 757819d..a04ec2b 100644
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -2605,7 +2605,7 @@ ira_update_equiv_info_by_shuffle_insn (int to_regno, int from_regno, rtx_insn *i
ira_reg_equiv[to_regno].memory
= ira_reg_equiv[to_regno].constant
= ira_reg_equiv[to_regno].invariant
- = ira_reg_equiv[to_regno].init_insns = NULL_RTX;
+ = ira_reg_equiv[to_regno].init_insns = NULL;
if (internal_flag_ira_verbose > 3 && ira_dump_file != NULL)
fprintf (ira_dump_file,
" Invalidating equiv info for reg %d\n", to_regno);
@@ -3259,7 +3259,7 @@ no_equiv (rtx reg, const_rtx store ATTRIBUTE_UNUSED,
if (reg_equiv[regno].is_arg_equivalence)
return;
ira_reg_equiv[regno].defined_p = false;
- ira_reg_equiv[regno].init_insns = NULL_RTX;
+ ira_reg_equiv[regno].init_insns = NULL;
for (; list; list = XEXP (list, 1))
{
rtx insn = XEXP (list, 0);
@@ -3732,7 +3732,7 @@ update_equiv_regs (void)
reg_equiv[regno].init_insns
= XEXP (reg_equiv[regno].init_insns, 1);
- ira_reg_equiv[regno].init_insns = NULL_RTX;
+ ira_reg_equiv[regno].init_insns = NULL;
bitmap_set_bit (cleared_regs, regno);
}
/* Move the initialization of the register to just before
@@ -3820,15 +3820,17 @@ static void
setup_reg_equiv (void)
{
int i;
- rtx elem, prev_elem, next_elem, insn, set, x;
+ rtx_insn_list *elem, *prev_elem, *next_elem;
+ rtx_insn *insn;
+ rtx set, x;
for (i = FIRST_PSEUDO_REGISTER; i < ira_reg_equiv_len; i++)
for (prev_elem = NULL, elem = ira_reg_equiv[i].init_insns;
elem;
prev_elem = elem, elem = next_elem)
{
- next_elem = XEXP (elem, 1);
- insn = XEXP (elem, 0);
+ next_elem = elem->next ();
+ insn = elem->insn ();
set = single_set (insn);
/* Init insns can set up equivalence when the reg is a destination or
@@ -3897,7 +3899,7 @@ setup_reg_equiv (void)
if (ira_reg_equiv[i].memory == NULL_RTX)
{
ira_reg_equiv[i].defined_p = false;
- ira_reg_equiv[i].init_insns = NULL_RTX;
+ ira_reg_equiv[i].init_insns = NULL;
break;
}
}
@@ -3907,7 +3909,7 @@ setup_reg_equiv (void)
}
}
ira_reg_equiv[i].defined_p = false;
- ira_reg_equiv[i].init_insns = NULL_RTX;
+ ira_reg_equiv[i].init_insns = NULL;
break;
}
}