regclass.c (record_reg_classes): Do not do the copying preferrencing when source does not die.
* regclass.c (record_reg_classes): Do not do the copying preferrencing when source does not die. From-SVN: r30913
This commit is contained in:
parent
d5e2075dbf
commit
0dc0641b04
2 changed files with 9 additions and 2 deletions
|
@ -1,5 +1,8 @@
|
|||
Tue Dec 14 12:07:29 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
|
||||
|
||||
* regclass.c (record_reg_classes): Do not do the copying preferrencing
|
||||
when source does not die.
|
||||
|
||||
* regclass.c (record_reg_classes): Handle INOUT operands propertly.
|
||||
|
||||
1999-12-14 Jakub Jelinek <jakub@redhat.com>
|
||||
|
|
|
@ -1618,11 +1618,15 @@ record_reg_classes (n_alts, n_ops, ops, modes, subreg_changes_size,
|
|||
|
||||
/* If this insn is a single set copying operand 1 to operand 0
|
||||
and one is a pseudo with the other a hard reg that is in its
|
||||
own register class, set the cost of that register class to -1. */
|
||||
own register class, set the cost of that register class to -1.
|
||||
Do this only when source dies to avoid stressing of register
|
||||
allocator by preferrencing two coliding registers into single
|
||||
place. */
|
||||
|
||||
if ((set = single_set (insn)) != 0
|
||||
&& ops[0] == SET_DEST (set) && ops[1] == SET_SRC (set)
|
||||
&& GET_CODE (ops[0]) == REG && GET_CODE (ops[1]) == REG)
|
||||
&& GET_CODE (ops[0]) == REG && GET_CODE (ops[1]) == REG
|
||||
&& find_regno_note (insn, REG_DEAD, REGNO (ops[1])))
|
||||
for (i = 0; i <= 1; i++)
|
||||
if (REGNO (ops[i]) >= FIRST_PSEUDO_REGISTER)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue