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]

intermittent ia64 build hang


When I try a simple build (not bootstrap) of c,c++,f77 on ia64-linux
with the mainline CVS, the new compiler loops while compiling 
libiberty/mkstemps.c.   It gets stuck in calculate_global_regs_live,
which is reached from a call to update_life_info_in_dirty_blocks from
ia64_reorg.  If I revert this patch, the build completes (or at least
it did with yesterday's CVS):

2002-05-16  Richard Henderson  <rth@redhat.com>

        * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
        splitting.  Use split_all_insns; update_life_info_in_dirty_blocks.

If I run the failing compile of mkstemps.c separately then it completes,
which makes me suspect that the problem is due to uninitialized data
that is different depending on the environment.  Here's a stack trace
from attaching to cc1 during a hung build.  I've debugged it enough to
see that it's stuck in the "while (qhead != qtail)" loop in
calculate_global_regs_live.

#0  bitmap_find_bit (head=0x60000000002344a8, bit=4294893024)
    at ../../gcc-mainline/gcc/bitmap.c:299
#1  0x4000000000850790 in bitmap_set_bit (head=0x600000000018a460, bit=16)
    at ../../gcc-mainline/gcc/bitmap.c:358
#2  0x4000000000392a20 in mark_set_1 (pbi=0x60000000001abc80, code=SET,
    reg=0x20000000006ff180, cond=0x0, insn=0x200000000081eb00, flags=0)
    at ../../gcc-mainline/gcc/flow.c:2658
#3  0x4000000000391130 in mark_set_regs (pbi=0x60000000001abc80,
    x=0x20000000006ff740, insn=0x200000000081eb00)
    at ../../gcc-mainline/gcc/flow.c:2462
#4  0x400000000038b240 in propagate_one_insn (pbi=0x60000000001abc80,
    insn=0x200000000081eb00) at ../../gcc-mainline/gcc/flow.c:1696
#5  0x400000000038e530 in propagate_block (bb=0x6000000000163c88,
    live=0x80000ffffffefeb0, local_set=0x60000000002344a8,
    cond_local_set=0x60000000002344c0, flags=0)
    at ../../gcc-mainline/gcc/flow.c:2033
#6  0x4000000000386dc0 in calculate_global_regs_live (
    blocks_in=0x6000000000245290, blocks_out=0x6000000000245290, flags=0)
    at ../../gcc-mainline/gcc/flow.c:1308
#7  0x4000000000381c90 in update_life_info (blocks=0x6000000000245290,
    extent=UPDATE_LIFE_GLOBAL_RM_NOTES, prop_flags=1)
    at ../../gcc-mainline/gcc/flow.c:647
#8  0x4000000000383620 in update_life_info_in_dirty_blocks (
    extent=UPDATE_LIFE_GLOBAL_RM_NOTES, prop_flags=1)
    at ../../gcc-mainline/gcc/flow.c:775
#9  0x4000000000846770 in ia64_reorg (insns=0x2000000000842e80)
    at ../../gcc-mainline/gcc/config/ia64/ia64.c:6742
#10 0x4000000000761940 in rest_of_compilation (decl=0x2000000000504b60)
    at ../../gcc-mainline/gcc/toplev.c:3380
#11 0x40000000000840b0 in c_expand_body (fndecl=0x2000000000504b60,
    nested_p=0, can_defer_p=1) at ../../gcc-mainline/gcc/c-decl.c:6899
#12 0x4000000000083130 in finish_function (nested=0, can_defer_p=1)
    at ../../gcc-mainline/gcc/c-decl.c:6766
#13 0x40000000000071a0 in yyparse () at c-parse.y:400
#14 0x4000000000028ff0 in c_common_parse_file (set_yydebug=0)
    at ../../gcc-mainline/gcc/c-lex.c:160
#15 0x4000000000759ee0 in compile_file ()
    at ../../gcc-mainline/gcc/toplev.c:2070
#16 0x400000000076c560 in do_compile () at ../../gcc-mainline/gcc/toplev.c:5169
#17 0x400000000076c6f0 in toplev_main (argc=53, argv=0x80000fffffff99e8)
    at ../../gcc-mainline/gcc/toplev.c:5201
#18 0x4000000000198200 in main (argc=53, argv=0x80000fffffff99e8)
    at ../../gcc-mainline/gcc/main.c:35

Janis


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