+2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
+
+ * reload.h (struct reg_equivs_t): Change type of init to
+ rtx_insn *.
+ * ira.c (fix_reg_equiv_init): Adjust.
+ * reload1.c (eliminate_regs_1): Likewise.
+ (init_eliminable_invariants): Likewise.
+
2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* cselib.c (fp_setter_insn): Take a rtx_insn *.
{
int max_regno = max_reg_num ();
int i, new_regno, max;
- rtx x, prev, next, insn, set;
+ rtx set;
+ rtx_insn_list *x, *next, *prev;
+ rtx_insn *insn;
if (max_regno_before_ira < max_regno)
{
max = vec_safe_length (reg_equivs);
grow_reg_equivs ();
for (i = FIRST_PSEUDO_REGISTER; i < max; i++)
- for (prev = NULL_RTX, x = reg_equiv_init (i);
+ for (prev = NULL, x = reg_equiv_init (i);
x != NULL_RTX;
x = next)
{
- next = XEXP (x, 1);
- insn = XEXP (x, 0);
- set = single_set (as_a <rtx_insn *> (insn));
+ next = x->next ();
+ insn = x->insn ();
+ set = single_set (insn);
ira_assert (set != NULL_RTX
&& (REG_P (SET_DEST (set)) || REG_P (SET_SRC (set))));
if (REG_P (SET_DEST (set))
/* The list of insns that initialized reg N from its equivalent
constant or memory slot. */
- rtx init;
+ rtx_insn_list *init;
};
#define reg_equiv_constant(ELT) \
mem_mode, insn, true, for_costs);
/* There exists at least one use of REGNO that cannot be
eliminated. Prevent the defining insn from being deleted. */
- reg_equiv_init (regno) = NULL_RTX;
+ reg_equiv_init (regno) = NULL;
if (!for_costs)
alter_reg (regno, -1, true);
}
{
reg_equiv_memory_loc (i) = force_const_mem (mode, x);
if (! reg_equiv_memory_loc (i))
- reg_equiv_init (i) = NULL_RTX;
+ reg_equiv_init (i) = NULL;
}
}
else
{
- reg_equiv_init (i) = NULL_RTX;
+ reg_equiv_init (i) = NULL;
continue;
}
}
else
- reg_equiv_init (i) = NULL_RTX;
+ reg_equiv_init (i) = NULL;
}
}