This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/41089] [4.5 Regression] r147980 (New SRA) breaks stdargs



------- Comment #17 from ubizjak at gmail dot com  2009-09-10 10:04 -------
Hm, the difference between 4.4.1 and mainline is in the whole bunch of stores
that are not present anymore in _.expand dump of 4.5.0.

This is 4.4.1:
=============

(note 14 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK)

(insn 2 14 3 2 t.c:18 (set (mem/c:DI (plus:DI (reg/f:DI 64
virtual-incoming-args)
                (const_int 56 [0x38])) [0 S8 A8])
        (reg:DI 17 $17)) -1 (nil))

(insn 3 2 4 2 t.c:18 (set (mem/c:DI (plus:DI (reg/f:DI 64
virtual-incoming-args)
                (const_int 64 [0x40])) [0 S8 A8])
        (reg:DI 18 $18)) -1 (nil))

(insn 4 3 5 2 t.c:18 (set (mem/c:DI (plus:DI (reg/f:DI 64
virtual-incoming-args)
                (const_int 72 [0x48])) [0 S8 A8])
        (reg:DI 19 $19)) -1 (nil))

(insn 5 4 6 2 t.c:18 (set (mem/c:DI (plus:DI (reg/f:DI 64
virtual-incoming-args)
                (const_int 80 [0x50])) [0 S8 A8])
        (reg:DI 20 $20)) -1 (nil))

(insn 6 5 7 2 t.c:18 (set (mem/c:DI (plus:DI (reg/f:DI 64
virtual-incoming-args)
                (const_int 88 [0x58])) [0 S8 A8])
        (reg:DI 21 $21)) -1 (nil))

(insn 7 6 8 2 t.c:18 (set (mem/c:DI (plus:DI (reg/f:DI 64
virtual-incoming-args)
                (const_int 8 [0x8])) [0 S8 A8])
        (reg:DI 49 $f17)) -1 (nil))

(insn 8 7 9 2 t.c:18 (set (mem/c:DI (plus:DI (reg/f:DI 64
virtual-incoming-args)
                (const_int 16 [0x10])) [0 S8 A8])
        (reg:DI 50 $f18)) -1 (nil))

(insn 9 8 10 2 t.c:18 (set (mem/c:DI (plus:DI (reg/f:DI 64
virtual-incoming-args)
                (const_int 24 [0x18])) [0 S8 A8])
        (reg:DI 51 $f19)) -1 (nil))

(insn 10 9 11 2 t.c:18 (set (mem/c:DI (plus:DI (reg/f:DI 64
virtual-incoming-args)
                (const_int 32 [0x20])) [0 S8 A8])
        (reg:DI 52 $f20)) -1 (nil))

(insn 11 10 12 2 t.c:18 (set (mem/c:DI (plus:DI (reg/f:DI 64
virtual-incoming-args)
                (const_int 40 [0x28])) [0 S8 A8])
        (reg:DI 53 $f21)) -1 (nil))

And this is 4.5.0:
=================

(insn 2 6 3 2 t.c:18 (set (mem/c:DI (plus:DI (reg/f:DI 64
virtual-incoming-args)
                (const_int 56 [0x38])) [0 S8 A8])
        (reg:DI 17 $17)) -1 (nil))

(insn 3 2 4 2 t.c:18 (set (mem/c:DI (plus:DI (reg/f:DI 64
virtual-incoming-args)
                (const_int 8 [0x8])) [0 S8 A8])
        (reg:DI 49 $f17)) -1 (nil))

(insn 4 3 5 2 t.c:18 (set (reg/v:DI 89 [ i ])
        (reg:DI 16 $16 [ i ])) -1 (nil))


Yeah. Register $18 that holds the value of 128 is not there.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41089


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]