+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"
extern int multiple_sets (const_rtx);
extern int set_noop_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 reg_overlap_mentioned_p (const_rtx, const_rtx);
extern const_rtx set_of (const_rtx, const_rtx);
}
\f
-/* 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;
-}
-\f
/* Return nonzero if register in range [REGNO, ENDREGNO)
appears either explicitly or implicitly in X
other than being stored into.