This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]