From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9026 invoked by alias); 23 Dec 2011 02:30:12 -0000 Received: (qmail 8938 invoked by uid 22791); 23 Dec 2011 02:30:09 -0000 X-SWARE-Spam-Status: No, hits=-2.9 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 23 Dec 2011 02:29:55 +0000 From: "carrot at google dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/51659] ICE in function output_move_double Date: Fri, 23 Dec 2011 05:44:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: carrot at google dot com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2011-12/txt/msg02519.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51659 --- Comment #1 from Carrot 2011-12-23 02:29:49 UTC --- (gdb) cont Continuing. Breakpoint 2, output_move_double (operands=0x19be680, emit=1 '\001', count=0x0) at ../../../trunk/gcc/config/arm/arm.c:13933 13933 gcc_assert (!emit); (gdb) print debug_rtx(operands[0]) (reg:DI 2 r2 [orig:139 f_1(D)->x_frame_offset ] [139]) $1 = void (gdb) print debug_rtx(operands[1]) (reg:SI 3 r3) $2 = void (gdb) bt #0 output_move_double (operands=0x19be680, emit=1 '\001', count=0x0) at ../../../trunk/gcc/config/arm/arm.c:13933 #1 0x0000000000fdb969 in output_642 (operands=0x19be680, insn=0x7ffff643d900) at ../../../trunk/gcc/config/arm/vfp.md:202 #2 0x000000000079d73b in get_insn_template (code=642, insn=0x7ffff643d900) at ../../../trunk/gcc/final.c:1817 #3 0x000000000079f2ed in final_scan_insn (insn=0x7ffff643d900, file=0x1a451a0, optimize_p=2, nopeepholes=0, seen=0x7fffffffe208) at ../../../trunk/gcc/final.c:2682 #4 0x000000000079d5d9 in final (first=0x7ffff6ae6940, file=0x1a451a0, optimize_p=2) at ../../../trunk/gcc/final.c:1786 #5 0x00000000007a2280 in rest_of_handle_final () at ../../../trunk/gcc/final.c:4319 #6 0x0000000000a1f9ae in execute_one_pass (pass=0x1865060) at ../../../trunk/gcc/passes.c:2080 #7 0x0000000000a1fb9c in execute_pass_list (pass=0x1865060) at ../../../trunk/gcc/passes.c:2135 #8 0x0000000000a1fbbd in execute_pass_list (pass=0x1865ea0) at ../../../trunk/gcc/passes.c:2136 #9 0x0000000000a1fbbd in execute_pass_list (pass=0x1865e40) at ../../../trunk/gcc/passes.c:2136 #10 0x0000000000bc3b26 in tree_rest_of_compilation (fndecl=0x7ffff6c44a00) at ../../../trunk/gcc/tree-optimize.c:421 #11 0x0000000000699e81 in cgraph_expand_function (node=0x7ffff6937360) at ../../../trunk/gcc/cgraphunit.c:1818 #12 0x000000000069a04c in cgraph_expand_all_functions () at ../../../trunk/gcc/cgraphunit.c:1885 #13 0x000000000069ab8d in cgraph_optimize () at ../../../trunk/gcc/cgraphunit.c:2198 #14 0x0000000000697bce in cgraph_finalize_compilation_unit () at ../../../trunk/gcc/cgraphunit.c:1327 #15 0x00000000004c8b3c in c_write_global_declarations () at ../../../trunk/gcc/c-decl.c:10026 #16 0x0000000000b11a52 in compile_file () at ../../../trunk/gcc/toplev.c:573 #17 0x0000000000b13c8b in do_compile () at ../../../trunk/gcc/toplev.c:1935 #18 0x0000000000b13e02 in toplev_main (argc=20, argv=0x7fffffffe658) at ../../../trunk/gcc/toplev.c:2011 #19 0x00000000005c9d90 in main (argc=20, argv=0x7fffffffe658) at ../../../trunk/gcc/main.c:36 (gdb) f 3 #3 0x000000000079f2ed in final_scan_insn (insn=0x7ffff643d900, file=0x1a451a0, optimize_p=2, nopeepholes=0, seen=0x7fffffffe208) at ../../../trunk/gcc/final.c:2682 2682 templ = get_insn_template (insn_code_number, insn); (gdb) print debug_rtx(insn) (insn:TI 6 3 7 2 (set (reg:DI 2 r2 [orig:139 f_1(D)->x_frame_offset ] [139]) (mem/s:DI (plus:SI (reg:SI 0 r0 [ f ]) (const_int 152 [0x98])) [6 f_1(D)->x_frame_offset+0 S8 A64])) src/function.c:512 642 {*movdi_vfp_cortexa8} (expr_list:REG_DEAD (reg:SI 0 r0 [ f ]) (nil))) $3 = void Apparently operands[1] doesn't match the actual operand (MEM ...) in the insn. (gdb) print recog_data.operand $6 = {0x7ffff5ff7100, 0x7ffff5ff77a0, 0xabababababababab } (gdb) print recog_data.operand[0] $7 = (rtx) 0x7ffff5ff7100 (gdb) print recog_data.operand[1] $8 = (rtx) 0x7ffff5ff77a0 (gdb) print debug_rtx(recog_data.operand[0]) (reg:DI 2 r2 [orig:139 f_1(D)->x_frame_offset ] [139]) $9 = void (gdb) print debug_rtx(recog_data.operand[1]) (reg:SI 3 r3) For some unknown reason, recog_data.operand[1] is corrupted.