Commit 041d7180 by Jeff Law

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
parent a295d331
...@@ -2542,6 +2542,11 @@ find_split_point (loc, insn) ...@@ -2542,6 +2542,11 @@ find_split_point (loc, insn)
if (split && split != &SET_SRC (x)) if (split && split != &SET_SRC (x))
return split; 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 /* See if this is a bitfield assignment with everything constant. If
so, this is an IOR of an AND, so split it into that. */ so, this is an IOR of an AND, so split it into that. */
if (GET_CODE (SET_DEST (x)) == ZERO_EXTRACT if (GET_CODE (SET_DEST (x)) == ZERO_EXTRACT
......
...@@ -674,6 +674,10 @@ regclass (f, nregs) ...@@ -674,6 +674,10 @@ regclass (f, nregs)
being used in such addresses. */ being used in such addresses. */
if ((0 if ((0
#ifdef SECONDARY_RELOAD_CLASS
|| (SECONDARY_RELOAD_CLASS (BASE_REG_CLASS, m, r)
!= NO_REGS)
#else
#ifdef SECONDARY_INPUT_RELOAD_CLASS #ifdef SECONDARY_INPUT_RELOAD_CLASS
|| (SECONDARY_INPUT_RELOAD_CLASS (BASE_REG_CLASS, m, r) || (SECONDARY_INPUT_RELOAD_CLASS (BASE_REG_CLASS, m, r)
!= NO_REGS) != NO_REGS)
...@@ -682,6 +686,7 @@ regclass (f, nregs) ...@@ -682,6 +686,7 @@ regclass (f, nregs)
|| (SECONDARY_OUTPUT_RELOAD_CLASS (BASE_REG_CLASS, m, r) || (SECONDARY_OUTPUT_RELOAD_CLASS (BASE_REG_CLASS, m, r)
!= NO_REGS) != NO_REGS)
#endif #endif
#endif
) )
&& ! auto_inc_dec_reg_p (r, m)) && ! auto_inc_dec_reg_p (r, m))
forbidden_inc_dec_class[i] = 1; forbidden_inc_dec_class[i] = 1;
......
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