From: Vladimir N. Makarov Date: Wed, 18 Nov 2020 15:07:56 +0000 (-0500) Subject: [PR97870] LRA: don't remove asm goto, just nullify it. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2f2709e691148160e4f88090eaf48d3e4915b0e4;p=gcc.git [PR97870] LRA: don't remove asm goto, just nullify it. gcc/ 2020-11-18 Vladimir Makarov PR target/97870 * lra-constraints.c (curr_insn_transform): Do not delete asm goto with wrong constraints. Nullify it saving CFG. --- diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c index f034c7749e9..80ca1e06e31 100644 --- a/gcc/lra-constraints.c +++ b/gcc/lra-constraints.c @@ -4104,9 +4104,18 @@ curr_insn_transform (bool check_only_p) error_for_asm (curr_insn, "inconsistent operand constraints in an %"); 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; }