Commit 52488da1 by John Wehle Committed by John Wehle

emit-rtl.c (set_unique_reg_note): Don't set a REG_EQUAL or REG_EQUIV note if…

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
parent 32a6f30e
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)
{
......
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