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:
parent
a295d3317e
commit
041d718079
@ -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
|
||||
|
@ -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))
|
||||
|
Loading…
Reference in New Issue
Block a user