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]

problems when move one pseudo reg to another (need help)


Hello!
      Execuse me but I have something bothering me.
      I inserted a method into rest_of_compilation() (before calling
rest_of_handle_life()) to insert some new insn before insn were
translated to asm. But after my modification, when processing some
insn moving one pseudo reg to another pseudo reg(created by me), the
reg_overlap_mentioned_for_reload_p() method executed abort() at line
6341:
            if (regno >= FIRST_PSEUDO_REGISTER)
            {
            if (reg_equiv_memory_loc[regno])
            return refers_to_mem_for_reload_p (in);
            else if (reg_equiv_constant[regno])
            return 0;
            abort ();
            }

      By the way, I am using source code of gcc3.4.4.
      Could anyone give some help? I am new here. Thanks.
      (I will back again one day later after school)

appendix:
1. the insn with problem:
   (insn 59 24 60 0 (set (reg:SI 74)
        (reg:SI 71)) -1 (nil)
    (nil))
2. gdb backtrace after calling abort()
(gdb) backtrace
#0  fancy_abort (file=0x839ae65 "reload.c", line=6334,
    function=0x8383600 "reg_overlap_mentioned_for_reload_p") at diagnostic.c:584
#1  0x0823d648 in reg_overlap_mentioned_for_reload_p (x=
0xb7cd15d0, in=0xb7cd15c0) at reload.c:6334
#2  0x0824917f in find_reloads (insn=0xb7ed6730, replace=0,
ind_levels=0, live_known=0,
    reload_reg_p=0x84081c0) at reload.c:1721
#3  0x08254514 in reload (first=0xb7ed3240, global=0) at reload1.c:1459
#4  0x08274f58 in rest_of_handle_old_regalloc (decl=0xb7cabf30,
insns=0xb7ed3240)
    at ./toplev.c:2295
#5  0x082765df in rest_of_compilation (decl=0xb7cabf30) at ./toplev.c:3457
#6  0x082b50e5 in tree_rest_of_compilation (fndecl=0xb7cabf30, nested_p=false)
    at tree-optimize.c:168
#7  0x08059230 in c_expand_body_1 (fndecl=0xb7cabf30, nested_p=74) at
c-decl.c:6189
#8  0x082b6ad9 in cgraph_expand_function (node=0xb7c8d438) at cgraphunit.c:538
#9  0x082b7aac in cgraph_assemble_pending_functions () at cgraphunit.c:144
#10 0x082b8380 in cgraph_finalize_function (decl=0xb7cabf30,
nested=false) at cgraphunit.c:225
#11 0x0805f345 in finish_function () at c-decl.c:6146
#12 0x0804c76b in yyparse () at c-parse.y:385
#13 0x0804f57b in c_parse_file () at c-parse.y:3029
#14 0x0807e297 in c_common_parse_file (set_yydebug=0) at c-opts.c:1249
#15 0x08273b0e in toplev_main (argc=3, argv=0xbfc0b9f4) at ./toplev.c:1833
#16 0x0809e75e in main (argc=Cannot access memory at address 0x4a
) at main.c:35
(gdb)


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