Commit e1a2b021 by Richard Sandiford Committed by Richard Sandiford

df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.

gcc/
	* df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
	Change type of new_regno to unsigned int.
	* df-scan.c (df_ref_change_reg_with_loc_1): Change type of
	new_regno to unsigned int.
	(df_ref_change_reg_with_loc): Remove old_regno parameter.
	Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
	* rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
	(SET_REGNO_RAW): Add space after ",".

From-SVN: r223338
parent dc8afb70
2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
* df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
Change type of new_regno to unsigned int.
* df-scan.c (df_ref_change_reg_with_loc_1): Change type of
new_regno to unsigned int.
(df_ref_change_reg_with_loc): Remove old_regno parameter.
Change type of new_regno to unsigned int. Use SET_REGNO_RAW.
* rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
(SET_REGNO_RAW): Add space after ",".
2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
* rtl.h (REG_NREGS): New macro
* alias.c (record_set): Use it.
* cfgcleanup.c (mark_effect): Likewise.
......
......@@ -1819,7 +1819,7 @@ df_insn_change_bb (rtx_insn *insn, basic_block new_bb)
static void
df_ref_change_reg_with_loc_1 (struct df_reg_info *old_df,
struct df_reg_info *new_df,
int new_regno, rtx loc)
unsigned int new_regno, rtx loc)
{
df_ref the_ref = old_df->reg_chain;
......@@ -1904,25 +1904,33 @@ df_ref_change_reg_with_loc_1 (struct df_reg_info *old_df,
}
/* Change the regno of all refs that contained LOC from OLD_REGNO to
NEW_REGNO. Refs that do not match LOC are not changed which means
that artificial refs are not changed since they have no loc. This
call is to support the SET_REGNO macro. */
/* Change the regno of register LOC to NEW_REGNO and update the df
information accordingly. Refs that do not match LOC are not changed
which means that artificial refs are not changed since they have no loc.
This call is to support the SET_REGNO macro. */
void
df_ref_change_reg_with_loc (int old_regno, int new_regno, rtx loc)
df_ref_change_reg_with_loc (rtx loc, unsigned int new_regno)
{
if ((!df) || (old_regno == -1) || (old_regno == new_regno))
unsigned int old_regno = REGNO (loc);
if (old_regno == new_regno)
return;
df_grow_reg_info ();
df_ref_change_reg_with_loc_1 (DF_REG_DEF_GET (old_regno),
DF_REG_DEF_GET (new_regno), new_regno, loc);
df_ref_change_reg_with_loc_1 (DF_REG_USE_GET (old_regno),
DF_REG_USE_GET (new_regno), new_regno, loc);
df_ref_change_reg_with_loc_1 (DF_REG_EQ_USE_GET (old_regno),
DF_REG_EQ_USE_GET (new_regno), new_regno, loc);
if (df)
{
df_grow_reg_info ();
df_ref_change_reg_with_loc_1 (DF_REG_DEF_GET (old_regno),
DF_REG_DEF_GET (new_regno),
new_regno, loc);
df_ref_change_reg_with_loc_1 (DF_REG_USE_GET (old_regno),
DF_REG_USE_GET (new_regno),
new_regno, loc);
df_ref_change_reg_with_loc_1 (DF_REG_EQ_USE_GET (old_regno),
DF_REG_EQ_USE_GET (new_regno),
new_regno, loc);
}
SET_REGNO_RAW (loc, new_regno);
}
......
......@@ -1049,7 +1049,7 @@ extern void df_recompute_luids (basic_block);
extern void df_insn_change_bb (rtx_insn *, basic_block);
extern void df_maybe_reorganize_use_refs (enum df_ref_order);
extern void df_maybe_reorganize_def_refs (enum df_ref_order);
extern void df_ref_change_reg_with_loc (int, int, rtx);
extern void df_ref_change_reg_with_loc (rtx, unsigned int);
extern void df_notes_rescan (rtx_insn *);
extern void df_hard_reg_init (void);
extern void df_update_entry_block_defs (void);
......
......@@ -1693,9 +1693,8 @@ inline rtx_insn *JUMP_LABEL_AS_INSN (const rtx_insn *insn)
/* For a REG rtx, REGNO extracts the register number. REGNO can only
be used on RHS. Use SET_REGNO to change the value. */
#define REGNO(RTX) (rhs_regno(RTX))
#define SET_REGNO(RTX,N) \
(df_ref_change_reg_with_loc (REGNO (RTX), N, RTX), XCUINT (RTX, 0, REG) = N)
#define SET_REGNO_RAW(RTX,N) (XCUINT (RTX, 0, REG) = N)
#define SET_REGNO(RTX, N) (df_ref_change_reg_with_loc (RTX, N))
#define SET_REGNO_RAW(RTX, N) (XCUINT (RTX, 0, REG) = N)
/* Return the number of consecutive registers in a REG. This is always
1 for pseudo registers and is determined by HARD_REGNO_NREGS for
......
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