/* This structure is used to record information about hard register
eliminations. */
-struct elim_table
+struct lra_elim_table
{
/* Hard register number to be eliminated. */
int from;
of eliminating a register in favor of another. If there is more
than one way of eliminating a particular register, the most
preferred should be specified first. */
-static struct elim_table *reg_eliminate = 0;
+static struct lra_elim_table *reg_eliminate = 0;
/* This is an intermediate structure to initialize the table. It has
exactly the members provided by ELIMINABLE_REGS. */
static void
print_elim_table (FILE *f)
{
- struct elim_table *ep;
+ struct lra_elim_table *ep;
for (ep = reg_eliminate; ep < ®_eliminate[NUM_ELIMINABLE_REGS]; ep++)
fprintf (f, "%s eliminate %d to %d (offset=" HOST_WIDE_INT_PRINT_DEC
VALUE. Setup FRAME_POINTER_NEEDED if elimination from frame
pointer to stack pointer is not possible anymore. */
static void
-setup_can_eliminate (struct elim_table *ep, bool value)
+setup_can_eliminate (struct lra_elim_table *ep, bool value)
{
ep->can_eliminate = ep->prev_can_eliminate = value;
if (! value
or NULL if none. The elimination table may contain more than
one elimination for the same hard register, but this map specifies
the one that we are currently using. */
-static struct elim_table *elimination_map[FIRST_PSEUDO_REGISTER];
+static struct lra_elim_table *elimination_map[FIRST_PSEUDO_REGISTER];
/* When an eliminable hard register becomes not eliminable, we use the
following special structure to restore original offsets for the
register. */
-static struct elim_table self_elim_table;
+static struct lra_elim_table self_elim_table;
/* Offsets should be used to restore original offsets for eliminable
hard register which just became not eliminable. Zero,
setup_elimination_map (void)
{
int i;
- struct elim_table *ep;
+ struct lra_elim_table *ep;
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
elimination_map[i] = NULL;
int
lra_get_elimination_hard_regno (int hard_regno)
{
- struct elim_table *ep;
+ struct lra_elim_table *ep;
if (hard_regno < 0 || hard_regno >= FIRST_PSEUDO_REGISTER)
return hard_regno;
/* Return elimination which will be used for hard reg REG, NULL
otherwise. */
-static struct elim_table *
+static struct lra_elim_table *
get_elimination (rtx reg)
{
int hard_regno;
- struct elim_table *ep;
+ struct lra_elim_table *ep;
HOST_WIDE_INT offset;
lra_assert (REG_P (reg));
bool subst_p, bool update_p, bool full_p)
{
enum rtx_code code = GET_CODE (x);
- struct elim_table *ep;
+ struct lra_elim_table *ep;
rtx new_rtx;
int i, j;
const char *fmt;
mark_not_eliminable (rtx x, enum machine_mode mem_mode)
{
enum rtx_code code = GET_CODE (x);
- struct elim_table *ep;
+ struct lra_elim_table *ep;
int i, j;
const char *fmt;
int i;
rtx substed_operand[MAX_RECOG_OPERANDS];
rtx orig_operand[MAX_RECOG_OPERANDS];
- struct elim_table *ep;
+ struct lra_elim_table *ep;
rtx plus_src, plus_cst_src;
lra_insn_recog_data_t id;
struct lra_static_insn_data *static_id;
update_reg_eliminate (bitmap insns_with_changed_offsets)
{
bool prev, result;
- struct elim_table *ep, *ep1;
+ struct lra_elim_table *ep, *ep1;
HARD_REG_SET temp_hard_reg_set;
/* Clear self elimination offsets. */
static void
init_elim_table (void)
{
- struct elim_table *ep;
+ struct lra_elim_table *ep;
#ifdef ELIMINABLE_REGS
bool value_p;
const struct elim_table_1 *ep1;
#endif
if (!reg_eliminate)
- reg_eliminate = XCNEWVEC (struct elim_table, NUM_ELIMINABLE_REGS);
+ reg_eliminate = XCNEWVEC (struct lra_elim_table, NUM_ELIMINABLE_REGS);
memset (self_elim_offsets, 0, sizeof (self_elim_offsets));
/* Initiate member values which will be never changed. */
bool stop_to_sp_elimination_p;
basic_block bb;
rtx_insn *insn;
- struct elim_table *ep;
+ struct lra_elim_table *ep;
init_elim_table ();
FOR_EACH_BB_FN (bb, cfun)
lra_eliminate_reg_if_possible (rtx *loc)
{
int regno;
- struct elim_table *ep;
+ struct lra_elim_table *ep;
lra_assert (REG_P (*loc));
if ((regno = REGNO (*loc)) >= FIRST_PSEUDO_REGISTER
unsigned int uid;
bitmap_head insns_with_changed_offsets;
bitmap_iterator bi;
- struct elim_table *ep;
+ struct lra_elim_table *ep;
gcc_assert (! final_p || ! first_p);