From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28583 invoked by alias); 20 Jan 2011 16:50:12 -0000 Received: (qmail 28573 invoked by uid 22791); 20 Jan 2011 16:50:10 -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; Thu, 20 Jan 2011 16:50:05 +0000 From: "hjl.tools at gmail dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/47381] New: [x32] internal compiler error: in gen_lowpart_general, at rtlhooks.c:59 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: hjl.tools at gmail 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: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Date: Thu, 20 Jan 2011 17:32:00 -0000 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-01/txt/msg02071.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D47381 Summary: [x32] internal compiler error: in gen_lowpart_general, at rtlhooks.c:59 Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned@gcc.gnu.org ReportedBy: hjl.tools@gmail.com [hjl@gnu-6 ilp32-12]$ cat y.i typedef unsigned long ulg; long block_start; typedef unsigned char uch; extern uch window[]; unsigned strstart; ulg flush_block (char *buf, ulg stored_len, int eof); ulg deflate() { return flush_block(block_start >=3D 0L ? (char*)&window[(unsigned)block_start] : (char*)((void *)0), (long)strstart - block_start, (1)); } [hjl@gnu-6 ilp32-12]$ make y.s /export/build/gnu/gcc-x32/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/gcc-x32/build-x86_64-linux/gcc/ -S -o y.s -mx32 -O2 -dp= =20 y.i y.i: In function =E2=80=98deflate=E2=80=99: y.i:10:1: internal compiler error: in gen_lowpart_general, at rtlhooks.c:59 Please submit a full bug report, with preprocessed source if appropriate. See for instructions. make: *** [y.s] Error 1 [hjl@gnu-6 ilp32-12]$=20 Breakpoint 1, fancy_abort ( file=3D0x1245008 "/export/gnu/import/git/gcc-x32/gcc/rtlhooks.c", line= =3D59,=20 function=3D0x1245040 "gen_lowpart_general") at /export/gnu/import/git/gcc-x32/gcc/diagnostic.c:893 893 internal_error ("in %s, at %s:%d", function, trim_filename (file), line); (gdb) bt #0 fancy_abort ( file=3D0x1245008 "/export/gnu/import/git/gcc-x32/gcc/rtlhooks.c", line= =3D59,=20 function=3D0x1245040 "gen_lowpart_general") at /export/gnu/import/git/gcc-x32/gcc/diagnostic.c:893 #1 0x000000000097dacb in gen_lowpart_general (mode=3DDImode, x=3D0x7ffff1c= 92e60) at /export/gnu/import/git/gcc-x32/gcc/rtlhooks.c:59 #2 0x0000000000eb47b4 in gen_split_2389 (curr_insn=3D0x7ffff1a98a68,=20 operands=3D0x18af5a0) at /export/gnu/import/git/gcc-x32/gcc/config/i386/i386.md:6092 #3 0x0000000000fdc878 in split_2 (x0=3D0x7ffff1af6060, insn=3D0x7ffff1a98a= 68) at /export/gnu/import/git/gcc-x32/gcc/config/i386/i386.md:6089 #4 0x0000000000fee8ec in split_7 (x0=3D0x7ffff1af6060, insn=3D0x7ffff1a98a= 68) at /export/gnu/import/git/gcc-x32/gcc/config/i386/i386.md:11194 #5 0x0000000000ff9ef7 in split_insns (x0=3D0x7ffff1af6060, insn=3D0x7ffff1= a98a68) at /export/gnu/import/git/gcc-x32/gcc/config/i386/sse.md:4647 #6 0x00000000006c3db1 in try_split (pat=3D0x7ffff1af6060, trial=3D0x7ffff1= a98a68,=20 last=3D1) at /export/gnu/import/git/gcc-x32/gcc/emit-rtl.c:3415 #7 0x000000000092bf18 in split_insn (insn=3D0x7ffff1a98a68) at /export/gnu/import/git/gcc-x32/gcc/recog.c:2781 #8 0x000000000092c2d0 in split_all_insns () at /export/gnu/import/git/gcc-x32/gcc/recog.c:2870 #9 0x000000000092df31 in rest_of_handle_split_after_reload () at /export/gnu/import/git/gcc-x32/gcc/recog.c:3730 ---Type to continue, or q to quit--- #10 0x00000000008f98ab in execute_one_pass (pass=3D0x17b0c00) at /export/gnu/import/git/gcc-x32/gcc/passes.c:1561 #11 0x00000000008f9a9a in execute_pass_list (pass=3D0x17b0c00) at /export/gnu/import/git/gcc-x32/gcc/passes.c:1616 #12 0x00000000008f9abb in execute_pass_list (pass=3D0x17b07a0) at /export/gnu/import/git/gcc-x32/gcc/passes.c:1617 #13 0x00000000008f9abb in execute_pass_list (pass=3D0x17b0740) at /export/gnu/import/git/gcc-x32/gcc/passes.c:1617 #14 0x0000000000a82760 in tree_rest_of_compilation (fndecl=3D0x7ffff1aa7000) at /export/gnu/import/git/gcc-x32/gcc/tree-optimize.c:422 #15 0x0000000000d22a89 in cgraph_expand_function (node=3D0x7ffff1aab000) at /export/gnu/import/git/gcc-x32/gcc/cgraphunit.c:1522 #16 0x0000000000d22c48 in cgraph_expand_all_functions () at /export/gnu/import/git/gcc-x32/gcc/cgraphunit.c:1581 #17 0x0000000000d2327d in cgraph_optimize () at /export/gnu/import/git/gcc-x32/gcc/cgraphunit.c:1841 #18 0x0000000000d20db0 in cgraph_finalize_compilation_unit () at /export/gnu/import/git/gcc-x32/gcc/cgraphunit.c:1042 #19 0x00000000004aeb60 in c_write_global_declarations () at /export/gnu/import/git/gcc-x32/gcc/c-decl.c:9843 The problem is ;; Convert lea to the lea pattern to avoid flags dependency. (define_split [(set (match_operand 0 "register_operand" "") (plus (match_operand 1 "register_operand" "") (match_operand 2 "nonmemory_operand" "")))=20 (clobber (reg:CC FLAGS_REG))] "reload_completed && ix86_lea_for_add_ok (insn, operands)"=20 [(const_int 0)] { rtx pat; enum machine_mode mode =3D GET_MODE (operands[0]); /* In -fPIC mode the constructs like (const (unspec [symbol_ref])) may confuse gen_lowpart. */ if (mode !=3D Pmode) { operands[1] =3D gen_lowpart (Pmode, operands[1]); operands[2] =3D gen_lowpart (Pmode, operands[2]); } doesn't support (gdb) call debug_rtx (curr_insn) (insn 34 9 35 2 (parallel [ (set (reg:DI 1 dx [70]) (zero_extend:DI (plus:SI (reg:SI 0 ax [orig:62 block_start.= 2 ] [62]) (symbol_ref:SI ("window") [flags 0x40] )))) (clobber (reg:CC 17 flags)) ]) y.i:9 255 {*addsi_1_zext} (nil)) (gdb)