[PR97870] LRA: don't remove asm goto, just nullify it.

gcc/

2020-11-18  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/97870
	* lra-constraints.c (curr_insn_transform): Do not delete asm goto
	with wrong constraints.  Nullify it saving CFG.
This commit is contained in:
Vladimir N. Makarov 2020-11-18 10:07:56 -05:00
parent cb1a4876a0
commit 2f2709e691
1 changed files with 12 additions and 3 deletions

View File

@ -4104,9 +4104,18 @@ curr_insn_transform (bool check_only_p)
error_for_asm (curr_insn,
"inconsistent operand constraints in an %<asm%>");
lra_asm_error_p = true;
/* Avoid further trouble with this insn. Don't generate use
pattern here as we could use the insn SP offset. */
lra_set_insn_deleted (curr_insn);
if (! JUMP_P (curr_insn))
{
/* Avoid further trouble with this insn. Don't generate use
pattern here as we could use the insn SP offset. */
lra_set_insn_deleted (curr_insn);
}
else
{
lra_invalidate_insn_data (curr_insn);
ira_nullify_asm_goto (curr_insn);
lra_update_insn_regno_info (curr_insn);
}
return true;
}