[Bug rtl-optimization/25569] [4.2 Regression] FAIL: gfortran.dg/g77/20010610.f -O3 -fomit-frame-pointer -funroll-loops
danglin at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Fri Dec 30 23:24:00 GMT 2005
------- 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
More information about the Gcc-bugs
mailing list