mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-18 10:29:37 +08:00
Fix performance problem on SH with unnecessary move instructions.
* local-alloc.c (combine_regs): Don't combine if we have a hard reg for which CLASS_LIKELY_SPILLED_P is true. From-SVN: r25644
This commit is contained in:
parent
66830675f2
commit
49071ddced
@ -1,5 +1,8 @@
|
||||
Mon Mar 8 16:04:44 1999 Jim Wilson <wilson@cygnus.com>
|
||||
|
||||
* local-alloc.c (combine_regs): Don't combine if we have a hard reg
|
||||
for which CLASS_LIKELY_SPILLED_P is true.
|
||||
|
||||
* unroll.c (loop_iterations): Only call loop_find_equiv_value if we
|
||||
have a REG or SUBREG.
|
||||
|
||||
|
@ -1648,6 +1648,11 @@ combine_regs (usedreg, setreg, may_save_copy, insn_number, insn, already_dead)
|
||||
|| ureg == sreg
|
||||
/* Don't try to connect two different hardware registers. */
|
||||
|| (ureg < FIRST_PSEUDO_REGISTER && sreg < FIRST_PSEUDO_REGISTER)
|
||||
/* Don't use a hard reg that might be spilled. */
|
||||
|| (ureg < FIRST_PSEUDO_REGISTER
|
||||
&& CLASS_LIKELY_SPILLED_P (REGNO_REG_CLASS (ureg)))
|
||||
|| (sreg < FIRST_PSEUDO_REGISTER
|
||||
&& CLASS_LIKELY_SPILLED_P (REGNO_REG_CLASS (sreg)))
|
||||
/* Don't connect two different machine modes if they have different
|
||||
implications as to which registers may be used. */
|
||||
|| !MODES_TIEABLE_P (GET_MODE (usedreg), GET_MODE (setreg)))
|
||||
|
Loading…
Reference in New Issue
Block a user