------- 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


Reply via email to