From: Roger Sayle Date: Tue, 28 Jan 2003 14:52:07 +0000 (+0000) Subject: * cse.c (cse_insn): Avoid redundant REG_EQUAL notes. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a77b7e32ec72dc7ee6085cfe0cf29b4384c70b1e;p=gcc.git * cse.c (cse_insn): Avoid redundant REG_EQUAL notes. From-SVN: r61971 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2fcc66f83cc..626823b06f3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2003-01-28 Roger Sayle + + * cse.c (cse_insn): Avoid redundant REG_EQUAL notes. + 2003-01-28 Richard Sandiford * config/sh/sh.h (CLASS_MAX_NREGS): If TARGET_SHMEDIA, and the given diff --git a/gcc/cse.c b/gcc/cse.c index 84210babcbd..e396042111e 100644 --- a/gcc/cse.c +++ b/gcc/cse.c @@ -5684,12 +5684,16 @@ cse_insn (insn, libcall_insn) && GET_CODE (XEXP (XEXP (src_const, 0), 0)) == LABEL_REF && GET_CODE (XEXP (XEXP (src_const, 0), 1)) == LABEL_REF)) { - /* Make sure that the rtx is not shared with any other insn. */ - src_const = copy_rtx (src_const); + /* We only want a REG_EQUAL note if src_const != src. */ + if (! rtx_equal_p (src, src_const)) + { + /* Make sure that the rtx is not shared. */ + src_const = copy_rtx (src_const); - /* Record the actual constant value in a REG_EQUAL note, making - a new one if one does not already exist. */ - set_unique_reg_note (insn, REG_EQUAL, src_const); + /* Record the actual constant value in a REG_EQUAL note, + making a new one if one does not already exist. */ + set_unique_reg_note (insn, REG_EQUAL, src_const); + } /* If storing a constant value in a register that previously held the constant value 0,