------- Comment #1 from danglin at gcc dot gnu dot org 2005-12-30 23:24 ------- This is the call that returns 0:
(gdb) bt #0 iv_analyze (insn=0x800003fffedfcfa0, def=0x800003fffedfd3e0, iv=0x800003fffeff1230) at ../../gcc/gcc/loop-iv.c:998 ... (gdb) p *iv $8 = {base = 0x800003fffedfff80, step = 0x800003fffed58410, extend = ZERO_EXTEND, delta = 0x800003fffed58400, mult = 0x800003fffed58410, extend_mode = DImode, mode = SImode, analysed = 1, first_special = 0} (gdb) p debug_rtx (insn) (insn 41 39 42 5 (set (reg:DI 71 [ D.775 ]) (zero_extend:DI (subreg:QI (reg/v:DI 70 [ i ]) 7))) 129 {*pa.md:4636} (nil) (nil)) $9 = void (gdb) p debug_rtx (iv->base) (plus:DI (reg:DI 69 [ ivtmp___25 ]) (const_int 1 [0x1])) $10 = void (gdb) p debug_rtx (iv->step) (const_int 1 [0x1]) $11 = void (gdb) p debug_rtx (iv->delta) (const_int 0 [0x0]) $12 = void (gdb) p debug_rtx (iv->mult) (const_int 1 [0x1]) $13 = void Here is the rtl: (gdb) p debug_rtx_list (get_insns (), 50) (note 12 0 14 2 [bb 2] NOTE_INSN_BASIC_BLOCK) (insn 14 12 15 2 (set (reg:SI 26 %r26) (const_int 118 [0x76])) 70 {*pa.md:2308} (nil) (nil)) (insn 15 14 16 2 (set (reg:SI 25 %r25) (const_int 127 [0x7f])) 70 {*pa.md:2308} (nil) (nil)) (insn 16 15 17 2 (set (reg/f:DI 29 %r29) (plus:DI (reg/f:DI 30 %r30) (const_int -48 [0xffffffffffffffd0]))) 158 {*pa.md:4980} (nil) (nil)) (call_insn 17 16 19 2 (parallel [ (call (mem:SI (symbol_ref/v:DI ("@_gfortran_set_std") [flags 0x41] <function_decl 800003fffedd2d00 _gfortran_set_std>) [0 S4 A32]) (const_int 64 [0x40])) (clobber (reg:DI 1 %r1)) (clobber (reg:DI 2 %r2)) (clobber (reg:DI 4 %r4)) (use (reg:DI 27 %r27)) (use (reg/f:DI 29 %r29)) (use (const_int 0 [0x0])) ]) 257 {call_symref_64bit} (nil) (nil) (expr_list:REG_DEP_TRUE (use (reg:SI 25 %r25)) (expr_list:REG_DEP_TRUE (use (reg:SI 26 %r26)) (nil)))) (insn 19 17 21 2 (set (reg:DI 71 [ D.775 ]) (const_int 1 [0x1])) 119 {*pa.md:4174} (nil) (nil)) (insn 21 19 24 2 (set (reg:DI 69 [ ivtmp___25 ]) (const_int 0 [0x0])) 119 {*pa.md:4174} (nil) (nil)) (code_label 24 21 25 3 3 "" [1 uses]) (note 25 24 26 3 [bb 3] NOTE_INSN_BASIC_BLOCK) (insn 26 25 27 3 (set (reg/f:DI 29 %r29) (plus:DI (reg/f:DI 30 %r30) (const_int -48 [0xffffffffffffffd0]))) 158 {*pa.md:4980} (nil) (nil)) (call_insn 27 26 29 3 (parallel [ (call (mem:SI (symbol_ref/v:DI ("@_gfortran_abort") [flags 0x41] <function_decl 800003fffede8400 _gfortran_abort>) [0 S4 A32]) (const_int 64 [0x40])) (clobber (reg:DI 1 %r1)) (clobber (reg:DI 2 %r2)) (clobber (reg:DI 4 %r4)) (use (reg:DI 27 %r27)) (use (reg/f:DI 29 %r29)) (use (const_int 0 [0x0])) ]) 257 {call_symref_64bit} (nil) (expr_list:REG_NORETURN (const_int 0 [0x0]) (nil)) (nil)) (code_label 29 27 30 4 2 "" [0 uses]) (note 30 29 31 4 [bb 4] NOTE_INSN_BASIC_BLOCK) (insn 31 30 32 4 (set (reg:SI 73) (plus:SI (subreg/s/u:SI (reg:DI 69 [ ivtmp___25 ]) 4) (const_int 1 [0x1]))) 161 {addsi3} (nil) (nil)) (insn 32 31 34 4 (set (reg:DI 69 [ ivtmp___25 ]) (zero_extend:DI (reg:SI 73))) 131 {*pa.md:4672} (nil) (nil)) (insn 34 32 35 4 (set (reg:SI 74) (const_int 255 [0xff])) 70 {*pa.md:2308} (nil) (nil)) (jump_insn 35 34 37 4 (set (pc) (if_then_else (eq (subreg/s/u:SI (reg:DI 69 [ ivtmp___25 ]) 4) (reg:SI 74)) (label_ref/s:DI 53) (pc))) 46 {*pa.md:1700} (nil) (expr_list:REG_EQUAL (if_then_else (eq (subreg/s/u:SI (reg:DI 69 [ ivtmp___25 ]) 4) (const_int 255 [0xff])) (label_ref:DI 53) (pc)) (expr_list:REG_BR_PROB (const_int 532 [0x214]) (nil)))) (note 37 35 38 5 [bb 5] NOTE_INSN_BASIC_BLOCK) (insn 38 37 39 5 (set (reg:SI 75) (plus:SI (subreg/s:SI (reg:DI 71 [ D.775 ]) 4) (const_int 1 [0x1]))) 161 {addsi3} (nil) (nil)) (insn 39 38 41 5 (set (reg/v:DI 70 [ i ]) (sign_extend:DI (reg:SI 75))) 137 {extendsidi2} (nil) (nil)) (insn 41 39 42 5 (set (reg:DI 71 [ D.775 ]) (zero_extend:DI (subreg:QI (reg/v:DI 70 [ i ]) 7))) 129 {*pa.md:4636} (nil) (nil)) (jump_insn 42 41 63 5 (set (pc) (if_then_else (ne (subreg/s:SI (reg:DI 71 [ D.775 ]) 4) (subreg/s:SI (reg/v:DI 70 [ i ]) 4)) (label_ref/s 24) (pc))) 46 {*pa.md:1700} (nil) (expr_list:REG_BR_PROB (const_int 107 [0x6b]) (nil))) (note 63 42 53 8 [bb 8] NOTE_INSN_BASIC_BLOCK) (code_label 53 63 56 7 6 "" [1 uses]) (note 56 53 0 7 [bb 7] NOTE_INSN_BASIC_BLOCK) $18 = void -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25569