emit-rtl.c (set_unique_reg_note): Don't set a REG_EQUAL or REG_EQUIV note if multiple sets are present.
* emit-rtl.c (set_unique_reg_note): Don't set a REG_EQUAL or REG_EQUIV note if multiple sets are present. From-SVN: r47657
This commit is contained in:
parent
32a6f30e69
commit
52488da14f
2 changed files with 30 additions and 5 deletions
|
@ -1,3 +1,9 @@
|
|||
Wed Dec 5 00:42:16 EST 2001 John Wehle (john@feith.com)
|
||||
|
||||
* emit-rtl.c (set_unique_reg_note): Don't set
|
||||
a REG_EQUAL or REG_EQUIV note if multiple sets
|
||||
are present.
|
||||
|
||||
2001-12-04 John David Anglin <dave@hiauly1.hia.nrc.ca>
|
||||
|
||||
* cfgrtl.c (verify_flow_info): Allow jump table data in fallthru if
|
||||
|
|
|
@ -4068,11 +4068,30 @@ set_unique_reg_note (insn, kind, datum)
|
|||
{
|
||||
rtx note = find_reg_note (insn, kind, NULL_RTX);
|
||||
|
||||
/* Don't add ASM_OPERAND REG_EQUAL/REG_EQUIV notes.
|
||||
It serves no useful purpose and breaks eliminate_regs. */
|
||||
if ((kind == REG_EQUAL || kind == REG_EQUIV)
|
||||
&& GET_CODE (datum) == ASM_OPERANDS)
|
||||
return NULL_RTX;
|
||||
switch (kind)
|
||||
{
|
||||
case REG_EQUAL:
|
||||
case REG_EQUIV:
|
||||
/* Don't add REG_EQUAL/REG_EQUIV notes if the insn
|
||||
has multiple sets (some callers assume single_set
|
||||
means the insn only has one set, when in fact it
|
||||
means the insn only has one * useful * set). */
|
||||
if (GET_CODE (PATTERN (insn)) == PARALLEL && multiple_sets (insn))
|
||||
{
|
||||
if (note)
|
||||
abort ();
|
||||
return NULL_RTX;
|
||||
}
|
||||
|
||||
/* Don't add ASM_OPERAND REG_EQUAL/REG_EQUIV notes.
|
||||
It serves no useful purpose and breaks eliminate_regs. */
|
||||
if (GET_CODE (datum) == ASM_OPERANDS)
|
||||
return NULL_RTX;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (note)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue