http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49721
--- Comment #10 from H.J. Lu <hjl.tools at gmail dot com> 2011-08-02 19:17:43 UTC --- Here is the problem: (gdb) Continuing. Breakpoint 1, convert_memory_address_addr_space (to_mode=DImode, x=0x7ffff07f73c0, as=0 '\000') at /export/gnu/import/git/gcc/gcc/explow.c:409 409 return convert_modes (to_mode, from_mode, (plus:SI (symbol_ref:SI ("iplane.1553") [flags 0x2] <var_decl 0x7ffff08593c0 iplane>) (const_int -4 [0xfffffffffffffffc])) (gdb) bt #0 convert_memory_address_addr_space (to_mode=DImode, x=0x7ffff07f73c0, as=0 '\000') at /export/gnu/import/git/gcc/gcc/explow.c:409 #1 0x0000000000789f95 in convert_memory_address_addr_space (to_mode=DImode, x=0x7ffff07f1c70, as=0 '\000') at /export/gnu/import/git/gcc/gcc/explow.c:380 #2 0x0000000000b12b4f in simplify_unary_operation_1 (code=ZERO_EXTEND, mode=DImode, op=0x7ffff07f1c70) at /export/gnu/import/git/gcc/gcc/simplify-rtx.c:1246 #3 0x0000000000b108ae in simplify_unary_operation (code=ZERO_EXTEND, mode=DImode, op=0x7ffff07f1c70, op_mode=SImode) at /export/gnu/import/git/gcc/gcc/simplify-rtx.c:582 #4 0x0000000000b10092 in simplify_gen_unary (code=ZERO_EXTEND, mode=DImode, op=0x7ffff07f1c70, op_mode=SImode) at /export/gnu/import/git/gcc/gcc/simplify-rtx.c:370 #5 0x000000000116cb9a in if_then_else_cond (x=0x7ffff07beb40, ptrue=0x7fffffffd370, pfalse=0x7fffffffd368) at /export/gnu/import/git/gcc/gcc/combine.c:8650 #6 0x00000000011639b0 in combine_simplify_rtx (x=0x7ffff07beb40, op0_mode=SImode, in_dest=0, in_cond=0) at /export/gnu/import/git/gcc/gcc/combine.c:5316 #7 0x0000000001163710 in subst (x=0x7ffff07beb40, from=0x7ffff07c5ac0, to=0x7ffff07f73d8, in_dest=0, in_cond=0, unique_copy=0) at /export/gnu/import/git/gcc/gcc/combine.c:5253 ---Type <return> to continue, or q <return> to quit--- #8 0x00000000011634ff in subst (x=0x7ffff07ca990, from=0x7ffff07c5ac0, to=0x7ffff07f73d8, in_dest=0, in_cond=0, unique_copy=0) at /export/gnu/import/git/gcc/gcc/combine.c:5189 #9 0x000000000115d5d6 in try_combine (i3=0x7ffff07cb708, i2=0x7ffff07cb6c0, i1=0x0, i0=0x0, new_direct_jump_p=0x7fffffffda64, last_combined_insn=0x7ffff07cb708) at /export/gnu/import/git/gcc/gcc/combine.c:3178 #10 0x00000000011588af in combine_instructions (f=0x7ffff07ab880, nregs=487) at /export/gnu/import/git/gcc/gcc/combine.c:1223 #11 0x0000000001178a5e in rest_of_handle_combine () at /export/gnu/import/git/gcc/gcc/combine.c:13880 #12 0x0000000000a5384c in execute_one_pass (pass=0x190e600) at /export/gnu/import/git/gcc/gcc/passes.c:2063 #13 0x0000000000a53a32 in execute_pass_list (pass=0x190e600) at /export/gnu/import/git/gcc/gcc/passes.c:2118 #14 0x0000000000a53a53 in execute_pass_list (pass=0x1909260) at /export/gnu/import/git/gcc/gcc/passes.c:2119 #15 0x0000000000bec908 in tree_rest_of_compilation (fndecl=0x7ffff0945b00) at /export/gnu/import/git/gcc/gcc/tree-optimize.c:416 #16 0x00000000006d4d95 in cgraph_expand_function (node=0x7ffff074a900) at /export/gnu/import/git/gcc/gcc/cgraphunit.c:1803 #17 0x00000000006d4f54 in cgraph_expand_all_functions () at /export/gnu/import/git/gcc/gcc/cgraphunit.c:1862 ---Type <return> to continue, or q <return> to quit--- #18 0x00000000006d5650 in cgraph_optimize () at /export/gnu/import/git/gcc/gcc/cgraphunit.c:2132 #19 0x00000000006d2acd in cgraph_finalize_compilation_unit () at /export/gnu/import/git/gcc/gcc/cgraphunit.c:1310 #20 0x00000000009cf010 in write_global_declarations () at /export/gnu/import/git/gcc/gcc/langhooks.c:303 #21 0x0000000000559ed0 in gfc_write_global_declarations () at /export/gnu/import/git/gcc/gcc/fortran/f95-lang.c:322 #22 0x0000000000b49830 in compile_file () at /export/gnu/import/git/gcc/gcc/toplev.c:564 #23 0x0000000000b4ba1a in do_compile () at /export/gnu/import/git/gcc/gcc/toplev.c:1886 #24 0x0000000000b4bb8a in toplev_main (argc=19, argv=0x7fffffffdef8) at /export/gnu/import/git/gcc/gcc/toplev.c:1962 #25 0x000000000060d9ac in main (argc=19, argv=0x7fffffffdef8) at /export/gnu/import/git/gcc/gcc/main.c:36 (gdb) In combine, we can't generate any new insns. But we do generate new insns in this case.