------- Additional Comments From danglin at gcc dot gnu dot org 2005-09-18 18:59 ------- Seems to occur in gcse1. We have the following rtl after cse1:
(note 185 10 11 1 NOTE_INSN_LOOP_BEG) ;; Start of basic block 1, registers live: (nil) (code_label 11 185 12 1 318 "" [1 uses]) (note 12 11 13 1 [bb 1] NOTE_INSN_BASIC_BLOCK) (call_insn 13 12 14 1 (parallel [ (set (reg:SI 28 %r28) (call (mem:SI (symbol_ref/v:SI ("@myrnd") [flags 0x83] <function _decl 7af8ca00 myrnd>) [0 S4 A32]) (const_int 16 [0x10]))) (clobber (reg:SI 1 %r1)) (clobber (reg:SI 2 %r2)) (use (const_int 0 [0x0])) ]) 204 {call_val_symref} (nil) (expr_list:REG_EH_REGION (const_int 0 [0x0]) (nil)) (nil)) (insn 14 13 15 1 (set (reg:SI 109 [ D.1432 ]) (reg:SI 28 %r28)) 37 {*pa.md:2291} (nil) (nil)) (insn 15 14 16 1 (set (mem:QI (reg/v/f:SI 98 [ p___4463 ]) [0 S1 A8]) (subreg:QI (reg:SI 109 [ D.1432 ]) 3)) 57 {*pa.md:3028} (nil) (nil)) (insn 16 15 17 1 (set (reg/v/f:SI 98 [ p___4463 ]) (plus:SI (reg/v/f:SI 98 [ p___4463 ]) (const_int 1 [0x1]))) 108 {addsi3} (nil) (nil)) (insn 17 16 18 1 (set (reg/f:SI 111) (plus:SI (reg/v/f:SI 105 [ p ]) (const_int 8 [0x8]))) 108 {addsi3} (nil) (nil)) (jump_insn 18 17 186 1 (set (pc) (if_then_else (ne (reg/v/f:SI 98 [ p___4463 ]) (reg/f:SI 111)) (label_ref 11) (pc))) 25 {*pa.md:1700} (nil) (expr_list:REG_BR_PROB (const_int 8750 [0x222e]) (nil))) ;; End of basic block 1, registers live: (nil) (note 186 18 20 1 NOTE_INSN_LOOP_END) ;; Start of basic block 2, registers live: (nil) (note 20 186 21 2 [bb 2] NOTE_INSN_BASIC_BLOCK) (insn 21 20 22 2 (set (reg/f:SI 113) (high:SI (symbol_ref:SI ("sB") [flags 0x80] <var_decl 7af9bbb0 sB>))) 48 {*pa.md:2737} (nil) (nil)) (insn 22 21 23 2 (set (reg/f:SI 112) (lo_sum:SI (reg/f:SI 113) (symbol_ref:SI ("sB") [flags 0x80] <var_decl 7af9bbb0 sB>))) 51 {*pa .md:2817} (nil) (expr_list:REG_EQUAL (symbol_ref:SI ("sB") [flags 0x80] <var_decl 7af9bbb0 s B>) (nil))) (insn 23 22 24 2 (set (reg:SI 114) (mem/s/j/c:SI (lo_sum:SI (reg/f:SI 113) (symbol_ref:SI ("sB") [flags 0x80] <var_decl 7af9bbb0 sB>)) [0+0 S4 A32])) 37 {*pa.md:2291} (nil) (nil)) (insn 24 23 25 2 (set (reg:SI 115) (const_int 32767 [0x7fff])) 37 {*pa.md:2291} (nil) (nil)) After gcse1, we have: (note 185 10 11 1 NOTE_INSN_LOOP_BEG) ;; Start of basic block 1, registers live: (nil) (code_label 11 185 12 1 318 "" [1 uses]) (note 12 11 13 1 [bb 1] NOTE_INSN_BASIC_BLOCK) (call_insn 13 12 14 1 (parallel [ (set (reg:SI 28 %r28) (call (mem:SI (symbol_ref/v:SI ("@myrnd") [flags 0x83] <function _decl 7af8ca00 myrnd>) [0 S4 A32]) (const_int 16 [0x10]))) (clobber (reg:SI 1 %r1)) (clobber (reg:SI 2 %r2)) (use (const_int 0 [0x0])) ]) 204 {call_val_symref} (nil) (expr_list:REG_EH_REGION (const_int 0 [0x0]) (nil)) (nil)) (insn 14 13 15 1 (set (reg:SI 109 [ D.1432 ]) (reg:SI 28 %r28)) 37 {*pa.md:2291} (nil) (nil)) (insn 15 14 16 1 (set (mem:QI (reg/v/f:SI 98 [ p___4463 ]) [0 S1 A8]) (subreg:QI (reg:SI 109 [ D.1432 ]) 3)) 57 {*pa.md:3028} (nil) (nil)) (insn 16 15 17 1 (set (reg/v/f:SI 98 [ p___4463 ]) (plus:SI (reg/v/f:SI 98 [ p___4463 ]) (const_int 1 [0x1]))) 108 {addsi3} (nil) (nil)) (insn 17 16 18 1 (set (reg/f:SI 111) (plus:SI (reg/v/f:SI 105 [ p ]) (const_int 8 [0x8]))) 108 {addsi3} (nil) (expr_list:REG_EQUAL (const:SI (plus:SI (symbol_ref:SI ("sB") [flags 0x80] < var_decl 7af9bbb0 sB>) (const_int 8 [0x8]))) (nil))) (jump_insn 18 17 186 1 (set (pc) (if_then_else (ne (reg/v/f:SI 98 [ p___4463 ]) (reg/f:SI 111)) (label_ref 11) (pc))) 25 {*pa.md:1700} (nil) (expr_list:REG_BR_PROB (const_int 8750 [0x222e]) (nil))) ;; End of basic block 1, registers live: (nil) (note 186 18 20 1 NOTE_INSN_LOOP_END) ;; Start of basic block 2, registers live: (nil) (note 20 186 21 2 [bb 2] NOTE_INSN_BASIC_BLOCK) (insn 21 20 22 2 (set (reg/f:SI 113) (high:SI (symbol_ref:SI ("sB") [flags 0x80] <var_decl 7af9bbb0 sB>))) 48 {*pa.md:2737} (nil) (nil)) (insn 22 21 23 2 (set (reg/f:SI 112) (plus:SI (reg/v/f:SI 98 [ p___4463 ]) (const_int -8 [0xfffffff8]))) 108 {addsi3} (nil) (expr_list:REG_EQUAL (symbol_ref:SI ("sB") [flags 0x80] <var_decl 7af9bbb0 s B>) (nil))) (insn 23 22 25 2 (set (reg:SI 114) (mem/s/j/c:SI (plus:SI (reg/v/f:SI 98 [ p___4463 ]) (const_int -8 [0xfffffff8])) [0+0 S4 A32])) 37 {*pa.md:2291} (ni l) (expr_list:REG_EQUAL (mem/s/j/c:SI (plus:SI (reg/v/f:SI 98 [ p___4463 ]) (const_int -8 [0xfffffff8])) [0+0 S4 A32]) (nil))) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23954