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