This is the mail archive of the gcc@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] |
I have done some further investigation on this problem, and I have attached a reduced testcase, together with the output at stage .31, .32 and .33
#0 fancy_abort (file=0x5ee010 "../../gcc/gcc/flow.c", line=578, function=0x5ee0f0 "verify_local_live_at_start") at ../../gcc/gcc/diagnostic.c:1439 #1 0x002778d4 in verify_local_live_at_start (new_live_at_start=0xbfffed80, bb=0x6bdc68) at ../../gcc/gcc/flow.c:578 #2 0x00277e6c in update_life_info (blocks=0x6caaf8, extent=UPDATE_LIFE_LOCAL, prop_flags=1) at ../../gcc/gcc/flow.c:715 #3 0x0059b51c in schedule_insns (dump_file=0x6cab18) at ../../gcc/gcc/sched-rgn.c:2759 #4 0x0048f0c0 in rest_of_compilation (decl=0x401b4310) at ../../gcc/gcc/toplev.c:3661 #5 0x00034c10 in c_expand_body_1 (fndecl=0x401b4310, nested_p=0) at ../../gcc/gcc/c-decl.c:6439 #6 0x0003533c in c_expand_body (fndecl=0x401b4310) at ../../gcc/gcc/c-decl.c:6523 #7 0x000343f4 in finish_function (nested=0, can_defer_p=1) at ../../gcc/gcc/c-decl.c:6277 #8 0x0000b9e0 in yyparse () at c-parse.y:406 #9 0x00084278 in c_common_parse_file (set_yydebug=0) at ../../gcc/gcc/c-opts.c:1634 #10 0x0048bfe8 in compile_file () at ../../gcc/gcc/toplev.c:2252 #11 0x00493bd4 in do_compile () at ../../gcc/gcc/toplev.c:5648 #12 0x00493c50 in toplev_main (argc=25, argv=0xbffffb84) at ../../gcc/gcc/toplev.c:5679 #13 0x000dac68 in main (argc=25, argv=0xbffffb84) at ../../gcc/gcc/main.c:37 #14 0x4003976c in __libc_start_main (main=0xdac44 <main>, argc=25, ubp_av=0xbffffb84, init=0x9514 <_init>, fini=0, rtld_fini=0, stack_end=0x0) at ../sysdeps/generic/libc-start.c:129
The problem seems to be that in update_life_info, the registers live_at_start has changed (register r0 was removed...)
live_at_start mismatch in bb 15, aborting New:
first = 0x6cbf90 current = 0x6cbf90 indx = 0 0x6cbf90 next = (nil) prev = (nil) indx = 0 bits = { 4 5 6 7 8 10 13 14 25 26 } Old: ;; Basic block 15, loop depth 0, count 0 ;; Predecessors: 1 [29.0%] (can_fallthru) ;; Registers live at start: 0 [r0] 4 [r4] 5 [r5] 6 [r6] 7 [r7] 8 [r8] 10 [sl] 13 [sp] 14 [lr] 25 [sfp] 26 [afp] (code_label:HI 28 27 258 15 3 "" [1 uses]) (note:HI 258 28 29 15 [bb 15] NOTE_INSN_BASIC_BLOCK)
Although looking at the content of basic block 15 at that point, it seems to be valid to conclude that 'r0' is not live at the beginning of bb 15.
Greetings, -- Jeroen Dobbelaere Embedded Software Engineer
ACUNIA Embedded Solutions http://www.acunia.com/aes
Attachment:
thetest_reduced.c.31.bbro.bz2
Description: BZip2 compressed data
Attachment:
thetest_reduced.c.32.ce3.bz2
Description: BZip2 compressed data
Attachment:
thetest_reduced.c.33.sched2.bz2
Description: BZip2 compressed data
Attachment:
thetest_reduced.i.bz2
Description: BZip2 compressed data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |