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
This commit is contained in:
Richard Sandiford 2015-05-19 07:09:23 +00:00 committed by Richard Sandiford
parent dc8afb709d
commit e1a2b02198
4 changed files with 36 additions and 18 deletions

View File

@ -1,3 +1,14 @@
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

View File

@ -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 ();
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);
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);
}

View File

@ -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);

View File

@ -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