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)