This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/78038] [5/6/7 Regression] internal compiler error: in get_sub_rtx, at ree.c:655
- From: "ktkachov at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 19 Oct 2016 13:18:28 +0000
- Subject: [Bug target/78038] [5/6/7 Regression] internal compiler error: in get_sub_rtx, at ree.c:655
- Auto-submitted: auto-generated
- References: <bug-78038-4@http.gcc.gnu.org/bugzilla/>
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?