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, ...