This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/41089] [4.5 Regression] r147980 (New SRA) breaks stdargs
- From: "ubizjak at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 10 Sep 2009 10:04:12 -0000
- Subject: [Bug tree-optimization/41089] [4.5 Regression] r147980 (New SRA) breaks stdargs
- References: <bug-41089-1649@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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