------- Comment #10 from steven at gcc dot gnu dot org 2005-12-18 00:49 ------- At -O1 (i.e. for my test case) CSE1 turns this...
(insn 24 22 25 0 (parallel [ (set (reg/f:SI 67) (plus:SI (reg/f:SI 20 frame) (const_int -16 [0xfffffff0]))) (clobber (reg:CC 17 flags)) ]) 148 {*addsi_1} (nil) (nil)) (insn 25 24 27 0 (parallel [ (set (reg/f:SI 61 [ this.1 ]) (plus:SI (reg/f:SI 67) (const_int 4 [0x4]))) (clobber (reg:CC 17 flags)) ]) 148 {*addsi_1} (nil) (nil)) (insn 27 25 28 0 (set (reg:SI 68 [ <variable>._M_impl._M_start_node ]) (mem/s/j:SI (plus:SI (reg/f:SI 61 [ this.1 ]) (const_int 4 [0x4])) [0 <variable>._M_impl._M_start_node+0 S4 A32])) 34 {*movsi_1} (nil) (nil)) ...into this... (insn 27 22 28 0 (set (reg:SI 68 [ <variable>._M_impl._M_start_node ]) (mem/s/j:SI (plus:SI (reg/f:SI 20 frame) (const_int -8 [0xfffffff8])) [0 <variable>._M_impl._M_start_node+0 S4 A32])) 34 {*movsi_1} (nil) (nil)) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25130