------- Comment #12 from danglin at gcc dot gnu dot org 2010-06-16 01:01 ------- The REG_POINTER flag for reg:DI 274 is copied from reg:DI 2374 in pa.c. The flag for reg:DI 2374 is in turn copied from reg:DI 2349 in pa.c. The flag for reg:DI 2349 is set here:
(gdb) p debug_rtx (reg) (reg:DI 2349 [ D.35290 ]) $68 = void (gdb) bt #0 mark_reg_pointer (reg=0x800003fffd4c0420, align=64) at ../../gcc/gcc/emit-rtl.c:1118 #1 0x4000000001166d94 in set_reg_attrs_from_value (reg=0x800003fffd4c0420, x=0x40fd976c40) at ../../gcc/gcc/emit-rtl.c:992 #2 0x4000000001166e14 in gen_reg_rtx_and_attrs (x=0x800003fffd976c40) at ../../gcc/gcc/emit-rtl.c:1003 #3 0x400000000195a8bc in move_invariant_reg (loop=0x800003fffdff18f0, invno=64) at ../../gcc/gcc/loop-invariant.c:1416 #4 0x400000000195ad40 in move_invariants (loop=0x800003fffd4c0420) at ../../gcc/gcc/loop-invariant.c:1489 #5 0x400000000195ad40 in move_invariants (loop=0x800003fffd4c0420) at ../../gcc/gcc/loop-invariant.c:1489 #6 0x400000000195b2bc in move_single_loop_invariants ( loop=0x800003fffced9ab0) at ../../gcc/gcc/loop-invariant.c:1558 #7 0x400000000195cdc8 in move_loop_invariants () at ../../gcc/gcc/loop-invariant.c:1905 #8 0x40000000019302f8 in rtl_move_loop_invariants () at ../../gcc/gcc/loop-init.c:254 #9 0x4000000001b86534 in execute_one_pass (pass=0x800003fffdff18f0) at ../../gcc/gcc/passes.c:1568 #10 0x4000000001b86964 in execute_pass_list (pass=0x800003fffd4c0420) at ../../gcc/gcc/passes.c:1623 #11 0x4000000001b869a8 in execute_pass_list (pass=0x800003fffd4c0420) at ../../gcc/gcc/passes.c:1624 #12 0x4000000001b869a8 in execute_pass_list (pass=0x800003fffd4c0420) at ../../gcc/gcc/passes.c:1624 #13 0x40000000027a78b8 in tree_rest_of_compilation (fndecl=0x800003fffdff18f0) at ../../gcc/gcc/tree-optimize.c:413 ... -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43740