Commit bdda9b17 by David Malcolm Committed by David Malcolm

Delete find_last_value

gcc/
2014-08-28  David Malcolm  <dmalcolm@redhat.com>

	* rtl.h (find_last_value): Delete.
	* rtlanal.c (find_last_value): Delete.

From-SVN: r214694
parent dc01c3d1
2014-08-28 David Malcolm <dmalcolm@redhat.com> 2014-08-28 David Malcolm <dmalcolm@redhat.com>
* rtl.h (find_last_value): Delete.
* rtlanal.c (find_last_value): Delete.
2014-08-28 David Malcolm <dmalcolm@redhat.com>
* cfgexpand.c (pass_expand::execute): Strengthen local "after" * cfgexpand.c (pass_expand::execute): Strengthen local "after"
from rtx to rtx_insn *. from rtx to rtx_insn *.
* cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
...@@ -2751,7 +2751,6 @@ extern rtx single_set_2 (const_rtx, const_rtx); ...@@ -2751,7 +2751,6 @@ extern rtx single_set_2 (const_rtx, const_rtx);
extern int multiple_sets (const_rtx); extern int multiple_sets (const_rtx);
extern int set_noop_p (const_rtx); extern int set_noop_p (const_rtx);
extern int noop_move_p (const_rtx); extern int noop_move_p (const_rtx);
extern rtx find_last_value (rtx, rtx *, rtx, int);
extern int refers_to_regno_p (unsigned int, unsigned int, const_rtx, rtx *); extern int refers_to_regno_p (unsigned int, unsigned int, const_rtx, rtx *);
extern int reg_overlap_mentioned_p (const_rtx, const_rtx); extern int reg_overlap_mentioned_p (const_rtx, const_rtx);
extern const_rtx set_of (const_rtx, const_rtx); extern const_rtx set_of (const_rtx, const_rtx);
......
...@@ -1361,52 +1361,6 @@ noop_move_p (const_rtx insn) ...@@ -1361,52 +1361,6 @@ noop_move_p (const_rtx insn)
} }
/* Return the last thing that X was assigned from before *PINSN. If VALID_TO
is not NULL_RTX then verify that the object is not modified up to VALID_TO.
If the object was modified, if we hit a partial assignment to X, or hit a
CODE_LABEL first, return X. If we found an assignment, update *PINSN to
point to it. ALLOW_HWREG is set to 1 if hardware registers are allowed to
be the src. */
rtx
find_last_value (rtx x, rtx *pinsn, rtx valid_to, int allow_hwreg)
{
rtx p;
for (p = PREV_INSN (*pinsn); p && !LABEL_P (p);
p = PREV_INSN (p))
if (INSN_P (p))
{
rtx set = single_set (p);
rtx note = find_reg_note (p, REG_EQUAL, NULL_RTX);
if (set && rtx_equal_p (x, SET_DEST (set)))
{
rtx src = SET_SRC (set);
if (note && GET_CODE (XEXP (note, 0)) != EXPR_LIST)
src = XEXP (note, 0);
if ((valid_to == NULL_RTX
|| ! modified_between_p (src, PREV_INSN (p), valid_to))
/* Reject hard registers because we don't usually want
to use them; we'd rather use a pseudo. */
&& (! (REG_P (src)
&& REGNO (src) < FIRST_PSEUDO_REGISTER) || allow_hwreg))
{
*pinsn = p;
return src;
}
}
/* If set in non-simple way, we don't have a value. */
if (reg_set_p (x, p))
break;
}
return x;
}
/* Return nonzero if register in range [REGNO, ENDREGNO) /* Return nonzero if register in range [REGNO, ENDREGNO)
appears either explicitly or implicitly in X appears either explicitly or implicitly in X
other than being stored into. other than being stored into.
......
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