regclass.c (regclass): Use SECONDARY_RELOAD_CLASS if it's defined to avoid useless work.

* regclass.c (regclass): Use SECONDARY_RELOAD_CLASS if it's
        defined to avoid useless work.

        * combine.c (find_split_point): Try to split SET_DEST
        just like we do for SET_SRC.

From-SVN: r10790
This commit is contained in:
Jeff Law 1995-12-17 10:17:23 -07:00
parent a295d3317e
commit 041d718079
2 changed files with 10 additions and 0 deletions

View File

@ -2542,6 +2542,11 @@ find_split_point (loc, insn)
if (split && split != &SET_SRC (x))
return split;
/* See if we can split SET_DEST as it stands. */
split = find_split_point (&SET_DEST (x), insn);
if (split && split != &SET_DEST (x))
return split;
/* See if this is a bitfield assignment with everything constant. If
so, this is an IOR of an AND, so split it into that. */
if (GET_CODE (SET_DEST (x)) == ZERO_EXTRACT

View File

@ -674,6 +674,10 @@ regclass (f, nregs)
being used in such addresses. */
if ((0
#ifdef SECONDARY_RELOAD_CLASS
|| (SECONDARY_RELOAD_CLASS (BASE_REG_CLASS, m, r)
!= NO_REGS)
#else
#ifdef SECONDARY_INPUT_RELOAD_CLASS
|| (SECONDARY_INPUT_RELOAD_CLASS (BASE_REG_CLASS, m, r)
!= NO_REGS)
@ -681,6 +685,7 @@ regclass (f, nregs)
#ifdef SECONDARY_OUTPUT_RELOAD_CLASS
|| (SECONDARY_OUTPUT_RELOAD_CLASS (BASE_REG_CLASS, m, r)
!= NO_REGS)
#endif
#endif
)
&& ! auto_inc_dec_reg_p (r, m))