[gcc r11-5131] [PR97870] LRA: don't remove asm goto, just nullify it.
Vladimir Makarov
vmakarov@gcc.gnu.org
Wed Nov 18 15:20:50 GMT 2020
https://gcc.gnu.org/g:2f2709e691148160e4f88090eaf48d3e4915b0e4
commit r11-5131-g2f2709e691148160e4f88090eaf48d3e4915b0e4
Author: Vladimir N. Makarov <vmakarov@redhat.com>
Date: Wed Nov 18 10:07:56 2020 -0500
[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.
Diff:
---
gcc/lra-constraints.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
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 %<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;
}
More information about the Gcc-cvs
mailing list