------- Comment #4 from danglin at gcc dot gnu dot org 2007-05-20 18:15 ------- For reference, this is the rtl at the point of the hang:
(gdb) p debug_rtx_list (get_insns (), 30) (note 6 0 3 2 [bb 2] NOTE_INSN_BASIC_BLOCK) (insn 3 6 4 2 pr31944.c:4 (set (reg/v/f:DI 68 [ mle ]) (reg:DI 26 %r26 [ mle ])) 124 {*pa.md:4569} (nil) (nil)) (insn 4 3 5 2 pr31944.c:4 (set (reg/v/f:DI 69 [ res ]) (reg:DI 25 %r25 [ res ])) 124 {*pa.md:4569} (nil) (nil)) (note 5 4 8 2 NOTE_INSN_FUNCTION_BEG) (insn 8 5 9 2 pr31944.c:5 (set (reg:SI 70 [ <variable>.type ]) (mem/s:SI (reg/v/f:DI 68 [ mle ]) [3 <variable>.type+0 S4 A32])) 71 {*pa.md:2568} (nil) (nil)) (insn 9 8 10 2 pr31944.c:5 (set (reg:DI 66 [ D.1605 ]) (sign_extend:DI (reg:SI 70 [ <variable>.type ]))) 143 {extendsidi2} (nil) (nil)) (jump_insn 10 9 11 2 pr31944.c:5 (set (pc) (if_then_else (ne (subreg/s:SI (reg:DI 66 [ D.1605 ]) 4) (const_int 1 [0x1])) (label_ref 18) (pc))) 46 {*pa.md:1768} (nil) (expr_list:REG_BR_PROB (const_int 6900 [0x1af4]) (nil))) (note 11 10 12 3 [bb 3] NOTE_INSN_BASIC_BLOCK) (insn 12 11 13 3 pr31944.c:6 (set (reg:DI 71) (const_int 0 [0x0])) 124 {*pa.md:4569} (nil) (nil)) (jump_insn 13 12 14 3 pr31944.c:6 (set (pc) (if_then_else (ne (reg/v/f:DI 69 [ res ]) (reg:DI 71)) (label_ref:DI 32) (pc))) 48 {*pa.md:1824} (nil) (expr_list:REG_BR_PROB (const_int 8500 [0x2134]) (nil))) (note 14 13 15 4 [bb 4] NOTE_INSN_BASIC_BLOCK) (insn 15 14 18 4 pr31944.c:6 (asm_input/v ("nop") ("pr31944.c") 6) -1 (nil) (nil)) (code_label 18 15 19 5 2 "" [1 uses]) (note 19 18 20 5 [bb 5] NOTE_INSN_BASIC_BLOCK) (insn 20 19 21 5 pr31944.c:8 (set (reg:DI 72) (const_int 0 [0x0])) 124 {*pa.md:4569} (nil) (nil)) (jump_insn 21 20 22 5 pr31944.c:8 (set (pc) (if_then_else (ne (reg:DI 66 [ D.1605 ]) (const_int 0 [0x0])) (label_ref:DI 32) (pc))) 48 {*pa.md:1824} (nil) (expr_list:REG_BR_PROB (const_int 4600 [0x11f8]) (nil))) (note 22 21 23 6 [bb 6] NOTE_INSN_BASIC_BLOCK) (insn 23 22 24 6 pr31944.c:9 (set (reg:DI 73) (const_int 0 [0x0])) 124 {*pa.md:4569} (nil) (nil)) (jump_insn 24 23 25 6 pr31944.c:9 (set (pc) (if_then_else (ne (reg/v/f:DI 69 [ res ]) (const_int 0 [0x0])) (label_ref:DI 32) (pc))) 48 {*pa.md:1824} (nil) (expr_list:REG_BR_PROB (const_int 8284 [0x205c]) (nil))) (note 25 24 26 7 [bb 7] NOTE_INSN_BASIC_BLOCK) (insn 26 25 32 7 pr31944.c:10 (asm_operands/v ("nop") ("") 0 [ (const_int 0 [0x0]) ] [ (asm_input:SI ("i") ("") 0) ] ("pr31944.c") 10) -1 (nil) (nil)) (code_label 32 26 35 8 4 "" [3 uses]) (note 35 32 0 8 [bb 8] NOTE_INSN_BASIC_BLOCK) This problem is present in HEAD as well as 4.1. Probably, 4.2 is affected as well. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31944