http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50632
Richard Henderson <rth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2011-10-06 AssignedTo|unassigned at gcc dot |rth at gcc dot gnu.org |gnu.org | Target Milestone|--- |4.7.0 Ever Confirmed|0 |1 --- Comment #2 from Richard Henderson <rth at gcc dot gnu.org> 2011-10-06 19:04:34 UTC --- The problem is that the CSA pass is dropping a note when combining (insn 13 12 16 3 (parallel [ (set (reg/f:DI 7 sp) (plus:DI (reg/f:DI 7 sp) (const_int 16 [0x10]))) (clobber (reg:CC 17 flags)) ]) z.c:9 254 {*adddi_1} (expr_list:REG_ARGS_SIZE (const_int 0 [0]) (nil))) (insn/f 31 30 35 4 (parallel [ (set (reg/f:DI 7 sp) (plus:DI (reg/f:DI 7 sp) (const_int 8 [0x8]))) (clobber (reg:CC 17 flags)) (clobber (mem:BLK (scratch) [0 A8])) ]) z.c:10 -1 (expr_list:REG_CFA_ADJUST_CFA (set (reg/f:DI 7 sp) (plus:DI (reg/f:DI 7 sp) (const_int 8 [0x8]))) (nil))) to (insn/f 31 30 35 3 (parallel [ (set (reg/f:DI 7 sp) (plus:DI (reg/f:DI 7 sp) (const_int 24 [0x18]))) (clobber (reg:CC 17 flags)) (clobber (mem:BLK (scratch) [0 A8])) ]) z.c:10 921 {pro_epilogue_adjust_stack_di_add} (expr_list:REG_UNUSED (reg:CC 17 flags) (expr_list:REG_CFA_ADJUST_CFA (set (reg/f:DI 7 sp) (plus:DI (reg/f:DI 7 sp) (const_int 8 [0x8]))) (nil)))) We've lost the REG_ARGS_SIZE note, which also affects the CFA given that we're not using a frame pointer.