[Bug target/79570] [5/6/7 Regression] ICE in sel-sched-ir.c:4534 in pr69956.c
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Feb 17 13:19:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79570
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
The ICE is because on the DEBUG_INSN move_op_orig_expr_found removes it from
the IL: remove_insn_from_stream and then move_op_ascend -> moveup_expr_cached
2531 if (DEBUG_INSN_P (EXPR_INSN_RTX (expr))
2532 && (sel_bb_head (BLOCK_FOR_INSN (EXPR_INSN_RTX (expr)))
2533 == EXPR_INSN_RTX (expr)))
ICEs on it.
--- gcc/sel-sched.c.jj 2017-01-01 12:45:38.000000000 +0100
+++ gcc/sel-sched.c 2017-02-17 14:14:06.493525368 +0100
@@ -2529,6 +2529,7 @@ moveup_expr_cached (expr_t expr, insn_t
}
if (DEBUG_INSN_P (EXPR_INSN_RTX (expr))
+ && BLOCK_FOR_INSN (EXPR_INSN_RTX (expr))
&& (sel_bb_head (BLOCK_FOR_INSN (EXPR_INSN_RTX (expr)))
== EXPR_INSN_RTX (expr)))
/* Don't use cached information for debug insns that are heads of
fixes the ICE, but as I know next to nothing about sel-sched, really don't know
if it is appropriate to see deleted insns at this point, or why it doesn't want
to use cached info for debug insns that are heads of bbs, whether removed debug
insns shouldn't be perhaps treated the same (not cached).
More information about the Gcc-bugs
mailing list