3.4.0 fails to bootstrap on sh4-unknown-linux-gnu because of the hang-up when compiling libstdc++-v3/testsuite/abi_check.cc. It seems that the i686-linux x sh4-unknown-linux-gnu behaves same as the native compiler and with -fno-unit-at-a-time both native and cross cc1plus compiles abi_check.cc normally. FYI, when it looks halting, cross cc1plus takes almost cpu time: PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND 5565 kkojima 17 0 54656 53M 3376 R 99.5 21.3 45:02 cc1plus and gdb attatched to it says #0 0x080e1b18 in bitmap_set_bit (head=0x86acfa0, bit=394) at ../../LOCAL/gcc-3.4/gcc/bitmap.c:310 #1 0x0815f13e in mark_set_1 (pbi=0x848e8d8, code=SET, reg=0x417e9ff0, cond=0x0, insn=0x411caf78, flags=16) at ../../LOCAL/gcc-3.4/gcc/flow.c:2673 #2 0x0815eaae in mark_set_regs (pbi=0x848e8d8, x=0x42245024, insn=0x411caf78) at ../../LOCAL/gcc-3.4/gcc/flow.c:2468 #3 0x0815db01 in propagate_one_insn (pbi=0x848e8d8, insn=0x411caf78) at ../../LOCAL/gcc-3.4/gcc/flow.c:1667 #4 0x0815e21b in propagate_block (bb=0x851fec8, live=0xbfffef9c, local_set=0x84f54f8, cond_local_set=0x84f5508, flags=16) at ../../LOCAL/gcc-3.4/gcc/flow.c:2036 #5 0x0815d146 in calculate_global_regs_live (blocks_in=0x86acf20, blocks_out=0x86acf20, flags=16) at ../../LOCAL/gcc-3.4/gcc/flow.c:1275 #6 0x0815c1d7 in update_life_info (blocks=0x86acf20, extent=UPDATE_LIFE_GLOBAL_RM_NOTES, prop_flags=25) at ../../LOCAL/gcc-3.4/gcc/flow.c:624 #7 0x0815c690 in update_life_info_in_dirty_blocks ( extent=UPDATE_LIFE_GLOBAL_RM_NOTES, prop_flags=25) at ../../LOCAL/gcc-3.4/gcc/flow.c:776 #8 0x0829ffaf in combine_instructions (f=0x40bd00a0, nregs=397) at ../../LOCAL/gcc-3.4/gcc/combine.c:742 #9 0x0825dd2d in rest_of_handle_combine (decl=0x41747244, insns=0x40bd00a0)
This looks like an optimization problem.
There is a patch for comment with some analysis: http://gcc.gnu.org/ml/gcc-patches/2004-04/msg01893.html
Thank you for the patch. Please, in future assign the bug to you when you have a patch.
Do you know if the bug is present also on the 3.3 branch or on mainline?
The mainline (20040425 x86-linux cross to sh4-linux) also hangs on .i file got from 3.4.0 abi_check.cc. Unfortunately, same .i file can't be compiled on 3.3-branch for another reasons like new __attribute__ expression and I don't have any appropriate testcase for this PR against 3.3-branch ATM.
Can you attacch the precompiled file to this report for completeness? Maybe someone will have time to reduce this, making it possible to test it on 3.3.
Created attachment 6197 [details] an input file causing the problem
I've attached a problematic .i file.
Subject: Bug 15100 CVSROOT: /cvs/gcc Module name: gcc Changes by: kkojima@gcc.gnu.org 2004-05-12 04:32:02 Modified files: gcc : ChangeLog combine.c Log message: PR optimization/15100 * combine.c (distribute_notes): Don't create a dangling REG_LIBCALL/REG_RETVAL note. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.3628&r2=2.3629 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/combine.c.diff?cvsroot=gcc&r1=1.424&r2=1.425
Subject: Bug 15100 CVSROOT: /cvs/gcc Module name: gcc Branch: gcc-3_4-branch Changes by: kkojima@gcc.gnu.org 2004-05-18 10:51:39 Modified files: gcc : ChangeLog combine.c Log message: PR optimization/15100 Backport from mainline: 2004-05-11 Kaz Kojima <kkojima@gcc.gnu.org> * combine.c (distribute_notes): Don't create a dangling REG_LIBCALL/REG_RETVAL note. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=2.2326.2.443&r2=2.2326.2.444 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/combine.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.400.4.7&r2=1.400.4.8
Fixed on 3.4/mainline.