[Bug rtl-optimization/70326] [6 Regression] ICE: RTL check: expected elt 3 type 'e' or 'u', have '0' (rtx note) in PATTERN, at rtl.h:1440
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Mar 21 08:59:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70326
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2016-03-21
CC| |jakub at gcc dot gnu.org,
| |vmakarov at gcc dot gnu.org
Ever confirmed|0 |1
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Don't have our bisect seed built with --enable-checking=rtl, so can't bisect
this easily. But what I see is that this insn is marked as deleted during
LRA inheritance:
#0 set_insn_deleted (insn=0x7ffff184f240) at ../../gcc/emit-rtl.c:4116
#1 0x0000000000bd9c99 in lra_set_insn_deleted (insn=0x7ffff184f240) at
../../gcc/lra.c:256
#2 0x0000000000bf5188 in update_ebb_live_info (head=0x7ffff1726900,
tail=0x7ffff184f540) at ../../gcc/lra-constraints.c:5263
#3 0x0000000000bf7236 in lra_inheritance () at
../../gcc/lra-constraints.c:5816
#4 0x0000000000bdeb52 in lra (f=0x0) at ../../gcc/lra.c:2312
(previously
(insn 136 140 142 5 (parallel [
(set (reg/v:TI 116 [ u128_0 ])
(rotatert:TI (reg/v:TI 116 [ u128_0 ])
(const_int 1 [0x1])))
(clobber (reg:CC 17 flags))
(clobber (scratch:DI))
]) pr70326.c:14 601 {ix86_rotrti3_doubleword}
(expr_list:REG_UNUSED (reg/v:TI 116 [ u128_0 ])
(expr_list:REG_UNUSED (reg:CC 17 flags)
(nil))))
) and then remove_scratches
1968 for (i = 0; scratches.iterate (i, &loc); i++)
1969 {
1970 if (last != loc->insn)
1971 {
1972 last = loc->insn;
1973 id = lra_get_insn_recog_data (last);
1974 }
ICEs because calling lra_get_insn_recog_data on NOTE_INSN_DELETED is not
supported. Dunno if we should just ignore deleted insns here, or if we need to
adjust instead the insn that replaced them, ...
More information about the Gcc-bugs
mailing list