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 target/78038] [5/6/7 Regression] internal compiler error: in get_sub_rtx, at ree.c:655


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78038

--- Comment #2 from ktkachov at gcc dot gnu.org ---
Hmm, so the zero_extend candidate is:
(insn 9 10 11 2 (set (reg/f:DI 1 x1 [orig:74 g.1_2 ] [74])
        (zero_extend:DI (reg/v:SI 28 x28 [ g ]))) "ree.c":16 84
{*zero_extendsidi2_aarch64}
     (nil))

and the def_insn that causes the ICE in get_sub_rtx is:
(call_insn 8 7 10 2 (parallel [
            (call (mem:DI (reg/f:DI 0 x0 [orig:77 test_fptr ] [77]) [0
*test_fptr.0_1 S8 A8])
                (const_int 0 [0]))
            (use (const_int 0 [0]))
            (clobber (reg:DI 30 x30))
        ]) "ree.c":14 41 {*call_reg}
     (expr_list:REG_CALL_DECL (nil)
        (nil))
    (expr_list (clobber (reg:DI 17 x17))
        (expr_list (clobber (reg:DI 16 x16))
            (nil))))

This doesn't have a SET anywhere in it so it causes the ICE.
The question is, by what logic did dataflow decide that call_insn 8 defines
register x28?

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